在 CentOS 下进行“反汇编”(disassembly),通常是指把可执行文件 / 目标文件 / 二进制程序转换成汇编代码。下面按常见场景 + 常用工具给你一份实用指南。
| 工具 | 用途 | 安装方式 |
|---|---|---|
objdump |
反汇编 ELF 文件(最常用) | yum install binutils |
gdb |
动态调试 + 反汇编 | yum install gdb |
readelf |
查看 ELF 结构(辅助) | yum install binutils |
ndisasm |
裸二进制反汇编 | yum install nasm |
objcopy |
提取代码段 | yum install binutils |
objdump -d test
-g 编译)gcc -g test.c -o test
objdump -S test
objdump -d test | grep -A 20 "<main>:"
objdump -d -M intel test
gdb ./test
disassemble
disassemble main
set disassembly-flavor intel
disassemble main
break main
run
disassemble
ndisasm -b 32 shellcode.bin
或 64 位:
ndisasm -b 64 shellcode.bin
gcc -g -O0 test.c -o test
objdump -S -M intel test
-O0 保证汇编和源码对应清晰。
我可以给你更针对性的示例,比如:
你现在是学习逆向 / 调试 / 安全研究哪种用途?