> 技术文档 > 【亲测免费】 Pyarmor-Static-Unpack-1shot:一键解密 Pyarmor 加密脚本

【亲测免费】 Pyarmor-Static-Unpack-1shot:一键解密 Pyarmor 加密脚本


Pyarmor-Static-Unpack-1shot:一键解密 Pyarmor 加密脚本

项目介绍

在软件开发领域,代码保护是一项重要的安全措施。Pyarmor 是一款流行的 Python 代码保护工具,它将 Python 脚本转换成二进制数据,形成一种加密的 pyc 文件变体。这些文件可以被共享库(pyarmor_runtime)解密,并由 Python 解释器执行。

Pyarmor-Static-Unpack-1shot 项目则旨在将这些加密数据转换回字节码汇编,甚至实验性地还原回源代码。项目基于优秀的 Decompyle++(pycdc)进行了分支开发,并在此基础上增加了一些抽象语法树的修改。

项目技术分析

Pyarmor-Static-Unpack-1shot 的工作原理与 Pyarmor 相反,它不需要执行加密脚本,而是使用与 pyarmor_runtime 相同的算法进行解密。这种静态解密方式在处理不可信脚本时尤为有用。

项目支持 Pyarmor 8.0 到 9.1.2(最新版)的所有版本,兼容 Python 3.7 至 3.13,并可在所有操作系统上运行。它尽可能支持多种混淆选项,尽管测试有限。

值得注意的是,如果数据以 PY 后跟六位数字开始,则表示支持;如果以 PYARMOR 开始,则表示它是由 Pyarmor 7 或更早版本生成的,本项目不支持。

项目及应用场景

Pyarmor-Static-Unpack-1shot 的应用场景主要包括:

  1. 安全审计:在安全审计过程中,可能需要检查加密脚本的安全性或还原代码以进行深入分析。
  2. 代码调试:开发者可能需要调试加密脚本,以便更好地理解其行为或修复潜在的错误。
  3. 逆向工程:在某些合法的研究或开发场景中,可能需要分析加密脚本来获取技术细节或逆向工程。

项目特点

静态解密

Pyarmor-Static-Unpack-1shot 不需要执行加密脚本,即可实现解密。这种静态解密方式在处理不信任的脚本时非常有效。

通用性

项目旨在支持 Pyarmor 8.0 到 9.1.2 版本,以及 Python 3.7 至 3.13,在所有操作系统上运行,并尽可能支持更多的混淆选项。

易用性

使用 Pyarmor-Static-Unpack-1shot 非常简单,用户只需指定加密脚本所在位置,工具就会自动检测、解析、反汇编和反编译。

安装与使用

安装步骤如下:

mkdir buildcd buildcmake ..cmake --build .cmake --install .

也可以在项目发布页下载预编译的二进制文件。

使用方法:

python /path/to/helpers/shot.py /path/to/scripts

确保在运行 shot.py 之前,helpers 目录下存在 pyarmor-1shot(Windows 系统为 pyarmor-1shot.exe)可执行文件。

只需指定包含所有加密数据及 pyarmor_runtime 的目录,工具将尽可能递归处理它们。

如果需要,可以使用 -r path/to/pyarmor_runtime[.pyd|.so|.dylib] 指定 pyarmor_runtime 可执行文件路径。所有生成的文件名将包含 .1shot.。如果希望将文件保存到其他目录,可以使用 -o another/path/,文件夹结构将保持不变。

注意事项

  • 如果子目录名为 __pycache__site-packages,或直接包含 .no1shot 文件,则不会处理这些目录,以避免重复处理或无限循环,节省时间。
  • 对于 PyInstaller 打包的归档文件或可执行文件,必须使用其他工具先进行解包,否则可能会遇到未定义的行为。

结语

Pyarmor-Static-Unpack-1shot 是一款功能强大的工具,适用于处理 Pyarmor 加密的 Python 脚本。其静态解密、通用性和易用性使其成为开发者和安全专家的重要助手。无论是出于安全性审计、代码调试还是逆向工程的需求,Pyarmor-Static-Unpack-1shot 都能提供有效的支持。如果你需要一款强大的 Python 代码解密工具,Pyarmor-Static-Unpack-1shot 绝对值得一试。

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

百科全书