在 C/C++ 中反汇编 Windows 上的内存函数

发布于 2024-11-30 11:13:30 字数 249 浏览 2 评论 0原文

我使用 MSVC 2008。

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

int foo()
{
  return 2 + 5;
}

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

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

I use MSVC 2008.

Let's say I have a function in my code:

int foo()
{
  return 2 + 5;
}

What tools can I use to obtain ASCII representation of this routine in X86 assembler?

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

厌倦 2024-12-07 11:13:30

您可以使用奇妙的BEAEngine 库

You can use the marvelous BEAEngine library.

孤单情人 2024-12-07 11:13:30

您可以通过单击“项目”->“属性”->“C++”->“汇编输出”来输出汇编代码,然后选择您的首选项,汇编文件将在您下次构建时创建。

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

这显然假设您在 x86 机器上获取 x86 程序集。

You can output the assembly code by clicking Project->properties->C++->Assembly output and then choose your preference, the assembly file will be created next time you build.

You can also view the assembly code while debugging(at a breakpoint) by pressing ctrl+Alt+D.

This obviously assumes you are on an x86 machine to get x86 assembly.

假扮的天使 2024-12-07 11:13:30

确保该文件是项目的一部分。转到项目属性 ->配置属性-> C/C++->输出文件,然后在“汇编器输出”下,选择除“无列表”之外的其他内容。然后,当您编译时,如果您仅指定程序集,您将获得一个 .asm 文件;如果您指定了列表文件,您将获得一个 .lst 文件。无论您选择哪个,都将保存文件中生成的汇编代码(不过,作为警告,您编写的部分的代码通常几乎被埋在标准库等的其他大杂烩之下。

Ensure that file is part of a project. Go to Project properties -> Configuration Properties -> C/C++ -> Output Files, and then under "Assembler output", select something other than "no listing". Then when you compile you'll get a .asm file if you specified assembly only, or a .lst file if you specified a listing file. Whichever you've selected will hold the generated assembly code from your file (though, as a warning, the code for the parts you wrote will often be almost buried under a mountain of other mishmash from standard libraries and such.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文