我们平时经常会遇到工作中编译的DLL,更麻烦的是源代码无法修改。 只要修改这个DLL的文件,就能得到我们想要的结果。 在本文中,我们将展示一个简单的修改完成后的示例,我们将使用以下工具:
1 )反编译工具ILSpy.exe :是一个非常好的反编译软件。 而且是免费的。
2:Microsoft工具ILdasm.exe:是将DLL生成为il文件的软件,微软自带的该软件是c :program filesMicrosoft sddt
3 )微机工具ILasm.exe:这是将il文件重新生成为DLL的功能,位于c : (windows (Microsoft.net (framework (v4.0. 30319 ) )上。
我们创建了一个新的WEB项目,模拟它必须插入转换器才能运行。 当然,这里的转换器是我们的比喻,实例很简单,只需要7个步骤就可以结束了;
. net程序反编译工具(ILSpy )2.1.0.1613正式版评估: 5.3类别:安装创建大小: 1.7M语言:英语
查看详细信息
步骤使用ILSpy.exe打开Web.dll文件; 要检查源代码状况,请:
从上面可以看到,反编译的源代码侧重于GetLicense ()方法。 这也是我们要修改的内容。 从上面可以看出,在修改之前这都意味着插入转换器。
第二步:接下来是使用ILdasm.exe将名为DLL的文件转换为il文件;
将dll文件转储到*.il文件并保存到指定的文件夹中,然后获取Web.il和Web.res两个文件。 在某些情况下,还有*.resource文件
第三步)我们可以打开Web.IL文件。 那里有DLL生成的IL的内容,我们可以很容易地找到这个方法。 只需固定返回true即可完成修正成功。 方法中的il代码是我们要修改的内容。
步骤四:修改GetLicense ()方法中的IL代码,使其固定返回true; 下一个IL是返回true; 修改完成后保存IL文件;
步骤五:修改IL文件后,转换为DLL文件。 打开DOC命令,在*.il的文件夹中输入命令: c :windowsMicrosoft.netframeworkv4.0. 30319ilasm
*1:进入il文件的文件夹2 :其中,名为“/dll/”前必须有空格。 3:res文件在. il文件之前必须有空格
步骤6 :执行上述命令将生成新的DLL文件并将其复制到站点下。
步骤7 :执行结果:
完成上述七个步骤后,可以成功修改DLL文件。 当然,这个实例是一个简单的修改,需要IL知识才能更复杂地修改IL代码。 以下代码显示了常用IL返回true和false的代码。
. maxstack1. locals init ([0] bool cs $1$ 0000 ) l _ 0003360 nopl _ 00013360 LDC.i4.1l _ 00023360 ST loc.0l _ 00033653653653650 代码大小7(0x7).maxstack1.localsinit(0) boolcs$1$0000 ) il _ 000023360 nop il _ 00013360 LDC.I 4.0 il _ 00023365365374; 653365374; 653333333650