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屬性在反編譯時候被清空了,需要通過工具重新指定回來
參考: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 "原始名稱"
至此反編譯操作完成
祝你順利!!!!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM