温馨提示×

怎样批量反汇编linux文件

小樊
53
2026-09-12 08:45:30
栏目: 智能运维

在 Linux 下“批量反汇编文件”通常指对多个二进制文件(可执行文件、.o、.so 等)逐个进行反汇编。下面按常见需求给你几种实用方案。


一、使用 objdump 批量反汇编(最常用)

1. 反汇编一个目录下的所有二进制文件

for f in *; do
    if file "$f" | grep -q "ELF"; then
        echo "=== $f ==="
        objdump -d "$f" > "$f.asm"
    fi
done

2. 递归反汇编整个目录

find . -type f -exec sh -c '
    if file "$1" | grep -q "ELF"; then
        objdump -d "$1" > "$1.asm"
    fi
' _ {} \;

3. 只反汇编代码段(更快)

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(适合逆向分析)

1. 批量反汇编

for f in *; do
    r2 -q -c "aaa; pdf @ main" "$f"
done

2. 导出所有函数反汇编

r2 -q -c "aaa; afll; pdf" file

四、使用 binary ninja / ghidra(GUI 批量)

  • Ghidra:

    • 创建 Project
    • 批量 Import
    • 自动分析
    • 导出反汇编 / 伪代码
  • Binary Ninja:

    • 支持脚本批量处理

五、只反汇编指定函数(提高效率)

objdump -d -M intel --start-address=0x401000 --stop-address=0x401100 file

六、判断是否为可反汇编文件(很重要)

file filename

常见可反汇编类型:

  • ELF 64-bit LSB executable
  • ELF 32-bit LSB shared object
  • ELF relocatable

七、常见组合建议

需求 推荐工具
快速查看汇编 objdump
逆向分析 radare2 / ghidra
调试上下文 gdb
批量自动化 bash + objdump/r2

如果你能说明:

  • 是 ELF / PE / Mach-O
  • 是否要 Intel 语法
  • 是否要 伪代码
  • 是否用于 CTF / malware / 性能分析

我可以给你更精确的批量脚本。

0 踩