Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么是C#';字节码格式?_C#_Disassembly_Cil - Fatal编程技术网

什么是C#';字节码格式?

什么是C#';字节码格式?,c#,disassembly,cil,C#,Disassembly,Cil,我正在尝试将IL反汇编程序集成到我的反汇编程序应用程序(),但我找不到一些进行CIL反汇编的库。 因此,我试图为CIL开发一个简单的反汇编程序。所以我在互联网上搜索(堆栈溢出、谷歌、维基百科等)。然而,我无法找出CIL汇编代码是如何变成字节码的 我在二进制编辑器中打开了一个C#应用程序(预测我可以找到人类可读的IL源代码),但我只能在其中找到一些二进制文件 字节码是什么样子的? e、 g.X86指令字节具有可变长度: NOP = 0x90, JMP = 0xEB 0xxx 0xxx 0xxx 0

我正在尝试将IL反汇编程序集成到我的反汇编程序应用程序(),但我找不到一些进行CIL反汇编的库。 因此,我试图为CIL开发一个简单的反汇编程序。所以我在互联网上搜索(堆栈溢出、谷歌、维基百科等)。然而,我无法找出CIL汇编代码是如何变成字节码的

我在二进制编辑器中打开了一个C#应用程序(预测我可以找到人类可读的IL源代码),但我只能在其中找到一些二进制文件

字节码是什么样子的?

e、 g.X86指令字节具有可变长度:

NOP = 0x90,
JMP = 0xEB 0xxx 0xxx 0xxx 0xxx, ...
到目前为止,我只能找到每个指令()的操作码。但我也想知道操作数是如何应用于操作码的


(就像
88/r
对于
mov
,不仅
88

我可以推荐这本书:

专家.NET 2.0 IL汇编程序由Serge Lidin编写

另外,ILSpy是一款非常流行的开源反编译器:

看看这些源代码可能会对你有所启发

似乎ILDasm(VisualStudio附带的MSIL反汇编程序)也是开源的:


希望本文能对您有所帮助。

您可能应该查看文档。您发布的wiki链接中有ECMA文档。在表中,在指令字节之后已经有很多“目标”,您可以use@phuclvx6F callvirt?@phuclv中应该是字符串或数字,是的,如果我没有注意到(在表中,在您可以使用的指令字节之后已经有很多“目标”),我可能会很傻。对不起。。