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檔案程式碼編譯
- c#程式反編譯C#編譯
- ecplise配置jad反編譯.class檔案編譯
- Java編譯與反編譯Java編譯
- android 反編譯Android編譯
- 使用dnSpy對無原始碼EXE或DLL進行反編譯並且修改DNS原始碼編譯
- Android Apk反編譯系列教程(一)如何反編譯APKAndroidAPK編譯
- Java程式碼的編譯與反編譯那些事兒Java編譯
- c#寫的軟體如何防止被反編譯C#編譯
- Android 反編譯指南Android編譯
- java反編譯工具Java編譯
- Eclipse配置反編譯Eclipse編譯
- Java 反彙編、反編譯、volitale解讀Java編譯
- Android Apk 檔案反編譯和重新打包的過程分析AndroidAPK編譯
- C#反編譯工具:.NET Reflector基礎使用C#編譯
- linux核心修改編譯Linux編譯
- [Python]批量編譯pyc檔案Python編譯
- 在使用make編譯時,修改原始檔的註釋內容,是否會重新編譯?編譯
- 已經編譯好的opencv QT creator直接使用編譯OpenCVQT
- python2 反編譯pyinstaller打包的可執行exe檔案Python編譯
- 反編譯系列教程(上)編譯
- 反編譯系列教程(中)編譯
- 小程式反編譯教程編譯
- dll預編譯提高webpack打包速度編譯Web
- java加密保護jar包及class檔案,防止反編譯Java加密JAR編譯
- 三星app移植修復(app反編譯修改)APP編譯
- Android-ffmpeg編譯so檔案Android編譯
- c語言多檔案編譯C語言編譯
- vue元件中,編譯後的檔案斜槓變成了反斜槓。Vue元件編譯
- CMake 進行多專案中dll的編譯和連結編譯
- c#入門-編譯的概念C#編譯
- 編譯生產pdb檔案的軟體編譯
- 反編譯之安裝Apktool編譯APK
- Tinyx 交叉編譯配置檔案(arm版)編譯
- Include檔案易犯編譯錯誤編譯
- go編譯靜態檔案到exeGo編譯
- nvme driver 原始碼修改、編譯原始碼編譯