在 CentOS 上进行反汇编,通常是为了分析 ELF 可执行文件、动态库或二进制程序。下面按常见实战流程一步步说明,从环境准备到常用反汇编方法。
sudo yum install -y binutils gdb nasm
常用工具说明:
objdump:GNU Binutils,最常用反汇编工具gdb:调试 + 反汇编readelf:分析 ELF 结构nasm:汇编器(可选)// test.c
#include <stdio.h>
int main() {
printf("Hello CentOS\n");
return 0;
}
gcc -g -o test test.c
objdump(最常用)objdump -d test
objdump -d test | grep -A 20 "<main>:"
objdump -S test
objdump -h test
gdb(调试级反汇编)gdb ./test
break main
run
disassemble
或指定函数:
disassemble main
disassemble /r main
readelf -h test # ELF 头
readelf -S test # 段表
readelf -s test # 符号表
objdump -d /lib64/libc.so.6 | less
| 目的 | 命令 |
|---|---|
| 反汇编整个程序 | objdump -d file |
| 汇编 + 源码 | objdump -S file |
| 调试反汇编 | gdb → disassemble |
| 查看函数地址 | nm file |
| 查看 ELF 信息 | readelf -h file |
64 位系统
切换 Intel 语法
objdump -M intel -d test
或 GDB:
set disassembly-flavor intel
strip test
gcc -g -o test test.c
objdump -M intel -d test > test.asm
gdb ./test
如果你需要:
可以告诉我你的具体场景,我可以给你更针对性的步骤。