在 CentOS(以及绝大多数 Linux 发行版)里,“反汇编”通常不是某一条单独命令,而是由一些工具提供,最常见的是 objdump、gdb、readelf、以及 nm 等。下面按**“在哪查”和“怎么用”**两部分说明。
man objdump
man gdb
man readelf
man nm
如果你装了 debuginfo:
debuginfo-install glibc binutils
CentOS 中反汇编主要来自 binutils:
rpm -ql binutils | grep bin
常见命令:
/usr/bin/objdump/usr/bin/readelf/usr/bin/nm/usr/bin/addr2lineman 2 syscalls + Intel/AMD 手册objdump -d ./a.out
反汇编特定段:
objdump -d -M intel ./a.out
查看符号:
objdump -t ./a.out
gdb ./a.out
(gdb) disassemble main
(gdb) disassemble /m main # 混合源码
(gdb) x/10i $rip # 查看当前指令
readelf -h ./a.out
readelf -S ./a.out
readelf -s ./a.out
nm ./a.out
objdump / gdbcrash
objdump -d vmlinux
需要 kernel-debuginfo
CentOS 反汇编指令主要看
objdump和gdb的 man 手册,底层来自 binutils;CPU 指令查 Intel/AMD 手册。
如果你愿意,可以告诉我: