【问题标题】:How to view x86 Assembly from C program with .bin extension - Linux如何从带有 .bin 扩展名的 C 程序查看 x86 程序集 - Linux
【发布时间】:2013-07-27 05:59:45
【问题描述】:

我正在尝试在 Linux 中查看已编译 C 程序的 x86 程序集,但我没有源代码。这可以用 GCC 完成,还是我需要不同的工具?谢谢。

【问题讨论】:

  • 你真的想为此研究反汇编程序。

标签: assembly x86 reverse-engineering


【解决方案1】:

GCC 是一个编译器。您正在寻找的是反汇编程序。在linux上,你可以使用objdump(1)

一个例子(一些objdump的输出被剪掉以便于阅读):

$ cat example.c 
#include <stdio.h>

int main(void)
{
    printf("Hello, world!\n");
    return 0;
}
$ clang -Wall -Wextra -O2 -o example example.c
$ ./example 
Hello, world!
$ objdump -d example | grep -A10 '<main>'
0000000000400500 <main>:
  400500:   55                      push   %rbp
  400501:   48 89 e5                mov    %rsp,%rbp
  400504:   bf 0c 06 40 00          mov    $0x40060c,%edi
  400509:   e8 e2 fe ff ff          callq  4003f0 <puts@plt>
  40050e:   31 c0                   xor    %eax,%eax
  400510:   5d                      pop    %rbp
  400511:   c3                      retq   
  400512:   90                      nop
  400513:   90                      nop
  400514:   90                      nop

【讨论】:

    【解决方案2】:

    objdump -d 程序> dumped.txt

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-14
      • 2021-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-26
      • 1970-01-01
      相关资源
      最近更新 更多