KYH*_*ode -3 c# cil disassembly
我正在尝试将IL反汇编程序集成到我的反汇编应用程序(Android-Disassembler)中,但是找不到一些可以进行CIL反汇编的库。因此,我正在尝试为CIL开发一个简单的反汇编程序。所以我在互联网上搜索(堆栈溢出,谷歌,维基百科等)。但是我找不到CIL汇编代码如何变成字节码。
我在二进制编辑器中打开了一个C#应用程序(以为可以找到人类可读的IL源代码),但是我只能在其中找到一些二进制文件。
C#字节码看起来如何?
例如,X86指令字节的长度是可变的:
NOP = 0x90,
JMP = 0xEB 0xxx 0xxx 0xxx 0xxx, ...
Run Code Online (Sandbox Code Playgroud)
到目前为止,我只能找到每个指令的操作码(https://en.wikipedia.org/wiki/List_of_CIL_instructions)。但是我也想知道操作数也适用于操作码。
(如88 /r为mov,不仅是88。)
小智 5
我可以推荐这本书:
Serge Lidin的Expert .NET 2.0 IL汇编程序
https://www.amazon.com/Expert-NET-Assembler-Serge-Lidin/dp/1590596463
另外,ILSpy是一个非常流行的开源反编译器:
https://github.com/icsharpcode/ILSpy
在源代码中四处浏览可能对您很有启发。
看起来ILDasm(Visual Studio附带的MSIL反汇编程序)也是开源的:
https://github.com/dotnet/coreclr/tree/master/src/ildasm
希望其中一些可以帮助您。
| 归档时间: |
|
| 查看次数: |
83 次 |
| 最近记录: |