温馨提示×

怎样反汇编linux脚本

小樊
53
2026-10-06 09:31:37
栏目: 智能运维

在 Linux 里需要分清 “脚本” 和 “可执行程序”,因为两者的“反汇编”含义不同。


一、先明确:你说的“脚本”是什么?

1️⃣ Shell / Python / Perl 等文本脚本

例如:

#!/bin/bash
echo "hello"

✅ 这类是文本源码,不需要反汇编
你可以直接查看:

cat script.sh
less script.py

如果脚本被 加密 / 压缩 / 混淆,那是“解密”问题,不是“反汇编”。


2️⃣ 编译后的二进制程序(常被误叫“脚本”)

例如:

./a.out

✅ 这才是可以反汇编的对象


二、反汇编 Linux 二进制程序的方法

✅ 方法 1:objdump(最基础)

objdump -d ./program

常用参数:

objdump -d -M intel ./program   # Intel 语法
objdump -S ./program            # 源码+汇编(需带调试信息)

✅ 方法 2:gdb(动态分析 + 反汇编)

gdb ./program

在 gdb 中:

disassemble main

查看某地址:

x/10i $pc

✅ 方法 3:radare2(专业逆向)

r2 ./program

常用:

aa        # 分析
pdf       # 反汇编当前函数
s main    # 跳到 main
pdf

✅ 方法 4:IDA / Ghidra(GUI 逆向)

  • IDA Pro(商业)
  • Ghidra(NSA 开源,免费)

适合复杂程序、加密、混淆。


三、如果“脚本”被编译成了二进制

常见情况:

  • shc 编译 shell 脚本
  • Python → PyInstaller / Nuitka
  • Go / Rust 程序

示例:shc 加密 shell 脚本

# 反汇编
objdump -d script.bin

Python 打包程序

# PyInstaller
strings program | grep pyz

四、常见误区提醒 ⚠️

❌ “反汇编 shell 脚本”
✅ 脚本是文本,不用反汇编

❌ “反编译 = 反汇编”

  • 反汇编:汇编代码
  • 反编译:高级语言(如 C)

五、如果你愿意,我可以更具体帮你

你可以告诉我:

  1. 文件类型(file xxx 的输出)
  2. 是什么语言(bash / python / C / Go)
  3. 你想干什么(学习 / 安全 / 修复 / 破解)

我可以直接给你对应命令或分析思路。

0 踩