用C / C ++解压缩Windows上的内存功能

时间:2011-08-18 21:06:54

标签: c++ disassembly

我使用的是MSVC 2008。

假设我的代码中有一个函数:

int foo()
{
  return 2 + 5;
}

我可以使用哪些工具在X86汇编程序中获取此例程的ASCII表示形式?

void bar()
{
  std::string s = disassemble(foo);
  printf("%s\n", s.c_str());
}

3 个答案:

答案 0 :(得分:2)

您可以通过单击Project-> properties-> C ++ - > Assembly output输出汇编代码,然后选择您的首选项,下次构建时将创建汇编文件。

通过按ctrl + Alt + D,您也可以在调试时(在断点处)查看汇编代码。

这显然假设你在x86机器上进行x86组装。

答案 1 :(得分:2)

您可以使用精彩的BEAEngine library

答案 2 :(得分:0)

确保该文件是项目的一部分。转到项目属性 - >配置属性 - > C / C ++ - >输出文件,然后在“汇编程序输出”下,选择“无列表”以外的内容。然后在编译时,如果指定了汇编,则会获得.asm文件;如果指定了列表文件,则会获得.lst文件。无论你选择哪一个,你都会从文件中保存生成的汇编代码(但是,作为警告,你编写的部分的代码通常几乎都被标准库中的其他混杂代码所掩盖。