我正在尝试使用objdump来理解c#程序的反汇编,因为我使用的是vsiaul c#2008 express edition,它不显示反汇编。
我正在运行以下命令来获取输出:
objdump -S ConsoleApplication4.exe
因为我无法在反汇编输出中识别我的函数代码,所以我输入了一个值为0x1234的虚拟变量。
public static void myfun()
{
int i;
i = 0x1234;
Console.WriteLine(i.ToString());
}
但是,我无法在生成的文件中的任何位置找到1234的值!我尝试了其他选项,如-t或-T用于objdump,但它没有找到符号表。有人可以告诉我们如何使用objdump查看函数的反汇编,或者是否有其他免费工具?
编辑:我知道MSIL disassmbler,我想知道相当于汇编语言..答案 0 :(得分:2)
除非你已经对你的应用程序进行了NGEN,否则反汇编成汇编语言是没有意义的,因为MSIL在运行时被编译到x86代码之前不会被编译成x86代码。
答案 1 :(得分:1)
如果这与C#而不是C ++有关,请使用MSIL反汇编程序。此外,如果您有.Net Reflector,FileDisassembler也是一个很好的工具。
以下是MSIL Disassembler的完整示例分步链接及其msdn文章。
http://www.mactech.com/articles/mactech/Vol.19/19.12/NETbinaries/index.html
http://msdn.microsoft.com/en-us/library/f7dy01k1%28v=vs.71%29.aspx