【问题标题】:Tracking disassembly of a c# program跟踪 c# 程序的反汇编
【发布时间】:2011-04-14 00:27:26
【问题描述】:

我正在尝试使用 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 的值!我为 objdump 尝试了其他选项,如 -t 或 -T,但它说没有找到符号表。有人可以告诉如何使用 objdump 来查看函数的反汇编,或者是否有其他免费工具?

编辑:我知道 MSIL 反汇编程序,我想知道等效的汇编语言..

【问题讨论】:

  • 这与 C++ 究竟有什么关系?可能还想添加disassembly 标签。

标签: c# disassembly objdump


【解决方案1】:

除非您对应用程序进行了 NGEN 处理,否则将其反汇编为汇编语言是没有意义的,因为 MSIL 直到在运行时被 jitted 才会被编译成 x86 代码。

【讨论】:

    【解决方案2】:

    如果这与 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

    【讨论】:

      猜你喜欢
      • 2016-07-22
      • 1970-01-01
      • 2015-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-29
      • 2010-11-09
      • 2010-10-08
      相关资源
      最近更新 更多