在 Linux 下“批量反汇编文件”通常指对多个二进制文件(可执行文件、.o、.so 等)逐个进行反汇编。下面按常见需求给你几种实用方案。
objdump 批量反汇编(最常用)for f in *; do
if file "$f" | grep -q "ELF"; then
echo "=== $f ==="
objdump -d "$f" > "$f.asm"
fi
done
find . -type f -exec sh -c '
if file "$1" | grep -q "ELF"; then
objdump -d "$1" > "$1.asm"
fi
' _ {} \;
objdump -d -M intel file
-M intel:使用 Intel 语法(默认是 AT&T)gdb 批量反汇编(适合调试场景)gdb -q -batch \
-ex "set disassembly-flavor intel" \
-ex "disassemble main" \
./a.out
批量:
for f in *; do
gdb -q -batch -ex "disassemble main" "$f"
done
radare2(适合逆向分析)for f in *; do
r2 -q -c "aaa; pdf @ main" "$f"
done
r2 -q -c "aaa; afll; pdf" file
binary ninja / ghidra(GUI 批量)Ghidra:
Binary Ninja:
objdump -d -M intel --start-address=0x401000 --stop-address=0x401100 file
file filename
常见可反汇编类型:
ELF 64-bit LSB executableELF 32-bit LSB shared objectELF relocatable| 需求 | 推荐工具 |
|---|---|
| 快速查看汇编 | objdump |
| 逆向分析 | radare2 / ghidra |
| 调试上下文 | gdb |
| 批量自动化 | bash + objdump/r2 |
如果你能说明:
我可以给你更精确的批量脚本。