在 Linux 里,“脚本”通常指 Shell 脚本(bash/sh)、Python 脚本 等,而不是编译后的二进制程序。是否需要“反汇编”取决于你说的是哪一类:
Shell 脚本是明文文本,不存在“反汇编”,但可以做:
cat script.sh
less script.sh
有些脚本会:
base64 编码gzexe 压缩shc 编译成伪二进制base64 -d script.b64
gzexe -d script.sh
shc 把 bash 脚本编译成 C + 二进制:
尝试反编译:
# 查看是否为 shc
file script
strings script | less
可用工具:
unshc(GitHub 有)git clone https://github.com/yanncam/UnSHC
./unshc.sh script
.pyc 文件(字节码)file xxx.pyc
反汇编:
python -m dis xxx.pyc
或用工具:
uncompyle6decompyle3pip install uncompyle6
uncompyle6 xxx.pyc
如果你说的是 Linux 可执行文件(ELF):
objdump -d ./program
gdb ./program
disassemble main
| 文件类型 | 处理方式 |
|---|---|
.sh 明文 |
直接看 |
shc 编译 |
UnSHC |
gzexe |
gzexe -d |
.pyc |
uncompyle6 |
| ELF 二进制 | objdump / IDA |
如果你能发一下文件类型或 file 文件名 的输出,我可以给你更精确的命令。