ildasm、ilasm修改、反編譯 已經編譯的 dll檔案(c#)
在開發中遇到這樣一個場景,需要修改一個dll檔案(.NET程式集)中某些地方的型別名稱,但沒有原始碼,只能修改IL程式碼。
操作步驟如下:
1. 執行ildasm
ildasm是由微軟提供的.NET程式反編譯工具,位於“C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\”。
2. 用ildasm開啟要修改的程式集,如下圖:
3. 通過ildasm儲存為IL檔案
選擇選單File>Dump,選擇UTF-8編碼,如下圖:
4. 用文字編輯器開啟第3步中得到的.il檔案,如下圖:
5. 修改.il檔案中的程式碼並儲存
6. 用ilasm(MSIL彙編程式)將.il檔案編譯為.dll檔案
ilasm位於相應的.NET Framework目錄中,比如:C:\Windows\Microsoft.NET\Framework\v2.0.50727\ilasm.exe
新建批處理bat:
好久以前遇到過一個專案,其中呼叫一個封裝好了的dll,混淆加密加殼還打亂命名了,反編譯了出來也是看起來頭大,直接IL修改重新生成dll解決了問題。
最近又需要改一個這樣的dll,記錄下來步驟
首先把dll單獨複製出來,檢視dll執行庫
然後匯出.il檔案
.............................................................
.............................................................
以下熟悉IL的可以對這個il檔案作隨意的修改
............................................................
修改完畢,儲存
開啟到
C:\WINDOWS\Microsoft.NET\Framework
確定了資料夾
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
win+r cmd執行
生成剛剛修改完的IL,如果有.res資原始檔 也需要一同輸入
相關文章
- 使用ilasm 和 ildasm編譯和反編譯工具對DLL檔案修改ASMLDA編譯
- dll反編譯(修改引用檔案、修改程式碼)再生成dll編譯
- 使用Reflector和Filedisassembler逆向編譯反編譯.cs.dll檔案程式碼編譯
- Reflector(.Net的Dll反編譯工具)編譯
- 安卓apk檔案反編譯安卓APK編譯
- [轉]andriod的apk檔案相關的編譯反編譯工具APK編譯
- Java編譯與反編譯Java編譯
- C# 反編譯問題收集C#編譯
- Android反編譯:反編譯工具和方法Android編譯
- [原創]swf檔案的反編譯入門編譯
- ecplise配置jad反編譯.class檔案編譯
- Reflector反編譯.NET檔案後修復編譯
- 檢視已經編譯過的NGINX當時的編譯引數編譯Nginx
- 反編譯apk編譯APK
- Reflector反編譯.NET檔案後修復【轉】編譯
- 使用dnSpy對無原始碼EXE或DLL進行反編譯並且修改DNS原始碼編譯
- Mac平臺反編譯Unity編譯的安卓apkMac編譯Unity安卓APK
- Android Apk反編譯系列教程(一)如何反編譯APKAndroidAPK編譯
- java反編譯工具Java編譯
- 反編譯 iOS APP編譯iOSAPP
- Java程式碼的編譯與反編譯那些事兒Java編譯
- gcc編譯cpp檔案GC編譯
- c#寫的軟體如何防止被反編譯C#編譯
- C#反編譯工具:.NET Reflector基礎使用C#編譯
- 已經編譯好的opencv QT creator直接使用編譯OpenCVQT
- Java 反彙編、反編譯、volitale解讀Java編譯
- 反編譯系列教程(上)編譯
- 反編譯系列教程(中)編譯
- Android 反編譯指南Android編譯
- Eclipse配置反編譯Eclipse編譯
- 小程式反編譯教程編譯
- .net反編譯工具ILSpy編譯
- 安卓反編譯詳解安卓編譯
- Java反編譯器剖析Java編譯
- jive論壇反編譯編譯
- 反編譯技術探究編譯
- windows 下編譯c檔案Windows編譯
- 在使用make編譯時,修改原始檔的註釋內容,是否會重新編譯?編譯