.Net官方的MSIL工具,你學會了嗎?
前言
很多人用第三方工具修改(實際上修改了也沒用,現代化加密工具是直接hook JIT)MSIL
比如dnspy/ilspy/dotpeek/Reflector 等等,這些工具看似不錯,實際上完全不經打,如果把程序集進行虛擬化,這些工具完全無法展示出來。本篇還是來看下比較能打的ILDASM和ILASM.它是微軟官方工具。
概念
ILDASM可以把托管的DLL反編譯成IL代碼,把它導出.IL后綴名的文件,修改這些IL文件之后,通過ILDASM把IL文件重新編譯成DLL或者Exe。
1.路徑:
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\x64\ildasm.exe
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\ildasm.exe
ilasm的路徑
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ilasm.exe
2.操作
打開ILDASM之后,把DLL拖進去。然后點擊菜單欄-》文件-》轉儲-》轉出選項不要動-》確定-》選擇路徑填寫導出名稱(注意這里的后綴名是.il)。
在導出之后的路徑,它會生成.il和.res兩個后綴名的文件。把.il的后綴名文件通過記事本把它打開,然后修改下。修改了之后就可以用ilasm通過如下命令重新組裝成DLL或者Exe:
比如路徑是:C:\Users\Administrator\Desktop\dnguard_iltest導出名稱是:test。
運行如下命令:
D:\Visual Studio\IDE>ilasm "C:\Users\Administrator\Desktop\dnguard_iltest\test.il" "C:\Users\Administrator\Desktop\dnguard_iltest\test.res" /output="C:\Users\Administrator\Desktop\dnguard_iltest\test.dll"
Microsoft (R) .NET Framework IL Assembler. Version 4.8.9105.0
Copyright (c) Microsoft Corporation. All rights reserved.
Assembling 'C:\Users\Administrator\Desktop\dnguard_iltest\test.il' to EXE --> 'C:\Users\Administrator\Desktop\dnguard_iltest\test.dll'
Source file is UTF-8
ilasm后面帶上.il和.res文件的路徑 /output后面帶上輸出的dll或者exe文件的路徑即可。