温馨提示×

linux下如何查看汇编代码

小樊
50
2026-10-18 03:33:51
栏目: 智能运维

在 Linux 下查看“汇编代码”通常分几种场景,下面按常见需求给你系统说明。


一、查看二进制程序 / 可执行文件的汇编(最常用)

1. objdump(最基础、最常用)

objdump -d ./a.out

常用选项:

objdump -d -M intel ./a.out   # Intel 语法(默认是 AT&T)
objdump -S ./a.out            # 汇编 + 源码混合
objdump -d -M intel -S ./a.out

2. gdb(调试时看汇编)

gdb ./a.out
(gdb) disassemble main

查看当前函数:

(gdb) disas

切换语法:

(gdb) set disassembly-flavor intel

单步执行汇编:

(gdb) stepi
(gdb) nexti

3. nm / readelf(看符号和段,不直接看汇编)

nm ./a.out
readelf -S ./a.out

二、查看 C/C++ 源码对应的汇编

1. gcc 直接生成汇编

gcc -S test.c

生成 test.s

Intel 语法:

gcc -S -masm=intel test.c

2. 汇编 + 源码对照

gcc -g -S -fverbose-asm test.c

或:

objdump -S -M intel ./a.out

三、实时反汇编(动态执行)

1. strace(看系统调用,不是汇编)

strace ./a.out

2. ltrace(库调用)

ltrace ./a.out

四、高级 / 逆向工具

工具 用途
radare2 逆向分析
Ghidra 反编译
IDA (Wine) 商业逆向
perf 性能 + 汇编级热点

示例:

r2 -d ./a.out

五、快速对照表

需求 命令
看可执行文件汇编 objdump -d
汇编+源码 objdump -S
调试看汇编 gdb → disas
C 转汇编 gcc -S
Intel 语法 -M intel

如果你愿意,可以告诉我:

  • 是 看自己写的 C 程序 还是 分析别人二进制
  • 是 x86 / x64 / ARM
  • 目的是 学习 / 调试 / 逆向

我可以给你更精准的命令示例。

0 踩