在 CentOS 上进行“反汇编”(disassembly),通常是指把可执行文件、目标文件或内存中的机器码转换成汇编指令。下面从常用工具和具体用法两方面说明。
objdump(最常用)属于 binutils,CentOS 默认或很容易安装。
sudo yum install binutils
gdb(调试 + 反汇编)sudo yum install gdb
objconv / ndisasm(可选)ndisasm(来自 nasm)sudo yum install nasm
objdump -d ./a.out
.text)objdump -d -j .text ./a.out
-g 编译)gcc -g test.c -o test
objdump -S test
objdump -t ./a.out
objdump -d -M intel ./a.out
gdb ./a.out
disassemble
disassemble main
set disassembly-flavor intel
disassemble main
disassemble 0x400500, 0x400600
echo -ne "\x90\x90\xc3" > code.bin
ndisasm -b 64 code.bin
strip 过的程序-g-M intel 或 gdb 里 set disassembly-flavor intelobjdump -d ./a.out | grep -A 20 "<main>:"
gcc -g test.c -o test
objdump -d -M intel test
# 或
gdb ./test
(gdb) set disassembly-flavor intel
(gdb) disassemble main
如果你有具体场景(如:内核模块、shellcode、CVE 分析、二进制 CTF),我可以给你更针对性的命令。