温馨提示×

怎样反汇编linux脚本文件

小樊
38
2026-09-06 13:29:51
栏目: 智能运维

在 Linux 里,“脚本文件”和“二进制可执行文件”是两类不同的东西,反汇编方式也不一样。下面按常见情况说明。


一、如果“脚本文件”是指 Shell / Python / Perl 等文本脚本

这类文件本身是文本源码,不是机器码,不能反汇编,只能“查看源码”或“反编译”。

1. 直接查看

cat script.sh
less script.py

2. 如果是加密 / 压缩过的脚本

有些脚本会被打包(如 shc 加密的 shell 脚本):

  • shc 生成的脚本:本质是二进制包装器
  • 可用反汇编工具分析(见下一部分)

二、如果“脚本文件”其实是 二进制可执行文件

例如:

  • shc 编译的 shell 脚本
  • PyInstaller 打包的 Python
  • gcc 编译的程序

这才需要反汇编

1. 查看文件类型

file xxx

输出示例:

xxx: ELF 64-bit LSB executable, x86-64

2. 常用反汇编工具

✅ objdump(最基础)

objdump -d xxx

反汇编主代码段:

objdump -d -M intel xxx

查看符号:

objdump -t xxx

✅ gdb(动态调试 + 反汇编)

gdb xxx
(gdb) disassemble main

✅ radare2 / rizin(推荐)

rizin -d xxx
[0x000000]> aaa
[0x000000]> pdf

✅ Ghidra(图形化,最强)

  • 官网:https://ghidra-sre.org
  • 支持 ELF / 反编译为类 C 代码
  • 适合分析复杂二进制

三、如果是 Python 打包的二进制

例如 PyInstaller:

  1. 提取:
pyinstxtractor xxx
  1. 反编译 .pyc
uncompyle6 main.pyc

四、总结对照表

文件类型 是否需要反汇编 方法
.sh / .py 源码 cat / 编辑器
shc 加密 shell objdump / ghidra
ELF 可执行 objdump / gdb / ghidra
PyInstaller ⚠️ 提取 + 反编译

如果你能告诉我:

  • 文件类型(file 输出)
  • 是什么语言 / 怎么生成的

我可以给你更精确的操作步骤

0