温馨提示×

怎么批量跑centos反汇编

小樊
50
2026-09-27 08:30:05
栏目: 智能运维

在 CentOS 上“批量反汇编”,通常分两种场景:

  1. 批量反汇编多个二进制文件(ELF / 可执行 / .o)
  2. 批量反汇编某个文件中的多个函数 / 符号

下面给你几种实战可用方案。


一、最常用:objdump 批量反汇编

1️⃣ 批量反汇编当前目录所有 ELF 文件

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

2️⃣ 只反汇编 .text 段

objdump -d -j .text binary_file

3️⃣ 反汇编并带源码(如果有 -g)

objdump -d -S binary_file

二、批量反汇编指定函数(符号)

1️⃣ 列出所有函数

nm binary_file | grep ' T '

2️⃣ 用 objdump 反汇编某个函数

objdump -d --start-address=0xADDR binary_file

3️⃣ 脚本批量反汇编多个函数

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 批量反汇编(适合动态分析)

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

四、更专业:用 radare2(推荐)

安装

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 适合:

  • 大量函数
  • 自动化脚本
  • 逆向分析

五、如果你是要“批量跑很多服务器”

1️⃣ 用 ansible

- name: Disassemble binaries
  shell: objdump -d /usr/bin/xxx > /tmp/xxx.asm

2️⃣ 用 pssh

pssh -h hosts.txt -i "objdump -d /bin/ls"

六、常见组合推荐

需求 推荐
快速看汇编 objdump
批量函数 radare2
动态调试 gdb
多机器 ansible / pssh

如果你能告诉我:

  • ✅ 是 ELF / 内核模块 / 动态库
  • ✅ 想反汇编 整个文件 / 某些函数 / 多台机器
  • ✅ 是否需要 自动化脚本

我可以直接给你一整套 可复制脚本。

0 踩