在 CentOS 上“批量反汇编”,通常分两种场景:
下面给你几种实战可用方案。
for f in *; do
if file "$f" | grep -q "ELF"; then
echo "===== $f ====="
objdump -d "$f" > "$f.asm"
fi
done
.text 段objdump -d -j .text binary_file
-g)objdump -d -S binary_file
nm binary_file | grep ' T '
objdump -d --start-address=0xADDR binary_file
nm binary_file | awk '$2=="T"{print $1, $3}' | while read addr name; do
echo "=== $name ==="
objdump -d --start-address=0x$addr binary_file | head -n 50
done
gdb -q binary_file <<EOF
set pagination off
disassemble main
disassemble foo
quit
EOF
批量:
for sym in main foo bar; do
gdb -q -batch -ex "disassemble $sym" binary_file
done
yum install radare2
r2 -q -c 'aaa; pdf @ main; pdf @ sym.foo' binary_file
r2 -q -c 'aaa; afl~; pdf' binary_file > out.asm
✅ radare2 适合:
- name: Disassemble binaries
shell: objdump -d /usr/bin/xxx > /tmp/xxx.asm
pssh -h hosts.txt -i "objdump -d /bin/ls"
| 需求 | 推荐 |
|---|---|
| 快速看汇编 | objdump |
| 批量函数 | radare2 |
| 动态调试 | gdb |
| 多机器 | ansible / pssh |
如果你能告诉我:
我可以直接给你一整套 可复制脚本。