在 CentOS 下进行“反汇编 + 调试”通常涉及 objdump / gdb / radare2 / ltrace / strace 等工具。下面按常见使用场景给你一个实用指南。
sudo yum install -y gdb binutils
# 反汇编增强
sudo yum install -y radare2
# 系统调用/库调用跟踪
sudo yum install -y strace ltrace
如果是 CentOS 8+:
sudo dnf install -y gdb binutils radare2 strace ltrace
objdump -d ./a.out
objdump -d -M intel ./a.out | grep -A 30 "<main>:"
-M intel:使用 Intel 语法(比 AT&T 好读)
objdump -t ./a.out
gdb ./a.out
break main
run
disassemble
或指定函数:
disassemble main
set disassembly-flavor intel
stepi
nexti
info registers
x/10x $rsp
x/10i $rip
编译时加调试信息:
gcc -g -O0 test.c -o test
gdb 中:
layout split
上方源码,下方汇编
或:
layout asm
strace ./a.out
ltrace ./a.out
gdb -p <pid>
r2 -d ./a.out
aa
pdf @ main
dc # 运行
s main # 跳到 main
pdf # 反汇编
✅ 没有调试符号
yum install -y glibc-debuginfo
✅ SELinux 阻止 gdb
setenforce 0
✅ PIE 程序
gcc -no-pie -fno-pie test.c -o test
gcc -g -O0 -no-pie test.c -o test
gdb ./test
(gdb) set disassembly-flavor intel
(gdb) break main
(gdb) run
(gdb) layout split
(gdb) stepi
如果你愿意,可以告诉我:
我可以给你更针对性的命令示例。