在 Linux 下“批量反汇编”通常指对一批二进制文件(或一批函数/段)自动进行反汇编并导出结果。下面按常见场景给你几种实用做法。
objdump(最基础)mkdir -p disasm
for f in *.elf; do
objdump -d "$f" > "disasm/$f.dis"
done
常用参数:
objdump -d # 反汇编代码段
objdump -D # 反汇编所有段
objdump -M intel # Intel 语法(默认 AT&T)
objdump -S # 源码+反汇编(需带调试信息)
gdb(少量文件、交互式)gdb ./a.out
(gdb) disassemble main
批量方式(脚本):
gdb -batch -ex "disassemble main" ./a.out
for f in /usr/bin/*; do
if file "$f" | grep -q "ELF"; then
objdump -d "$f" > "$f.dis"
fi
done
radare2(强烈推荐,适合批量)r2 -q -c 'pdf @ main' ./a.out
批量脚本:
for f in *.elf; do
r2 -q -c 'aaa; pdf @ main' "$f" > "$f.r2"
done
常用命令:
aaa:自动分析pdf:反汇编函数afl:列出函数e asm.bytes=false:关闭字节显示Ghidra(GUI + 批量)适合:
IDA Pro(最强,但贵)ida64 -B -P+ *.elf
nm + objdumpnm a.out | grep ' T ' | awk '{print $3}' | while read fn; do
objdump -d --disassemble=$fn a.out
done
objdump -d vmlinux
objdump -d *.ko
.o 未链接文件(地址无效)我可以直接给你一套可复制的批量脚本。