在 Linux 里需要先澄清一个概念:“脚本文件”通常不是被“反汇编”的,而是被“反编译 / 还原源码”的,因为脚本本身是文本或字节码,不是机器码。
下面按不同类型说明:
Shell 脚本本质是文本文件,不需要反汇编。
cat script.sh
less script.sh
常见情况:
shc 加密的 shell 脚本gzexe 打包的脚本file script.sh.x
通常是 ELF 可执行文件。
可用工具:
unshcshc-decodergzexe -d script
.py 文件直接看源码:
cat xxx.py
.pyc 字节码这是反编译,不是反汇编。
工具:
pip install uncompyle6
uncompyle6 xxx.pyc
或:
decompyle3pycdccat script.pl
如果是 pp 打包:
pp -M script.pl
这才是真正需要反汇编的情况。
file prog
objdump -d prog
更高级:
gdbIDA ProGhidra(免费)radare2 / rizin| 文件类型 | 操作 |
|---|---|
| Shell 脚本 | 看源码 / 解密 |
| Python | 反编译 .pyc |
| ELF 程序 | 反汇编 |
| 字节码 | 反编译 |
如果你有具体文件类型或命令报错信息,可以贴出来,我可以给你更精确的方法。