在 CentOS 上查看反汇编(disassembly)通常有以下几种常用方式,取决于你是要看可执行文件、正在运行的进程,还是内核/模块。
objdump(最常用,静态反汇编)objdump -d /path/to/binary
-g 编译)objdump -S /path/to/binary
objdump -d /path/to/binary | grep -A 50 '<main>:'
或者:
objdump -d --start-address=0x401000 --stop-address=0x401100 /path/to/binary
gdb(动态 + 反汇编)gdb /path/to/binary
disassemble main
disassemble
layout asm
layout split
gdb -p <pid>
disassemble
cat /proc/kallsyms | grep func_name
objdump 分析 vmlinuxobjdump -d vmlinux | less
nm(查看符号)nm /path/to/binary
file(确认架构)file /path/to/binary
readelf(ELF 信息)readelf -h /path/to/binary
yum install -y binutils gdb
| 场景 | 推荐工具 |
|---|---|
| 静态反汇编 | objdump -d |
| 动态调试 | gdb |
| 运行中进程 | gdb -p |
| 内核 | objdump vmlinux |
如果你愿意,可以告诉我:
我可以给你更精确的命令。