资源描述
修改.NET程序或DLL的几种方法
本文目的是回答一个朋友关于修改程序集的留言,都是比较简单的修改方式,不涉及脱壳等。
1: 利用ILASM和ILDASM
我们先建立如下测试程序:
namespace Test
{
class Program
{
static void Main(string[] args)
{
string s = "hello world!";
Console.WriteLine(s);
Console.ReadKey();
}
}
}
编译之后得到Test.exe
打开Visual studio提供的命令行工具,它已经默认的设置好了相关的环境变量,输入如下命令:
ildasm test.exe /OUT=test.il
将得到两个文件:test.il和test.res,用记事本打开test.il,将看到如下IL代码:
IL_0000: ldstr "hello world!"
IL_0005: stloc.0
IL_0006: ldloc.0
IL_0007: call void [mscorlib]System.Console::WriteLine(string)
IL_000c: call valuetype [mscorlib]System.ConsoleKeyInfo [mscorlib]System.Console::ReadKey()
IL_0011: pop
IL_0012: ret
我们将第一行修改为:
IL_0000: ldstr "hello world! --has been modified"
当然也可以增加一些函数的调用和删除我们不想要的函数,如果对IL不熟悉,可以先在VS中写好想要的代码,反编译为IL,然后直接拷贝过来。修改完后,点保存,在命令行运行如下命令:
ilasm /OUT=test2.exe test.il
如果语法没有错误,将看到如下提示
Source file is ANSI
Assembled method Test.Program::Ma
Assembled method Test.Program::.c
Creating PE file
Emitting classes:
Class 1: Test.Program
Emitting fields and methods:
Global
Class 1 Methods: 2;
Emitting events and properties:
Global
Class 1
Writing PE file
Operation completed successfully
证明已经修改成功,我们可以直接运行test2.exe,发现程序已经按我们修改的输出了:
hello world! -- has been modified.
2.利用Reflector的插件Reflexil
直接用IL修改比较麻烦,不小心很容易出错,幸好我们有Jb Evain编写的Reflexil。
Reflexil基于Mono.Cecil,是一个强大的程序集编辑器。
下载完后打开Reflector --> View --> Add-Ins --> Add --> 选择Reflexil.dll,
以后就可以直接用Reflector的Tools打开了。
开始正式的修改,用Reflector打开test.exe,打开Reflexil,选择Main函数,可以发现IL代码显示在下方了,可以点击右键Edit,Delete,Create等操作,没错,你还发现了Replace all with code,通过这个可以直接用C#代码直接修改。其它的功能多试试就明白了,另外点击类的时候,还可以修改类的访问权限等,比如将private改成public。我们选中第0行,直接选择Edit,将Operand后面的文本修改为:hello world! -- modified by reflexil.点击Update,在Reflector中选中Test.exe module,Save as test3.exe。执行test3.exe,就看到我们的修改生效了。其中专业理论知识内容包括:保安理论知识、消防业务知识、职业道德、法律常识、保安礼仪、救护知识。作技能训练内容包括:岗位操作指引、勤务技能、消防技能、军事技能。
二.培训的及要求培训目的
安全生产目标责任书
为了进一步落实安全生产责任制,做到“责、权、利”相结合,根据我公司2015年度安全生产目标的内容,现与财务部签订如下安全生产目标:
一、目标值:
1、全年人身死亡事故为零,重伤事故为零,轻伤人数为零。
2、现金安全保管,不发生盗窃事故。
3、每月足额提取安全生产费用,保障安全生产投入资金的到位。
4、安全培训合格率为100%。
二、本单位安全工作上必须做到以下内容:
1、对本单位的安全生产负直接领导责任,必须模范遵守公司的各项安全管理制度,不发布与公司安全管理制度相抵触的指令,严格履行本人的安全职责,确保安全责任制在本单位全面落实,并全力支持安全工作。
2、保证公司各项安全管理制度和管理办法在本单位内全面实施,并自觉接受公司安全部门的监督和管理。
3、在确保安全的前提下组织生产,始终把安全工作放在首位,当“安全与交货期、质量”发生矛盾时,坚持安全第一的原则。
4、参加生产碰头会时,首先汇报本单位的安全生产情况和安全问题落实情况;在安排本单位生产任务时,必须安排安全工作内容,并写入记录。
5、在公司及政府的安全检查中杜绝各类违章现象。
6、组织本部门积极参加安全检查,做到有检查、有整改,记录全。
7、以身作则,不违章指挥、不违章操作。对发现的各类违章现象负有查禁的责任,同时要予以查处。
8、虚心接受员工提出的问题,杜绝不接受或盲目指挥;
9、发生事故,应立即报告主管领导,按照“四不放过”的原则召开事故分析会,提出整改措施和对责任者的处理意见,并填写事故登记表,严禁隐瞒不报或降低对责任者的处罚标准。
10、必须按规定对单位员工进行培训和新员工上岗教育;
11、严格执行公司安全生产十六项禁令,保证本单位所有人员不违章作业。
三、 安全奖惩:
1、对于全年实现安全目标的按照公司生产现场管理规定和工作说明书进行考核奖励;对于未实现安全目标的按照公司规定进行处罚。
2、每月接受主管领导指派人员对安全生产责任状的落
展开阅读全文