当前位置:   article > 正文

[Unity-28] 反编译并修改DLL文件_unveilr反编译

unveilr反编译

大家开发过程中难免需要用一些第三方的插件,而很多插件提供商出于各种目的一般会将插件部分代码编译为动态链接库DLL。
有时候,我们需要对库中的一些内容进行简单的修改,例如我们项目中采用的一个DLL把处理文件的路径写死在DLL里,但是此路径与我们工程项目路径规划冲突,因此产生了修改此路径的需求。
具体方法比较简单,工具也都很好获得,步骤如下。

一、准备工具
1.ILSpy:

一款免费的反编译软件。笔者用过多款反编译软件,从准确性到简便性来看ILSpy都是首选。

2.ildasm.exe:

windows系统自带程序。将DLL转换成IL语言文件。
具体路径是C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\ildasm.exe

3.ilasm.exe:

windows系统自带程序。将IL语言文件生成DLL。
具体路径是C:\Windows\Microsoft.NET\Framework\v2.0.50727\ilasm.exe

二、操作步骤
1.使用ILSpy打开DLL

在DLL中找到自己要修改的部分,如果找起来比较麻烦,可以在ILSpy中将DLL保存成源代码,然后在源代码中搜索关键字符进行定位。

2.使用ildasm.exe生成IL并修改

打开对应的DLL
然后如下图操作,选择Dump,点击OK选择路径保存。
在这里插入图片描述
保存后会生成如下两个文件
在这里插入图片描述
打开.il文件进行修改。

3.使用ilams.exe生成DLL

在Dos窗口中输入如下命令,即可生成新的DLL
c:\windows\microsoft.net\framework\v2.0.50727\ilasm.exe /dll/resource=1.res 1.il

三、注意

相信大家都注意到了上文路径中的加粗部分,这里代表的是版本号。
这里要着重说一下的是使用ilams.exe生成DLL的时候要选对版本,否则生成的版本不同可能会导致一些异常(在某些情况下)
那么怎么看原来DLL的版本号呢?
在上述第2步中,在ildasm软件中点击MANIFEST查看mscorlib的ver,即是原DLL版本号。
大家可以根据这个版本号在系统中寻找一个最接近的ilasm.exe来进行生成DLL操作。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/323484
推荐阅读
相关标签
  

闽ICP备14008679号