温馨提示×

如何批量反汇编linux文件

小樊
55
2026-09-06 13:35:52
栏目: 智能运维

在 Linux 下“批量反汇编文件”通常有以下几种常见场景和需求,我按使用目的给你一套清晰的做法。


一、批量反汇编多个二进制文件(最常用)

✅ 使用 objdump(GNU 工具链)

适合 ELF 可执行文件、.o、静态库等。

for f in *.elf; do
    echo "=== Disassemble $f ==="
    objdump -d "$f" > "$f.asm"
done

常用参数:

objdump -d        # 反汇编可执行代码
objdump -D        # 反汇编所有段
objdump -M intel  # Intel 语法(默认 AT&T)

示例(Intel 语法):

objdump -d -M intel ./a.out > a.asm

二、批量反汇编目录中所有二进制文件

find . -type f -exec file {} \; | grep "ELF" | cut -d: -f1 | while read bin; do
    objdump -d "$bin" > "$bin.asm"
done

三、使用 gdb 批量反汇编(适合调试场景)

gdb -batch \
    -ex "file ./a.out" \
    -ex "disassemble main" \
    -ex "quit"

批量:

for f in binaries/*; do
    gdb -batch -ex "file $f" -ex "disassemble" -ex "quit" > "$f.asm"
done

四、使用 radare2(强大、适合逆向)

安装

sudo apt install radare2

批量反汇编

for f in *; do
    r2 -q -c "aa; pdf @ main" "$f" > "$f.asm"
done

常用:

r2 -q -c "aaa; pd 100" ./a.out

五、反汇编整个目录并自动识别架构(进阶)

for f in $(find . -type f); do
    if file "$f" | grep -q "ELF"; then
        objdump -d "$f" > "$f.disasm"
    fi
done

六、如果只是“看汇编”(不保存)

objdump -d ./a.out | less

七、常见坑提醒

  • ❌ 文本文件不能直接反汇编
  • ❌ stripped 文件没有符号(可用 radare2 更好)
  • ✅ 用 file 先确认是 ELF / PE / Mach-O

如果你能告诉我:

  • 是 ELF / PE / 固件 / Android?
  • 是否 需要函数名 / 控制流 / 伪代码?
  • 是否用于 逆向 / 漏洞分析 / 学习?

我可以给你更精准的批量反汇编方案(如 IDA / Ghidra 批处理)。

0 踩