KrishnanSG/codeenigma

GitHub: KrishnanSG/codeenigma

CodeEnigma 是一个轻量级的开源 Python 代码混淆工具,用于保护代码逻辑免受逆向工程和未授权访问。

Stars: 50 | Forks: 14

![Image](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/7be54b1235003745.svg) [![许可: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![PyPI](https://img.shields.io/pypi/v/codeenigma)](https://pypi.org/project/codeenigma/) [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff) [![CodeFactor](https://www.codefactor.io/repository/github/krishnansg/codeenigma/badge)](https://www.codefactor.io/repository/github/krishnansg/codeenigma) [![下载量](https://static.pepy.tech/badge/codeenigma)](https://pepy.tech/project/codeenigma) [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/7187ae671b003745.svg)](https://github.com/KrishnanSG/codeenigma/actions) [![覆盖率](https://raw.githubusercontent.com/KrishnanSG/codeenigma/python-coverage-comment-action-data/badge.svg)](https://github.com/KrishnanSG/codeenigma/actions/workflows/python-coverage-comment-action-data.yml) 一款用于 Python 代码混淆的轻量级开源工具。CodeEnigma 有助于保护您的逻辑免受逆向工程和未经授权的访问,从而确保安全分发您的 Python 应用程序。 ## 🔒 为什么选择 CodeEnigma? 在广泛搜索免费开源的 Python 混淆工具后,我意识到大多数现有工具要么是付费的、闭源的,要么其工作方式不透明。让一个黑盒工具处理我的生产代码而不知道它具体在做什么,尤其当它能接触到敏感逻辑时,我感到不放心。 因此,我构建了 **CodeEnigma** —— 一个透明、自包含的解决方案,让您完全掌控混淆过程,没有隐藏逻辑,不涉及外部服务器。 本项目受 [PyArmor](https://pyarmor.dashingsoft.com/) 启发,但采用了不同的方法。 ## 高层架构 ![Image](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/249230d288003747.svg) CodeEnigma 的工作原理很简单: 1. 用户提供需要混淆的 Python 模块路径。 2. CodeEnigma 读取该模块的源代码。 3. 使用安全的随机数生成器生成一个 AES-256 密钥,并将其设置在 `private.py` 中。 4. 混淆过程按文件逐一执行以下步骤: * 4.1. 使用 `compile(code, str(file_path), "exec")` 进行编译。 * 4.2. 使用 `zlib.compress(compiled_code)` 压缩字节码。 * 4.3. 使用 `base64.b64encode(compressed_code)` 编码压缩后的字节码。 * 4.4. 使用 `AESGCM(SECRET_KEY).encrypt(NONCE, obfuscated, associated_data=None)` 加密编码后的字节码。 _[更多详情请参阅](codeenigma/core.py)_: 5. CodeEnigma 创建一个包含混淆代码的新模块。 6. 生成一个 `codeenigma_runtime.pyx` 文件,包含反混淆逻辑,用于解密和执行混淆后的代码。 7. 使用 Cython 将该运行时编译成一个 Python 扩展模块。同时生成一个用于分发的 `codeenigma_runtime.whl` 文件。 8. 过程结束,混淆后的模块即可作为 wheel 文件分发。 ## 功能特性 - 🔒 使用 AES-256 的强加密 - 🔄 简单的 API,用于混淆任意 Python 模块 - 🔑 安全动态的密钥生成 - 🛠️ 命令行界面,便于集成到构建流程中 - 📦 轻量且依赖最少 ## 安装说明 使用 Poetry: ``` poetry add codeenigma ``` 使用 pip: ``` pip install codeenigma ``` ## 使用方法 CodeEnigma 配备了一个由 Typer 驱动、用户友好的命令行界面。该 CLI 提供有用的提示和丰富的输出。 ### 基本用法 要混淆一个 Python 模块: ``` codeenigma obfuscate /path/to/your/module ``` ### 命令行选项 - `--expiration`, `-e`: 为混淆后的代码设置过期日期 (YYYY-MM-DD) - `--output`, `-o`, `--dist`: 指定输出目录 (默认为: 'dist') - `--verbose`, `-v`: 显示详细输出 #### 示例 设置过期日期进行混淆: ``` codeenigma obfuscate /path/to/your/module -e "2025-12-31 23:59:59+0530" ``` 指定自定义输出目录: ``` codeenigma obfuscate /path/to/your/module -o custom_output ``` ### 版本信息 要检查已安装的版本: ``` codeenigma version ``` ## 许可证 本项目基于 MIT 许可证授权 - 详情请参阅 [LICENSE](LICENSE) 文件。 ## 致谢 - 使用 ❤️ 和 Python 构建 - 使用 [cryptography](https://cryptography.io/) 进行安全加密 - 使用 [Cython](https://cython.org/) 编译运行时 - 徽标致谢, Claude 🫡
标签:Golang, PyArmor替代, Python代码混淆, SOC Prime, 二进制发布, 代码加密, 代码安全, 安全分发, 安全编程, 开发工具, 开源工具, 漏洞枚举, 软件保护, 轻量级工具, 逆向工具, 逆向工程防护, 透明混淆