在 CentOS 上进行反汇编(reverse / disassembly)时,和通用 Linux 差不多,但有一些系统相关、工具链、安全机制方面需要特别注意。下面按「常见坑 + 建议」整理:
CentOS 最小化安装常常没有:
objdumpgdbreadelfstrace / ltrace安装常用工具:
yum install -y binutils gdb elfutils strace ltrace
如果是 CentOS 8+ / Stream:
dnf install -y binutils gdb elfutils strace
objdump -d ./binary
注意:
yum install glibc.i686
CentOS 默认编译的程序通常是:
影响:
查看是否 PIE:
file ./binary
# 出现 "shared object, dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2" 通常是 PIE
调试时关闭 ASLR:
echo 0 | sudo tee /proc/sys/kernel/randomize_va_space
如果是发行版二进制:
-O2 / -O3建议:
-O0 -g 对比gcc -O0 -g -no-pie test.c -o test
CentOS 官方包:
debuginfo 包安装 debuginfo:
debuginfo-install <package>
或:
yum install yum-utils
debuginfo-install glibc
readelf -s binary
nm binary
无符号时:
main、_start 等入口sub_xxxxsyscall 指令rdi rsi rdx r10 r8 r9
查看:
objdump -d binary | grep syscall
CentOS 7 / 8 / Stream 的 glibc 差异较大:
ldd --version
如果是 内核模块 (.ko):
objdump -d module.ko
注意:
yum install kernel-devel
✅ CentOS 默认:
✅ 调试前:
✅ 推荐组合:
objdump -d -M intel binary
gdb -q ./binary
你可以告诉我:
我可以给你更针对性的命令和技巧。