.net工具基础
MSIL Disassembler(ildasm.exe) -- 将C#程序或类库反汇编处理,显示C#编译器生成的CIL代码
C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\ildasm.exe 版本号:3.5.30729.1 32位
C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\x64\ildasm.exe 版本号:3.5.30729.1 64位
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\ildasm.exe 版本号:3.5.30729.1 32位
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\x64\ildasm.exe 版本号:3.5.30729.1 64位
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\ildasm.exe 版本号:4.0.30319.1 32位
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\x64\ildasm.exe 版本号:4.0.30319.1 64位
C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\ildasm.exe 版本号:4.0.30319.33440 32位
C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\x64\ildasm.exe 版本号:4.0.30319.33440 64位
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools\ildasm.exe 版本号:4.0.30319.0 32位
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools\x64\ildasm.exe 版本号:4.0.30319.0 64位
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\ildasm.exe 版本号:4.0.30319.0 32位
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\x64\ildasm.exe 版本号:4.0.30319.0 64位
示例代码:
namespace ConsoleApplication2 { class Program { static void Main(string[] args) { int a = 1; int b = 2; int c = a + b; } } }
命令行用法:
ildasm.exe /text d:\ConsoleApplication2.exe // 将ConsoleApplication2.exe反汇编结果显示在命令行窗口上
ildasm.exe /output:ConsoleApplication2.il ConsoleApplication2.exe // 一般可以得到2个文件:ConsoleApplication2.il(反编译得到的IL代码)和ConsoleApplication2.res(资源文件)
注:mono也有对应的反汇编工具monodis,可使用如下命令进行反汇编
monodis d:\ConsoleApplication2.exe // 将ConsoleApplication2.exe反汇编结果显示在命令行窗口上
ILSpy -- 将C#程序或类库反编译为C#源代码
dnSpy -- 将C#程序或类库反编译为C#源代码
github开源 https://github.com/0xd4d/dnSpy
.NET Reflector -- 将C#程序或类库反编译为C#源代码
http://www.red-gate.com/products/dotnet-development/reflector/
ILMerge -- 将多个.net程序集合并
ILMerge命令行:http://www.microsoft.com/en-us/download/details.aspx?id=17630
ILMerge-GUI版本(将下载下来的ILMergeGuiPortable.exe放到ILMerge.exe所在目录中即可):https://ilmergegui.codeplex.com/