温馨提示×

linux如何反汇编脚本文件

小樊
36
2026-09-21 16:41:57
栏目: 智能运维

在 Linux 下“反汇编脚本文件”这个说法需要先澄清一下,因为脚本文件(如 Shell、Python、Perl 等)本身是文本,不是机器码,所以严格来说不能像二进制程序那样反汇编。下面按不同情况说明:


一、如果是「文本脚本」(Shell / Python / Perl 等)

✅ 不需要反汇编,直接看源码

cat script.sh
less script.py
vim script.pl

如果你看到的是加密或压缩过的脚本,常见情况:

1. Shell 脚本被 shc 加密

shc 会把 shell 脚本编译成二进制:

file script.x
# ELF 可执行文件

此时可以:

strings script.x

或反汇编 ELF:

objdump -d script.x

二、如果是「二进制程序」(ELF 文件)

✅ 这才是真正可以反汇编的

1. 使用 objdump

objdump -d ./program

反汇编并看源码对照:

objdump -S ./program

2. 使用 gdb

gdb ./program
(gdb) disassemble main

3. 使用 radare2(推荐)

r2 -d ./program
[0x000000]> pdf

三、如果是「字节码脚本」(Python / Lua 等)

✅ 反编译,不是反汇编

Python

python -m dis script.pyc

或用工具:

  • uncompyle6
  • decompyle3

Lua

luadec script.luac

四、常见误解总结

文件类型 是否能反汇编 正确方式
.sh ❌ 直接看文本
.py ❌ dis / 反编译
.pyc ❌ 反编译
ELF ✅ objdump / gdb
shc 加密脚本 ✅ 当 ELF 处理

如果你能告诉我:

  • 文件类型(.sh / .py / 未知二进制)
  • file 文件名 的输出

我可以给你更精确的步骤。

0 踩