温馨提示×

如何反汇编linux脚本

小樊
49
2026-09-03 09:22:53
栏目: 智能运维

在 Linux 里,“脚本”通常指 Shell 脚本(bash/sh)Python 脚本 等,而不是编译后的二进制程序。是否需要“反汇编”取决于你说的是哪一类:


一、Shell 脚本(bash/sh)

Shell 脚本是明文文本,不存在“反汇编”,但可以做:

1. 查看脚本内容

cat script.sh
less script.sh

2. 反混淆 / 还原被加密或压缩的脚本

有些脚本会:

  • base64 编码
  • gzexe 压缩
  • shc 编译成伪二进制

(1)base64 解码

base64 -d script.b64

(2)gzexe 压缩脚本

gzexe -d script.sh

(3)shc 编译的脚本(最常见“伪反汇编”)

shc 把 bash 脚本编译成 C + 二进制:

尝试反编译:

# 查看是否为 shc
file script
strings script | less

可用工具:

  • unshc(GitHub 有)
git clone https://github.com/yanncam/UnSHC
./unshc.sh script

二、Python 脚本

1. .pyc 文件(字节码)

file xxx.pyc

反汇编:

python -m dis xxx.pyc

或用工具:

  • uncompyle6
  • decompyle3
pip install uncompyle6
uncompyle6 xxx.pyc

三、真正的“反汇编”(二进制程序)

如果你说的是 Linux 可执行文件(ELF)

1. objdump

objdump -d ./program

2. gdb

gdb ./program
disassemble main

3. IDA / Ghidra(图形化)

  • Ghidra(免费)
  • IDA Pro(商业)

四、快速判断你该用哪种

文件类型 处理方式
.sh 明文 直接看
shc 编译 UnSHC
gzexe gzexe -d
.pyc uncompyle6
ELF 二进制 objdump / IDA

如果你能发一下文件类型或 file 文件名 的输出,我可以给你更精确的命令。

0