dll反编译(修改引用文件、修改代码)再生成dll
问题描述
我们在日常开发中经常会遇到,想要对dll文件做修改的操作,但苦于没有源代码,只能想想其他办法
解决问题
办法就是通过几个工具来反编译、正向编译、修改属性
反编译、正编译
参考https://wenku.baidu.com/view/5cf650cfe309581b6bd97f19227916888486b986.html
开始反编译:
找到工具ildasm.exe
位置:C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\ildasm.exe
双击ildasm.exe
将你需要反编译的dll拉到这个ildasm界面-》file-》Dump-》勾选全部-》选择指定文件夹-》导出核心文件il文件、res文件
一般你只需修改il文件即可,比如你要修改dll中引用的dll版本,就很好修改了,直接替换即可,如果你要修改的内容多,就要学习下il语法了
开始正编译
找到工具ilasm.exe
位置:C:\Windows\Microsoft.NET\Framework64\v2.0.50727\ilasm.exe
打开命令窗口执行:
ilasm.exe /dll/resource=res文件路径 il文件路径
之后dll就会生成到res il所在文件夹
修改dll属性
【dll反编译(修改引用文件、修改代码)再生成dll】有时候你会发现就算你都修改了dll也生成回来,但还是不能用,可能就是你的dll属性在反编译时候被清空了,需要通过工具重新指定回来
参考:https://blog.csdn.net/segen_jaa/article/details/108421964
下载工具:rcedit.exe
##修改文件说明
"G:\gitroot\rcedit\Default\rcedit.exe" "G:\worktemp\20200905\test.dll" --set-version-string FileDescription "我的文件"
##修改文件版本
"G:\gitroot\rcedit\Default\rcedit.exe" "G:\worktemp\20200905\test.dll" --set-file-version "2.0.0.0"
##修改产品名称
"G:\gitroot\rcedit\Default\rcedit.exe" "G:\worktemp\20200905\test.dll" --set-version-string ProductName "我的产品"
##修改产品版本
"G:\gitroot\rcedit\Default\rcedit.exe" "G:\worktemp\20200905\test.dll" --set-product-version "2.0.0.0"
##修改版权
"G:\gitroot\rcedit\Default\rcedit.exe" "G:\worktemp\20200905\test.dll" --set-version-string LegalCopyright "我的版权"
##修改商标
"G:\gitroot\rcedit\Default\rcedit.exe" "G:\worktemp\20200905\test.dll" --set-version-string LegalTrademarks "我的商标"
##修改名称
"G:\gitroot\rcedit\Default\rcedit.exe" "G:\worktemp\20200905\test.dll" --set-version-string OriginalFilename "原始名称"
至此反编译操作完成
祝你顺利!!!!!
推荐阅读
- Python文件的应用之序列化与反序列化详解
- 前端实现多文件编译器
- java是编译语言么_Java是编译语言还是解释编程语言()
- CommonCollection1反序列化学系
- 关于C#版Nebula客户端编译的问题
- 数据结构|反转链表-四种方法
- 全网最硬核 Java 新内存模型解析与实验 - 3. 硬核理解内存屏障(CPU+编译器)
- OpenWrt|OpenWrt学习总结(2)编译OpenWrt过程中整理的软件包下载网址
- 利用js文件反弹shell
- openwrt 显示编译的版本信息