在CentOS上输出(查看)反汇编结果,通常取决于你想反汇编的是可执行文件/库,还是正在运行的程序/内核。下面按常见场景给你一个完整说明。
objdump 反汇编 ELF 文件(最常用)yum install -y binutils
objdump -d /bin/ls
常见参数:
objdump -d -M intel a.out # Intel 语法(默认 AT&T)
objdump -S a.out # 反汇编 + 源码对照
objdump -s -j .text a.out # 查看 .text 段内容
objdump -d a.out | grep -A 20 "<main>:"
gdb 实时反汇编(调试、学习常用)yum install -y gdb
gdb ./a.out
disassemble main
disassemble 0x4005f0
disassemble /m main # 反汇编 + 源码
切换 Intel 语法:
set disassembly-flavor intel
disassemble main
ps aux | grep app
gdb -p PID
disassemble
radare2(专业逆向工具)yum install -y radare2
r2 /bin/ls
常用命令:
aaa # 自动分析
pdf @ main # 反汇编 main
pd 20 # 反汇编 20 条指令
objdump -d your_module.ko
或:
nm your_module.ko
| 工具 | 场景 | 推荐 |
|---|---|---|
| objdump | 静态分析 ELF | ⭐⭐⭐⭐ |
| gdb | 调试 + 反汇编 | ⭐⭐⭐⭐⭐ |
| radare2 | 逆向工程 | ⭐⭐⭐⭐ |
| nm | 查看符号 | ⭐⭐ |
// test.c
#include <stdio.h>
int main() {
puts("hello");
}
gcc -g -O0 test.c -o test
objdump -d -M intel test
如果你能具体说明:
我可以给你更精确的命令示例。