From 1fdb5bd1bf10286f51549f4a8b73aeb8b50aa179 Mon Sep 17 00:00:00 2001 From: chakcy <947105045@qq.com> Date: Mon, 4 May 2026 19:06:51 +0800 Subject: [PATCH] =?UTF-8?q?modify:=20pyarmor=20=E5=8A=A0=E5=AF=86=E6=94=AF?= =?UTF-8?q?=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 5 +- README.md | 273 +++++++++++----- examples/pyarmor_aes_dual_protection.py | 202 ++++++++++++ examples/verify.py | 57 ++++ pyproject.toml | 3 +- scripts/test_integration.py | 295 ++++++++++++++++++ .../pyarmor_runtime_000000/__init__.py | 2 + .../pyarmor_runtime.pyd | Bin 0 -> 639488 bytes scripts/test_output/test_pyarmor.py | 3 + scripts/test_pyarmor.py | 53 ++++ src/module_bank/__init__.py | 2 + src/module_bank/cli.py | 38 ++- src/module_bank/pyarmor_encryption.py | 202 ++++++++++++ src/module_bank/python_to_sqlite.py | 27 +- src/module_bank/sqlite_module_importer.py | 116 ++++++- src/module_bank/sqlite_module_loader.py | 114 ++++++- uv.lock | 116 ++++++- 17 files changed, 1418 insertions(+), 90 deletions(-) create mode 100644 examples/pyarmor_aes_dual_protection.py create mode 100644 examples/verify.py create mode 100644 scripts/test_integration.py create mode 100644 scripts/test_output/pyarmor_runtime_000000/__init__.py create mode 100644 scripts/test_output/pyarmor_runtime_000000/pyarmor_runtime.pyd create mode 100644 scripts/test_output/test_pyarmor.py create mode 100644 scripts/test_pyarmor.py create mode 100644 src/module_bank/pyarmor_encryption.py diff --git a/.gitignore b/.gitignore index e261543..431ad4e 100644 --- a/.gitignore +++ b/.gitignore @@ -11,4 +11,7 @@ wheels/ .python-version output.md log/ -*.mb \ No newline at end of file +*.mb +*.mbank +dual_protection_ +*.db \ No newline at end of file diff --git a/README.md b/README.md index d846fc9..5b2440d 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,16 @@ # Python Module Bank - SQLite 模块打包系统 -一个将Python模块打包到SQLite数据库,并支持从数据库直接导入模块的工具系统。 +一个将 Python 模块打包到 SQLite 数据库,并支持从数据库直接导入模块的工具系统。支持 **AES 字节码加密** 和 **PyArmor 代码混淆** 双重保护机制。 ## 🌟 特性 -- **单文件分发** - 将所有模块打包到单个SQLite数据库文件 -- **源代码保护** - 模块以编译后的字节码形式存储 -- **动态导入** - 运行时直接从数据库加载模块,无需文件系统 +- **单文件分发** - 将所有模块打包到单个 SQLite 数据库文件 +- **AES 字节码加密** - 编译后的字节码使用 Fernet (AES-128-CBC) 加密存储 +- **PyArmor 代码混淆** - 支持使用 PyArmor 对 Python 源代码进行混淆保护 +- **双层保护** - 可同时使用 PyArmor 混淆 + AES 字节码加密,提供双重安全保障 +- **动态导入** - 运行时直接从数据库加载模块,无缝集成 Python 导入系统 - **完整包支持** - 支持包结构和子模块导入 -- **CLI工具** - 提供完整的命令行接口 -- **导入钩子** - 无缝集成Python导入系统 +- **CLI 工具** - 提供完整的命令行接口 ## 📦 安装 @@ -21,69 +22,154 @@ cd module-bank pip install -e . ``` -### 依赖要求 +### 使用 uv(推荐) -- Python 3.7+ -- 无需额外依赖(仅使用标准库) +```bash +git clone http://124.71.68.6:3000/chakcy/module_bank.git +cd module-bank +uv sync +``` + +### 可选依赖 + +- **PyArmor** (强烈推荐): `uv add pyarmor` 或 `pip install pyarmor` + - 为模块提供 Python 源代码级别的混淆保护 + - 商业版可去除试用版水印 ## 🚀 快速开始 ### 1. 创建示例模块 ```python -# my_package/my_module.py +# my_package/__init__.py def hello(): - print("Hello from my_module!") + print("Hello from my_package!") return "success" + +VERSION = "1.0.0" +``` + +```python +# my_package/utils.py +def add(a, b): + return a + b ``` ### 2. 打包模块到数据库 -```python -# pack_example.py -from module_bank import PythonToSQLite -from module_bank.encryption import Encryption +#### 使用 AES 加密(推荐) -key = Encryption.generate_key() +```bash +# 生成密钥并打包 +mbank pack my_package --db my_package.mbank --key "$(python -c "from module_bank.encryption import Encryption; print(Encryption.generate_key())")" +``` -with open("my_package.key", "w") as key_file: - key_file.write(key) +#### 使用 PyArmor 混淆 -packer = PythonToSQLite("my_package.mbank", key) -packer.pack_directory("my_package") +```bash +# 使用 PyArmor 保护源代码 +mbank pack my_package --db my_package.mbank --pyarmor +``` +#### 使用双层保护 + +```bash +# PyArmor 混淆 + AES 加密 +mbank pack my_package --db my_package.mbank --pyarmor --key "your-encryption-key" ``` ### 3. 从数据库导入 ```python -from module_bank import PythonToSQLite - -with open("my_package.key") as f: - key = f.read() +# import_example.py +from module_bank.python_to_sqlite import PythonToSQLite packer = PythonToSQLite("my_package.mbank") -finder = packer.install_importer(key) +finder = packer.install_importer(key="your-encryption-key") # 如果加密了需要提供密钥 -from my_package import my_module +from my_package import utils +from my_package import hello -print(my_module) -my_module.hello() +print(hello()) +print(utils.add(3, 4)) +``` + +## 🛡️ 安全保护机制 + +### 第一层:PyArmor 代码混淆 + +PyArmor 对 Python 源代码进行混淆,将代码转换为难以阅读和逆向的形式: + +- 混淆后的代码依赖运行时二进制文件(`.pyd`/`.so`),无法直接运行 +- 支持混淆级别控制(代码混淆、模块混淆) +- 运行时文件会自动存储在数据库中,加载时自动部署 + +```bash +# 高级混淆选项 +mbank pack my_module.py --name my_module --db modules.db \ + --pyarmor \ + --pyarmor-obf-code 1 \ + --pyarmor-obf-mod 1 +``` + +### 第二层:AES 字节码加密 + +编译后的字节码使用 Fernet (AES-128-CBC) 加密: + +```bash +# 生成密钥 +python -c "from module_bank.encryption import Encryption; print(Encryption.generate_key())" > my_key.key + +# 使用密钥打包 +mbank pack my_module.py --name my_module --db modules.db --key "$(cat my_key.key)" + +# 使用时提供密钥 +mbank install --db modules.db --key "$(cat my_key.key)" +``` + +### 安全建议 + +1. **密钥管理**:加密密钥不要硬编码在代码中,使用环境变量或密钥管理服务 +2. **删除源代码**:打包后可从数据库删除源代码,仅保留混淆后的代码: + +```bash +# 删除所有模块的源代码 +mbank delete_source --db modules.db + +# 删除指定模块的源代码 +mbank delete_source --db modules.db --module my_module ``` ## 📖 详细使用 ### 命令行工具 -```python -# 打包模块或目录 -mbank pack my_package --db modules.db --key my_package_key +```bash +# 打包单个模块 +mbank pack my_module.py --name my_module --db modules.db + +# 打包整个目录(自动识别包结构) +mbank pack my_package/ --db modules.db + +# 使用 PyArmor 混淆打包 +mbank pack my_module.py --name my_module --db modules.db --pyarmor + +# 使用 AES 加密打包 +mbank pack my_module.py --name my_module --db modules.db --key "your-key" + +# 双层保护 +mbank pack my_module.py --name my_module --db modules.db --pyarmor --key "your-key" # 列出数据库中的模块 mbank list --db modules.db +# 删除源代码 +mbank delete_source --db modules.db +mbank delete_source --db modules.db --module my_module + # 安装导入器并进入交互模式 -mbank install --db modules.db --key my_package_key +mbank install --db modules.db +mbank install --db modules.db --key "your-key" ``` ### 编程接口 @@ -92,8 +178,21 @@ mbank install --db modules.db --key my_package_key ```python from module_bank import PythonToSQLite +from module_bank.encryption import Encryption -packer = PythonToSQLite("modules.mbank") +# 生成加密密钥 +key = Encryption.generate_key() + +# 使用 AES 加密打包 +packer = PythonToSQLite("modules.mbank", key=key) + +# 或使用 PyArmor 混淆打包 +packer = PythonToSQLite( + "modules.mbank", + pyarmor_obfuscate=True, + pyarmor_obf_code=1, + pyarmor_obf_mod=1, +) # 打包单个模块 packer.pack_module("module.py", "module_name") @@ -109,21 +208,25 @@ packer.verify_package_structure() ```python from module_bank import PythonToSQLite -import sys +# 如果数据库中的模块被 AES 加密了,需要提供密钥 packer = PythonToSQLite("modules.mbank") -# 安装导入器到sys.meta_path -finder = packer.install_importer() +# 安装导入器到 sys.meta_path +finder = packer.install_importer(key="your-key") # 列出所有可用模块 modules = packer.list_modules() for module in modules: - print(f"{module['module_name']} {'[包]' if module['is_package'] else ''}") + package_flag = " [包]" if module["is_package"] else "" + print(f" - {module['module_name']}{package_flag}") -# 导入数据库中的模块 +# 直接导入数据库中的模块(就像普通模块一样) import my_package import my_package.submodule + +print(my_package) +my_package.hello() ``` ## 🏗️ 架构设计 @@ -132,37 +235,49 @@ import my_package.submodule ```python src/module_bank/ -├── python_to_sqlite.py # 主打包类 -├── sqlite_module_importer.py # 数据库存储管理器 -├── sqlite_meta_path_finder.py # 元路径查找器 -├── sqlite_module_loader.py # 模块加载器 -├── encryption.py # 密钥管理 -├── cli.py # 命令行接口 -└── __init__.py # 模块导出 +├── python_to_sqlite.py # 主打包类 +├── sqlite_module_importer.py # 数据库存储管理器 +├── sqlite_meta_path_finder.py # 元路径查找器 +├── sqlite_module_loader.py # 模块加载器 +├── encryption.py # AES 密钥管理 +├── pyarmor_encryption.py # PyArmor 混淆封装 +├── cli.py # 命令行接口 +└── __init__.py # 模块导出 ``` ### 数据流 ```text 1. 打包阶段: - .py文件 → 编译为字节码 → 存储到SQLite数据库 + .py 文件 → (可选: PyArmor 混淆) → 编译为字节码 → (可选: AES 加密) → 存储到 SQLite 2. 导入阶段: - 导入请求 → MetaPathFinder查找 → ModuleLoader加载 → 执行模块 + 导入请求 → MetaPathFinder 查找 → ModuleLoader 加载 → (AES 解密) → (PyArmor 运行时部署) → 执行模块 ``` ### 数据库模式 ```sql +-- 模块表 CREATE TABLE python_modules ( module_name TEXT PRIMARY KEY, - source_code TEXT, -- 源代码(可选) - bytecode BLOB, -- 编译后的字节码 - is_package BOOLEAN, -- 是否是包 - metadata TEXT, -- 元数据(JSON格式) - encrypted INTEGER DEFAULT 0, -- 是否已加密 + source_code TEXT, -- 源代码(PyArmor 混淆后) + bytecode BLOB, -- 编译后的字节码(可选 AES 加密) + is_package BOOLEAN, -- 是否是包 + metadata TEXT, -- 元数据(JSON 格式) + encrypted INTEGER DEFAULT 0, -- AES 是否已加密 + pyarmor_protected INTEGER DEFAULT 0, -- 是否已 PyArmor 混淆 created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP -) +); + +-- PyArmor 运行时存储表 +CREATE TABLE pyarmor_runtime ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + runtime_name TEXT UNIQUE NOT NULL, + pyd_data BLOB, -- 原生二进制文件(.pyd/.so) + init_data TEXT, -- __init__.py 内容 + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP +); ``` ## 🔧 高级功能 @@ -173,7 +288,7 @@ CREATE TABLE python_modules ( # 打包时排除特定文件 packer.pack_directory( "my_project/", - exclude_patterns=["*_test.py", "*.pyc", "__pycache__"] + exclude_patterns=["*_test.py", "*.pyc", "__pycache__"], ) ``` @@ -185,42 +300,56 @@ packer.importer.add_module( "my_module", source_code, is_package=False, - metadata={"version": "1.0", "author": "me"} + metadata={"version": "1.0", "author": "me"}, ) ``` ### 混合导入 ```python -# 可以同时使用文件系统和数据库导入 -# 数据库导入器优先级更高 +# 数据库导入器默认插入到 meta_path 开头,优先级高于文件系统 import sys from module_bank import PythonToSQLite packer = PythonToSQLite("modules.db") -finder = packer.install_importer() # 插入到meta_path开头 +finder = packer.install_importer() -# 如果需要文件系统优先,可以调整插入位置 +# 如果需要文件系统优先,将查找器追加到末尾 +sys.meta_path.remove(finder) sys.meta_path.append(finder) ``` +### 验证运行时完整性 + +```python +from module_bank.sqlite_module_importer import SQLiteModuleImporter + +importer = SQLiteModuleImporter("modules.db") +runtimes = importer.list_runtimes() +for rt in runtimes: + print(f"运行时: {rt['runtime_name']} (创建于: {rt['created_at']})") +``` + ## ⚠️ 注意事项 ### 安全性 - 模块字节码直接执行,确保数据库来源可信 -- 生产环境建议添加代码签名验证 +- AES 加密密钥必须安全保管,丢失后将无法解密模块 +- PyArmor 混淆提供源代码级别的保护,但商业版才能去除试用版水印 +- 生产环境建议 PyArmor 混淆 + AES 加密同时使用 ### 兼容性 -- 字节码不跨Python版本兼容 -- 不支持C扩展模块 -- 不支持需要文件系统资源的模块(如__file__依赖) +- 字节码不跨 Python 版本兼容(3.12 编译的模块无法在 3.11 加载) +- 不支持 C 扩展模块 +- PyArmor 运行时文件与操作系统相关(Windows 用 `.pyd`,Linux 用 `.so`) +- 运行时文件需在目标系统上重新打包 ### 性能 -- **启动时**:有一次性数据库查询和反序列化开销 -- **运行时**:与传统导入性能相同(使用sys.modules缓存) +- **启动时**:有一次性数据库查询和反序列化/运行时部署开销 +- **运行时**:与传统导入性能相同(使用 sys.modules 缓存) - **最佳适用**:长期运行的服务、桌面应用 ### 更新模块 @@ -249,11 +378,15 @@ cp modules.backup.mbank modules.mbank ## 📚 应用场景 -1. 商业软件分发 - 保护源代码知识产权 -2. 插件系统 - 动态加载数据库中的插件模块 -3. 教育平台 - 安全分发练习代码 -4. 微服务 - 打包多个服务模块到单个文件 -5. 嵌入式系统 - 减少文件系统依赖 +1. **商业软件分发** - PyArmor 混淆保护源代码知识产权 +2. **安全敏感环境** - AES 加密确保即使数据库泄露也无法还原代码 +3. **插件系统** - 动态加载数据库中的加密/混淆插件模块 +4. **教育平台** - 安全分发练习代码,防止学生抄袭 +5. **微服务** - 打包多个服务模块到单个加密文件 +6. **嵌入式系统** - 减少文件系统依赖,提高安全性 --- + **注意**: 本工具主要用于模块分发和部署场景,不适合开发阶段的频繁修改。 + +**许可证**: MIT License diff --git a/examples/pyarmor_aes_dual_protection.py b/examples/pyarmor_aes_dual_protection.py new file mode 100644 index 0000000..7c6cd67 --- /dev/null +++ b/examples/pyarmor_aes_dual_protection.py @@ -0,0 +1,202 @@ +""" +PyArmor + AES 双层保护完整示例 + +本示例演示如何同时使用 PyArmor 混淆和 AES 字节码加密 +来提供双重保护。 +""" + +import sys +import os +import tempfile +import shutil + +# 添加项目源码路径 +sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "src")) + +# ========== 1. 创建一个需要保护的模块 ========== + +SECRET_MODULE_CODE = """ +# 这是需要保护的敏感代码(支付逻辑、授权验证等) +import hashlib +import hmac + +SECRET_KEY = "this-is-a-top-secret-key" + +def verify_license(license_key: str) -> bool: + \"\"\"验证许可证密钥(敏感业务逻辑)\"\"\" + expected = hmac.new( + SECRET_KEY.encode(), + license_key.encode(), + hashlib.sha256 + ).hexdigest() + return expected.startswith("a1b2") + +def calculate_commission(amount: float, level: int) -> float: + \"\"\"计算佣金(商业机密算法)\"\"\" + rates = {1: 0.1, 2: 0.15, 3: 0.25, 4: 0.35} + rate = rates.get(level, 0.05) + # 敏感计算公式 + commission = amount * rate * (1.0 - 0.05) + return round(commission, 2) + +class PaymentProcessor: + \"\"\"支付处理器(核心商业逻辑)\"\"\" + def __init__(self, merchant_id: str): + self.merchant_id = merchant_id + + def process(self, order_id: str, amount: float) -> dict: + # 模拟支付处理 + return { + "status": "success", + "order_id": order_id, + "amount": amount, + "merchant": self.merchant_id, + "transaction_id": hashlib.sha256( + f"{order_id}{self.merchant_id}".encode() + ).hexdigest()[:16] + } + +VERSION = "2.1.0" +BUILD = "2026-05-04" +""" + + +def main(): + print("=" * 70) + print("PyArmor + AES 双层保护完整示例") + print("=" * 70) + + # 创建临时工作目录 + # work_dir = tempfile.mkdtemp(prefix="dual_protection_") + # db_path = os.path.join(work_dir, "protected_modules.db") + db_path = os.path.join("dual_protection_", "protected_modules.db") + key_file = os.path.join("dual_protection_", "encryption_key.txt") + + try: + # ========== 步骤 1: 引入模块 ========== + from module_bank.encryption import Encryption + from module_bank.python_to_sqlite import PythonToSQLite + + # ========== 步骤 2: 生成 AES 加密密钥 ========== + print("\n[步骤 1/5] 生成 AES 加密密钥...") + aes_key = Encryption.generate_key() + with open(key_file, "w") as f: + f.write(aes_key) + print(f" AES 密钥已生成: {aes_key[:20]}...") + + # ========== 步骤 3: 使用双层保护打包模块 ========== + print("\n[步骤 2/5] 使用 PyArmor + AES 双层保护打包模块...") + packer = PythonToSQLite( + db_path, + key=aes_key, # AES 字节码加密 + pyarmor_obfuscate=True, # PyArmor 源代码混淆 + pyarmor_obf_code=1, # 启用代码混淆 + pyarmor_obf_mod=1, # 启用模块混淆 + ) + + packer.importer.add_module( + "payment_system", + SECRET_MODULE_CODE, + is_package=False, + metadata={ + "version": "2.1.0", + "protection": "pyarmor_obfuscation + aes_encryption", + }, + ) + print(" ✓ 模块已使用双层保护存储到数据库") + + # ========== 步骤 4: 验证数据库中的保护状态 ========== + print("\n[步骤 3/5] 验证数据库中的保护状态...") + cursor = packer.importer.connection.execute( + """SELECT module_name, encrypted, pyarmor_protected, source_code, + LENGTH(bytecode) as bytecode_size, + LENGTH(source_code) as source_size + FROM python_modules""" + ) + row = cursor.fetchone() + print(f" 模块名: {row['module_name']}") + print(f" AES 加密: {'✓ 是' if row['encrypted'] else '✗ 否'}") + print(f" PyArmor 混淆: {'✓ 是' if row['pyarmor_protected'] else '✗ 否'}") + print(f" 字节码大小: {row['bytecode_size']} 字节") + print(f" 源代码大小: {row['source_size']} 字节") + + # 验证 PyArmor 运行时也已存储 + runtimes = packer.importer.list_runtimes() + for rt in runtimes: + print(f" PyArmor 运行时: {rt['runtime_name']}") + + # 显示数据库中存储的混淆代码片段 + print("\n[验证] 数据库中的混淆代码(前200字符):") + obfuscated = row["source_code"] + print(f" {obfuscated[:200]}...") + + # ========== 步骤 5: 从数据库导入并执行 ========== + print("\n[步骤 4/5] 从数据库导入模块(需要提供 AES 密钥)...") + # 清除之前的导入 + if "payment_system" in sys.modules: + del sys.modules["payment_system"] + + # 使用密钥安装导入器 + finder = packer.install_importer(key=aes_key) + + # 导入模块 + import importlib + + mod = importlib.import_module("payment_system") + + print(f" ✓ 模块导入成功: {mod}") + print(f" 模块文件: {mod.__file__}") + + # ========== 步骤 6: 验证模块功能正常 ========== + print("\n[步骤 5/5] 验证模块功能...") + + # 调用验证许可证函数 + result = mod.verify_license("TEST-1234-5678") + print(f" verify_license('TEST-1234-5678') → {result}") + + # 调用佣金计算 + commission = mod.calculate_commission(10000.0, 3) + print(f" calculate_commission(10000, 3) → ¥{commission}") + + # 使用支付处理器 + processor = mod.PaymentProcessor("MERCHANT_001") + payment_result = processor.process("ORDER_20260504", 299.00) + print(f" PaymentProcessor.process() → {payment_result['status']}") + print(f" 交易ID: {payment_result['transaction_id']}") + + # 访问模块常量 + print(f"\n 模块版本: {mod.VERSION}") + print(f" 构建日期: {mod.BUILD}") + + # ========== 安全验证 ========== + print("\n" + "=" * 70) + print("安全验证") + print("=" * 70) + print(""" + 1. PyArmor 混淆: 源代码已转换为不可读的混淆代码 + 2. AES 加密: 字节码已使用 AES-128-CBC 加密 + 3. 运行时保护: PyArmor 运行时二进制文件无法直接加载 + 4. 双重解密: 需要先 AES 解密 → 再通过 PyArmor 运行时执行 + + 即使有人获取了数据库文件: + - 没有 AES 密钥 → 无法解密字节码 + - 没有 PyArmor 运行时 → 无法执行混淆代码 + - 两者同时具备 → 才能解密和执行 + """) + + except Exception as e: + print(f"\n❌ 错误: {e}") + import traceback + + traceback.print_exc() + finally: + # 清理 + print("\n[清理] 清除临时文件...") + # shutil.rmtree(work_dir, ignore_errors=True) + if "payment_system" in sys.modules: + del sys.modules["payment_system"] + print(" 完成!") + + +if __name__ == "__main__": + main() diff --git a/examples/verify.py b/examples/verify.py new file mode 100644 index 0000000..e084771 --- /dev/null +++ b/examples/verify.py @@ -0,0 +1,57 @@ +from module_bank import PythonToSQLite + +with open("./dual_protection_/encryption_key.txt") as f: + key = f.read() + +packer = PythonToSQLite( + "./dual_protection_/protected_modules.db", + key=key, + pyarmor_obfuscate=True, + pyarmor_obf_code=1, + pyarmor_obf_mod=1, +) + +packer.install_importer() + +import payment_system # type: ignore + +mod = payment_system +print(f" ✓ 模块导入成功: {mod}") +print(f" 模块文件: {mod.__file__}") + +# ========== 步骤 6: 验证模块功能正常 ========== +print("\n[步骤 5/5] 验证模块功能...") + +# 调用验证许可证函数 +result = mod.verify_license("TEST-1234-5678") +print(f" verify_license('TEST-1234-5678') → {result}") + +# 调用佣金计算 +commission = mod.calculate_commission(10000.0, 3) +print(f" calculate_commission(10000, 3) → ¥{commission}") + +# 使用支付处理器 +processor = mod.PaymentProcessor("MERCHANT_001") +payment_result = processor.process("ORDER_20260504", 299.00) +print(f" PaymentProcessor.process() → {payment_result['status']}") +print(f" 交易ID: {payment_result['transaction_id']}") + +# 访问模块常量 +print(f"\n 模块版本: {mod.VERSION}") +print(f" 构建日期: {mod.BUILD}") + +# ========== 安全验证 ========== +print("\n" + "=" * 70) +print("安全验证") +print("=" * 70) +print(""" + 1. PyArmor 混淆: 源代码已转换为不可读的混淆代码 + 2. AES 加密: 字节码已使用 AES-128-CBC 加密 + 3. 运行时保护: PyArmor 运行时二进制文件无法直接加载 + 4. 双重解密: 需要先 AES 解密 → 再通过 PyArmor 运行时执行 + + 即使有人获取了数据库文件: + - 没有 AES 密钥 → 无法解密字节码 + - 没有 PyArmor 运行时 → 无法执行混淆代码 + - 两者同时具备 → 才能解密和执行 + """) diff --git a/pyproject.toml b/pyproject.toml index b13cffe..6e1368f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,12 +1,13 @@ [project] dependencies = [ "cryptography>=45.0.7", + "pyarmor>=9.2.4", ] description = "Add your description here" name = "module_bank" readme = "README.md" requires-python = ">=3.7" -version = "0.2.3" +version = "0.3.0" [[tool.uv.index]] default = true diff --git a/scripts/test_integration.py b/scripts/test_integration.py new file mode 100644 index 0000000..62cbceb --- /dev/null +++ b/scripts/test_integration.py @@ -0,0 +1,295 @@ +""" +集成测试:测试 PyArmor 加密打包 -> 存储 -> 加载 -> 执行 全流程 +""" + +import sys +import os +import tempfile +import shutil + +# 添加项目模块路径 +sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "src")) + +TEST_DB = os.path.join(os.path.dirname(__file__), "test_pyarmor_integration.db") + + +def create_test_module(): + """创建测试用的 Python 模块""" + return """ +def greet(name): + return f"Hello, {name}! This is a PyArmor protected module." + +class Calculator: + def add(self, a, b): + return a + b + + def multiply(self, a, b): + return a * b + +VERSION = "1.0.0" +""" + + +def test_pyarmor_obfuscate(): + """测试 PyArmor 混淆功能""" + print("=" * 60) + print("测试 1: PyArmor 混淆功能") + print("=" * 60) + + from module_bank.pyarmor_encryption import PyArmorEncryption + + enc = PyArmorEncryption(obf_code=1, obf_mod=1) + + # 检查 PyArmor 是否可用 + if not enc.check_pyarmor_available(): + print("ERROR: PyArmor 未安装或不可用") + return False + + source = create_test_module() + print(f"原始代码长度: {len(source)} 字节") + + try: + obfuscated_code, runtime_data = enc.obfuscate_source( + source, "test_protected_module" + ) + print(f"混淆后代码长度: {len(obfuscated_code)} 字节") + print(f"运行时文件: {'有' if runtime_data else '无'}") + print(f"运行时数据大小: {len(runtime_data) if runtime_data else 0} 字节") + + # 验证是否被保护 + assert enc.is_pyarmor_protected(obfuscated_code), "代码应被标记为 PyArmor 保护" + print(f"PyArmor 保护标记: 正确") + + # 提取运行时模块名 + runtime_name = enc.extract_runtime_info(obfuscated_code) + print(f"运行时模块名: {runtime_name}") + + print("测试 1 通过!\n") + return True + except Exception as e: + print(f"ERROR: {e}") + import traceback + + traceback.print_exc() + return False + + +def test_pack_with_pyarmor(): + """测试使用 PyArmor 打包到 SQLite""" + print("=" * 60) + print("测试 2: 使用 PyArmor 打包到 SQLite") + print("=" * 60) + + # 清理旧的测试数据库 + if os.path.exists(TEST_DB): + os.remove(TEST_DB) + + try: + from module_bank.python_to_sqlite import PythonToSQLite + + # 使用 PyArmor 创建打包器 + packer = PythonToSQLite( + TEST_DB, + pyarmor_obfuscate=True, + pyarmor_obf_code=1, + pyarmor_obf_mod=1, + ) + + source = create_test_module() + packer.importer.add_module("test_protected_module", source, is_package=False) + print("模块已打包到数据库") + + # 验证模块已存储 + modules = packer.list_modules() + module_names = [m["module_name"] for m in modules] + assert "test_protected_module" in module_names, "模块应在数据库中存在" + print(f"数据库中的模块: {module_names}") + + # 验证运行时已存储 + runtimes = packer.importer.list_runtimes() + print(f"数据库中的运行时: {[r['runtime_name'] for r in runtimes]}") + + # 验证 pyarmor_protected 标记 + cursor = packer.importer.connection.execute( + "SELECT pyarmor_protected FROM python_modules WHERE module_name = ?", + ("test_protected_module",), + ) + row = cursor.fetchone() + assert row["pyarmor_protected"] == 1, "模块应标记为 pyarmor_protected" + print("PyArmor 保护标记: 已正确设置") + + print("测试 2 通过!\n") + return True + except Exception as e: + print(f"ERROR: {e}") + import traceback + + traceback.print_exc() + return False + + +def test_import_pyarmor_module(): + """测试从 SQLite 导入并执行 PyArmor 保护的模块""" + print("=" * 60) + print("测试 3: 从 SQLite 导入并执行 PyArmor 保护模块") + print("=" * 60) + + try: + from module_bank.python_to_sqlite import PythonToSQLite + from module_bank.sqlite_meta_path_finder import SQLiteMetaPathFinder + + packer = PythonToSQLite(TEST_DB) + + # 安装导入器 + finder = packer.install_importer() + + # 尝试导入模块 + import importlib + + mod = importlib.import_module("test_protected_module") + print(f"模块导入成功: {mod}") + print(f"模块名: {mod.__name__}") + print(f"模块文件: {mod.__file__}") + + # 调用模块函数 + result = mod.greet("World") + print(f"调用 greet('World'): {result}") + assert result == "Hello, World! This is a PyArmor protected module." + + # 使用模块类 + calc = mod.Calculator() + assert calc.add(3, 4) == 7 + assert calc.multiply(3, 4) == 12 + print(f"Calculator.add(3, 4) = {calc.add(3, 4)}") + print(f"Calculator.multiply(3, 4) = {calc.multiply(3, 4)}") + + # 访问模块变量 + print(f"VERSION = {mod.VERSION}") + assert mod.VERSION == "1.0.0" + + print("测试 3 通过!\n") + + # 清理 + sys.meta_path.remove(finder) + if "test_protected_module" in sys.modules: + del sys.modules["test_protected_module"] + + return True + except Exception as e: + print(f"ERROR: {e}") + import traceback + + traceback.print_exc() + return False + + +def test_cli_with_pyarmor(): + """测试 CLI 的 PyArmor 参数""" + print("=" * 60) + print("测试 4: CLI --pyarmor 参数") + print("=" * 60) + + try: + import tempfile + + # 创建临时源文件 + tmpdir = tempfile.mkdtemp() + src_file = os.path.join(tmpdir, "hello_module.py") + with open(src_file, "w", encoding="utf-8") as f: + f.write("def hello():\n return 'Hello from PyArmor CLI!'\n") + + db_path = os.path.join(tmpdir, "test_cli.db") + + # 测试解析 --pyarmor 参数 + from module_bank.cli import main as cli_main + + # 保存原始argv + old_argv = sys.argv + try: + sys.argv = [ + "mbank", + "pack", + src_file, + "--db", + db_path, + "--name", + "hello_cli_module", + "--pyarmor", + ] + cli_main() + print("CLI pack with --pyarmor 执行成功") + + # 验证模块已用 PyArmor 保护 + from module_bank.sqlite_module_importer import SQLiteModuleImporter + + importer = SQLiteModuleImporter(db_path) + cursor = importer.connection.execute( + "SELECT pyarmor_protected FROM python_modules WHERE module_name = ?", + ("hello_cli_module",), + ) + row = cursor.fetchone() + assert row and row["pyarmor_protected"] == 1, "CLI 打包的模块应启用 PyArmor" + print("CLI 打包的模块已正确启用 PyArmor 保护") + + # 验证运行时存储 + runtimes = importer.list_runtimes() + assert len(runtimes) > 0, "CLI 打包后应有运行时文件存储在数据库中" + print(f"运行时已存储: {[r['runtime_name'] for r in runtimes]}") + + finally: + sys.argv = old_argv + shutil.rmtree(tmpdir, ignore_errors=True) + + print("测试 4 通过!\n") + return True + except Exception as e: + print(f"ERROR: {e}") + import traceback + + traceback.print_exc() + return False + + +def cleanup(): + """清理测试文件""" + if os.path.exists(TEST_DB): + os.remove(TEST_DB) + print(f"已清理测试数据库: {TEST_DB}") + + +if __name__ == "__main__": + print("\n" + "=" * 60) + print("PyArmor 集成测试套件") + print("=" * 60 + "\n") + + tests = [ + ("PyArmor 混淆功能", test_pyarmor_obfuscate), + ("PyArmor 打包到 SQLite", test_pack_with_pyarmor), + ("从 SQLite 导入 PyArmor 模块", test_import_pyarmor_module), + ("CLI --pyarmor 参数", test_cli_with_pyarmor), + ] + + passed = 0 + failed = 0 + + for name, func in tests: + print(f"\n>>> 运行测试: {name}") + try: + if func(): + passed += 1 + else: + failed += 1 + except Exception as e: + print(f"测试异常: {e}") + import traceback + + traceback.print_exc() + failed += 1 + + cleanup() + + print("\n" + "=" * 60) + print(f"测试完成: {passed} 通过, {failed} 失败") + print("=" * 60) + + sys.exit(1 if failed > 0 else 0) diff --git a/scripts/test_output/pyarmor_runtime_000000/__init__.py b/scripts/test_output/pyarmor_runtime_000000/__init__.py new file mode 100644 index 0000000..e0eb39b --- /dev/null +++ b/scripts/test_output/pyarmor_runtime_000000/__init__.py @@ -0,0 +1,2 @@ +# Pyarmor 9.2.4 (trial), 000000, 2026-05-04T17:52:33.319452 +from .pyarmor_runtime import __pyarmor__ diff --git a/scripts/test_output/pyarmor_runtime_000000/pyarmor_runtime.pyd b/scripts/test_output/pyarmor_runtime_000000/pyarmor_runtime.pyd new file mode 100644 index 0000000000000000000000000000000000000000..8a21ac18e2aebcfcbb8e970397e287061bd48c62 GIT binary patch literal 639488 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�=?aG%7|D*f|q+i^9_H$SM!0wgD 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 literal 0 HcmV?d00001 diff --git a/scripts/test_output/test_pyarmor.py b/scripts/test_output/test_pyarmor.py new file mode 100644 index 0000000..2ee659c --- /dev/null +++ b/scripts/test_output/test_pyarmor.py @@ -0,0 +1,3 @@ +# Pyarmor 9.2.4 (trial), 000000, non-profits, 2026-05-04T17:52:33.361906 +from pyarmor_runtime_000000 import __pyarmor__ +__pyarmor__(__name__, __file__, b'PY000000\x00\x03\x0c\x00\xcb\r\r\n\x80\x00\x01\x00\x08\x00\x00\x00\x04\x00\x00\x00@\x00\x00\x00$\r\x00\x00\x12\t\x04\x00\xfd\xdd\x01\xac|\xe4\xb5\xc5\xb1\x8d>\x8aPK"O\x00\x00\x00\x00\x00\x00\x00\x00\xeb\xcd\xb7y\x06\x1d\x85\x87\xb3\xe6\x16q\xb5\xaf\'L\x87\x1fk\x02\\!g6\xe7Y\x08\xec\xcc\xd8F\xb5g\xd9\xfa\xe8|Y\x86s\x1b\x15\xbfzxd\x8b\xee\x9f\xb99\x1dN\xdf\xc4!+\xac+=Cp\xf3\\\xa7\xbcu\xe7\xa4Q\xb5\xf9\xbbw\x90\x0c\xc2f\x98T\xcfR\x13x\x0e\xfa\xc6\xe3\xc8&\x0e\xf0\xcf\x99\x03\xd9\xc2\x0b\x1d\xc1\xc3\xe5\xa5\xa8\xa5\xe7\x8f\xb9V\x90\xc4\xcc\x0c\xef\xe2T\x0eyAf0\x9da\x1f8\x9a\x92Y\x8f\xea\xf7\x80\xe5\xd2b{\xe6uJ7\xa3\x17A\xd4\x84"\xe2A\x03\\\xbc %\xa4 \xe7,\xccxEf{\x10\x85\x88\xa0\xb2\xbaK\x10\xfbZO\x8f}!:n\xc8\x80\x9b\x8d8\xa9;\x9b\x93\x01\\-\xce\xc3\x10\x0eX\x046^1\xecp\x1a}\xc1\'\xc1*\xf0:}!\x13p\xf4<\xfb\x8cz\x88c\x14\xb6C\xd4\x8e4\r\xf0=\xd8\xf4\xb4\x87Ih)\x90\xc7\x98\x8ck\xdcS\x08\xa2\x18O?t\xc7;\x0fB\xab\xe9#\xa1B}Q2\xad) w\xca\x91\xa8\xdd\x15\xfa\xd6\xef\xa1\x90\xb7\x1c\x7f\x9d\x8b\x834\xd1:\xb1q\x19\x0b\xf9\n+\xfe\xc2\x9d\x8d\xd2\xe7\xae(\x9bk\xe5<^\xa6m\x8a\xac\xa4\xe6\x95\xc8x!\xfd\x9az\xb1\xe5aT\x15y\xf6\xa7\xc3\xd6K\xe8\x0cK\xbb\x85}o1\xa1\xaa\xc8z\xb85\xc2\x11\x92\xe6\xfe\xe8\x92\x08\x94\x82\xab\xe4A\xc8\x9cg\xe9\xb6&\x8aR\x7f\x08w\x17\xd8\xca\xd6I\xd9\xf7\xdcP\xe7\x8a\xd5\xdb\xe4\xae <\xf7\x1a`\xa0/\x9c\xd7QH\x0b?B\x8a\xf6\x8fp\xfd2\n\xcc\xdd\x9fG\x008k\xe7H\xe3N\xef\x1f\xee7\xda-s\xc4\xfa\xdd\xdb\x9eCTB\x7fc\xc6\x0cA1\xaf\xe7dl`\xe2\xc1\x83\xb217\xf4\xbc\xc8\x98\xb7}7\x87\xf5\xed\xff]\xf8f\x7f\xb1\xda\xd4\xdfM\xc7\xd4\xd5Tg<\xec2\xadR\xccm\xaf\xae\xdf?\xe3#\xc8\x0c\xf2\n\x935\x11QZ\xb5\x9bM#z\x9a\nds\x0fg\xd7\x03\x9f=\xbe{\xb5\xd6\x19_\xbe\'\x17\xd7\xd7\xb5\xd8s,\x0c\xafh\x0f4a\x98\xd9\xf41\xff\xf6\x06\xc1\xc1z\xfcmlm\nV\xc2\xd7\xc1v\xa0\xbaR\xfb\xd7T4\xb0\x0e\x99]\xe2\x90\x01\xb3\xdax\x16\xd7\xcf\x04^#\x88\x9c\xb9\xf2\x18\xe1\xb0\xcc\x1as\'\xd4\xcf\xd5{\x04.\xcf\x99\xd5\x92)\x07f\xa1\x95H\x93\x95C#\x92 \xe1A\xb2\xe1\x8c\xa0\xb0\x95\x91\xafNN6\xce\xa2\xb7l:\xcc)\xc9\xab\xcd\x19\xf7#\x1e\x86\x8f\xae\xd5R\xf2\xc76\xbeM9\xb4D\x18t\x0f(k\x15)\xd0\x8d\xc2\x1fPGr2t\xebR\xcfj\xc8\x13\xa5hFE\x073\xb4\xab\xb3\xf9\xb8\x15\xd7>\x8c\x0e\xe1G\xacD}\xbf\xe5#H}\xf1\xba\x0e\x8c\xc1\x9a1@\xf8\xb4\xc5Fy\xc9G\x0b\x8eY\xccBa\x04\xdbx6m\xca\xf8x\xdf;K\x11GF\x8c\xd1\xc5V1\xca\xdf\xd3\xe9\x1e\xd9]\xa0\xc8!Q;\xf0\xbd\x82\x97\x1b\xb7\xc6\xa6\x1b\x86W\x82\x9f\xf7\x12R\xc5\x81A\x8b\xf6\x06M\xbd\x88\xa6\xc5\xad\x94\t7\x9c\xaaZ\xc8\n\x9b\xa8&\xe6\xf9d\xb8\x86\x85\xc0E\xc4s\x8e\xa7\xd1\xd1\xe2\xc6.\x98\x8e\xd7Y\xbct!#e 3\xb9(\x1e!\x98l\xf4\xfd\x05\xf8\\\xa9\xc2\xfd\x0f\xf4\x98\x11\xed\x14\x0f\xe9\x8a\xb3\xc55r\\I\xd5*\xdf4\x18\x00\x07\xee\x8ci\x9e\x92A\xfb\x85\x95+\xa114j\x1d"Zb\xf4YA\xa4A~\xb8R\xe1\xb0\xccyv\xba\x8c\xb1"{\xd3\xd4[\x96N\xf0\xf2TNdw\xecW\xe1.\xb4\xd5\xabY\x95t\xe9\x90A\x18$(\xbd\'\xdc)\x1dtTPT\xcc\xb8\xb3\xce\xac\x92\x92\xf9iI>U\xd9N\xfa%\n\xcc\xf5\xf5\xf2\x05\x11p\xba\x8c\xe7\xf47\x9e,yZ_\x8d\x1du\x15\xfb\x9c\xc3\xd2\xde\x82i>\x1f\xa1\xd9\xff\x89\xfb\x81\x80\x8c\x89V|\xbd\x90\xa1pV{\xf1\xd5\xcf2r\xdf&\x13\xc5\x1eMD\xfdt\'arw\x8e\xe1O\xc9\x84\x84 \x95O"t\x94\xce\x81\x1a*\xf9ju\x82\xde\x8c\x02\x0bs\xc3\xd0*~Zx\x9f1\x95\x99\xda\xea\xfd%h\x12-\xa0t\xff-?\xeb&9g\xad\x8d5\x7f\x83\xb5\xc4\x018\xd2A\x8f\x08o;\xc0\x91\xebf\xe0@\xce\xc1\xa7\x0f\xce\x96\n<\xd8\x17o\x9d\x058\xfe`\x10\xb9%U6\xdf\x97r\x05g\x16\xa4UU}%\x12\'7\xac\xbbWV\x80\xa6z\x11R\x19\xc8\xdcv\xe6\x1b?\n|\xe7\x15\t]ak\xa8\xc6\xc4\x93)\xa8<\x12M\xfe\xfe\x07m\xc8Y\xe4\xe1\x89/\xecv~N\x06\xfb^\x8dg(\xcf\xe6\xeay\x19\xcb\'\xe9\x0e5\x85F>\'\xfbz\x92>d\\:1h\xb2}a\x1bkJS\xe2\xa6p\xfb\xbb\xde\x9ao\xf7:\xb8\xf5Q\xf5,\xe5n\xd6;,\xd00\xf0#\xe4\x8a\xba:Y:\xc3\x10\x16\xa8\xb6\xbas\xcc\xc9\x15\xf0\xb3A\xec\x1fH?\xe24\xf1\xd0,4\xb4o\xa4\xb0\'M`\xa3\x00\xd8\x0c\xd4\xfa\x15\xea\x8a\x87\xb1\x87V\x015\xa0|s\x7fyies\x0b\x03\x83\xf0\x084\x10\xae\x8c\xf4\x19O\x17p\xb6\x12s\x8a\xc1^\xd3q$\xce\x9a\xab<\x14\xe2\xbd\xb4%\x99=3\xf4Q\xa65\xb1\x94f\xc4q\xdd\xe6\xfe\xb7\x13r{\xb6{5\x14i\xa1E\xa5$B\xc87\xb4\xabf\x90P\xc8$\x9fC\xdd\x0b\x8c+\xbb\xd5\x8f\xd2:\x18\xa38\x103.ZN\xef\x1f+?\xadp\xcdM2\xbfe\xa0\xdb\x9f\xf2\xf64B+\xa6&\x89\x04\xce\xa6#?\x8d\xc9o\x84Y\xbe\xd2\xc1w\xe0\xeb(!\x8e\xb8\xa7\x86%\xe7\xac\x862\xa7\xba\xc3w\x8f\xc9\x05\xa2s\x82\xb7\xe9\xf1ED}\xd2OZ-aW\xc2\x9aK\x1d\xd4v\x17\x89\x19\xa5}\x025*\t~\xf7\x87qJQ\xe7H_4\x91\x17\x1c\xcf\x06\xbb\\.\xe6\xa8\x95/ \x02\x9e6\xd4\x93e\x833\xf6\x8f\xbdj\xc2\xa6,\xe0\xd3\xd0\xa6\xf6\x04{5}R\xb5\xbd\x8b\xe8\x0eN\xbf\x8d:\xac_\xc4>\x05u\x99\xe5\x7f\xc0\x89\xeaES`\xde\xb2\xf6q\xc0a\xb2\x0f{#|.\x19X\x95\xde6\xbc\x16\x9c{8\x8a\xfe8X\xf3G\xb5\x8f\xf2Y\xe4\xaf"[o\xfb\xe5<6\xa2\xa22\x06\'\xeb\xc8\xb5\xcb\xf1]\xa8m\xa4\x9b0\xb6\xda+\xaem\xabwg\x7f\x8d\xf0dr\x99\xd42\xb9GSe\x96\xb0\xb8k\xb0\x19\x17Y\n!A8\xb8\x03\xbdG@yJ\xc5\xe8\xdf\xe8ZU\xf3\xf6\xfe\xe6\x11\x8eU\xe5r\x7fEuI\xdeWy\xaeW\x89\x81;\xe29\xce^y\xab%\xf2\xfa\xc9\x06\xb4\xed\xda}\x8fM\x15\xeb\x17\xe9\xfbT\xda\xa4\xbc\xa0\xfa\x7f_\xc38\x85\xce}\xb5\xaa\x01\xc1*\x8c\xdbC\xf0Cp-\xec\xc6\xab&v_\xc1(w\x10\xf0\xef\xc6WD\x18\x87\xb8\xf6I|\x06\x1e\xf6\x1b\x9e\x1c!\xee\xec\xc7;\xdd\xf3\xb6~e\xfb}\xb2\xf8\x15\\L<\n\xd4\xd2\xdcQ\xcc\xa0\xd6\xa2\xc2n\x8en\xdb\xcd\xb5\xdb\xb3W\xaat\x197bP&\xd6\xdf>~\xf9\x8d\xd3\x84h%\xcd\x91\x8a4\x97\xd2o\xbc\xf9G8\xce\x0ep\xa1\xdfk94\'\xee\xf3\xa4t\x9d\xef\xe4\xde\xde\xd4\xa1\xe3\x95q\xfd\xc8\xd3\xa1\xdc\x82\xdc\xf2\xf1\xb9\xe5I\x97\x1d\x01C\xaf?&\xa4\xf1\xe3\x8fH\xb0\xe55U\x0e\x8a]\xa4\xf6}+\x07\xf2t\xed"\xb9\xfa|i\xcb\xcf\x0e^z\xe4\xb7\t\xd9\x05\x90\x19\xc5\xa3\xe9^\x9b\xcc\xccC\xeb&Z\x16r\x94`AQ\x98I\x08\x03\xf7?\xabA\x8f\xb26;\xd9\x8aD\x1a\xe5\x1d\x92\xd2\xb4b.\x83\xa9,\x0ca\xa6\xbdw\x13\xd1\x15\x00P\xb0G\xc4\xff\x0e\xf9g\xebf\xa20H\xec\x82Q\xcb\x9d\xd6\xb2\x02\xa9M\xd2?\x08\xa3\xb98\xcax\x8d\x1fN^\x95d\xc3o\x9f\x19\xc1y\xa5\x8a4)he#b\x89~\xe9\xda\x13\x9e\xf3\xf7%\xf7^\xa2@w\x9b@\xc2-\x9eA_\xd6\xce\x88\xf1\xfe\xc3\xd8TT\xafh\xce=y\xa1\x068b\xb8K\x05\x04\xc3\x91\xa9a\x8c_H\xba\xa03G.\x82m-\xb3\x9fo\x19 \x8f\x82\n\xb4\x8e\xc6\xe2!m=\xb4_3:\x12\xce\x8bF\xc1\x8f\xb8^\xaaZsZy\x8f\x8a\xca\xec\xf1u\xa0\xa3=\x9b\x067\xff\xe4\xe2k-\xcb\xe0:>\x18\xc1>\x9b\xa3\xc5]\x84$\xcd\x98\x85\x16\xec\xe2\xaaj\xdd\x08*\nK\xdc\xae-V\xc38\x9b\xec\x01\xa9*/\x9f/\xf2L\x90+\xbe\x1c\xbf=\xe8\x8c\xa7#\xcc\x0fF\xe1cWF\xfa\xd7\x7f\xe8%7\x1b\xaea\x0b\x81\x96=x\x97\x98\xd5\x03\x01\x8a\xd5@\x8b\x1d&\xd3w\x83\x19\xb1\xbe\xe1\n\xa7j\xc6`C\xca\xb7{\x87\x9a\xf2\x88\xe1G\xc3\xa8b\x88\x03\xc6\x04\xca\xa6\x01\x1b\xa9\x03\x81?tRD\xb8\x11Q\xd8^0prF\xecp\x0f\x154\n\xabv\xbe\xab\xde\xde[\x01Wq\xf7\x88A\x92S\xcd\xe7O\xa3y;0\xc2I^T\xd0Z\x7f(\xa6J\xd9\x0f\xae\x9e\x19\xada\xd1\xceu\xc1X\xb0\xd9\xb5ir\xf3K\xc3 \x9c\xf8\xae\x94\xa5\x95n\xbd\xe3o\xc5T\x19\xb0\x83u9\xef\x07\x8c\xb2$\x86\xc1\xb5H\xfcO\x0f\xed\xcc\xe4>\xdao\xf3%\x80\xed,!\xe1k\'\xe9\xd4\xe9:\x00\xc2\xcb]\x99\xde\xab\x81\xc5\xe6{d\xd1\xea\x8a\xe0b\xbd(6#o`\x93\x14!\x18\x8f\x86\x1c1\\8\x18u\x8c\xfd?\x0f\xd8\x04\x14\x08t$\xb4\x0c\xd0\x00F\x90u\x93\xbcU\x80\x1f\x98cv\xdcz\xdf\xad\x95\x94j\xbb"r\x0b\xdc\xeb\xff\xe3\xcfJdx\xca5\xaa\xf9\x06[\xfb\xb5m_\x84\x13\x17{X\xfc\x8f\xdeR\xd5\xd3\xe6q:\xa9\x01\x10i\xd04r\x18\x97\xc9\xd3$\xbc\x04\xc7\xb3s4\x0c\xd2\xbdJ\x15\x03?>\xc32\xe30\xd4\xe8le3\x94\xc3]\x17!A\x083\xb7\xb4\x19%\xd1\x83\x9af\'\xd9@\xc05\x9bA\x88\x8cH_o\xbeB\x88KgsO\xce$;k\xa5\x1e,r\x99\xd4\xc4\xff\x86\xaf\x06\xd2\x87\xee\xfa>\xc4z\x8d\xcfa\xbetw\x14Lk2\xc5,\xd2\xbd\xcd\x83 mN\x16\x06\xde3\x02\tn(\xbe\xa7\x8a\xbe\xc4\xd9\xf6\x82\xd0\xa4h\xa7{B\x0ed=\xe1\xdc\xa6]s\xa4\xe5\xde\xf9\xee;!\x00~\x95\xb9r\xd6\xa0\x10\xdcD9\xf1\xd1V$\x9a\x16\xa2\x83\x98\xb4\xb6\xbc\x9a\xb8\x86\xbcW\x11z\xae\x9b\xfb\xa4\xdf\xf8$\x8d\xc4!\xe0\x02\xe03IX\xf2\x1c\x04\xab]\x10\x7f\xd7\xa27\x08\x8d\x18\x90\xf6\x17u\x1b\x0e\xd1\x89\xa9s\x8e\xe6I\xae8r\xff\x0f-\xf8\xd7\xc6\xa1\xc3\x151\xfaIK\x85\x89\xed$\xa5\xcf\x02\xc4\xfaa\x9c\x1f\xa2\xf6i\\\x89d\x9f\x0b\xa0\xdcA\x80"\xac\x14\xe5\r\xf7@\xa6\x81\x85\xc6\xaf\x9b\xbe\x7f\xd9\x8d\x18\x1a>xC71\xa9\x84\xaa\xf8\xfd\x14\xfdI\xce\x81\x91"p(\x0cw\xff\xb8[\x8f\xfe\xcb\x95:\xdc]-\x1d\xadt\xcb\x81\xe0\xe5uZ\xa9\x03\x96\xba\x97u\x06\xe9\xb8_c\x95\x9c\xb7o\xa0\x8dN$\xb3\x00\xb1\x85t\x0f\x80~C!\xf9\x01\xb0\xc9\xc5\xcc\x14\xd6Q\xadZ\x93\xc3\xa3C\xf3\x0e\xfe\xc6\xa67Q}\xfe\x1c\'\x87\x12m\x16.\x14\xaf\xa8\x83\xe1C\x996\x1b\xf8wZ\xcb\xf7\x08\x02b\xcfc\xd5v\xab6\xc7\'\xff\x9c\xc9=t\x97\xe0!\xb9\xfe\xedj\xde\xec\x85\xe8\xc7Z\t*\xfb\xed\x8d\x1d\x98u\xaa\xae\xe5\r,\xae9&p\xdby\xb4\x96g\x11\xfdS\xcb\xfdn{\x0b\xf4\xccs\x9a\xb2\xa6\xcb\xe6\x83\x96\xd2\xac\xf8\'\xcb\xae\n\x84>\xd5\xbf+H$>\x93\xbf\x19\xd9\x00\x04\xeb\xed\xf4\'}\xb0L\xd8\xa9\xb0\xc5\x19\xe4\x17\x10\xbb\xbaP-s;\x8b@V\xbe\x13\xb7R9\xef|6B\xe4\xfd8\x13\'0A\xf0_\xb0\xfe\xf0J\x82\x0cV\x19\xae$\x8d\xa5\x11\t\x04\x17\xdfi\xe6Z`\xaen\xde\x96d\xe7\x8d\x1bO\x86\x05\xae2\x02\xeb/\x83?\xf5\xec\xac\xb9<\xd2\xca\x04\xa1\xad\xc1T\x15*\xdb\x88\xbc\xb9\x9bfl7I\xc0\xb3\xf3#\xdc\x90%*\x84\xd2\xce\xd3L(\xa9"\x0b*\'\xc0\x8fH\xd0\xbe\xbc\x88\x8f\x0e_\xb2\xab\x9d\x08\xa2\xd5B\xb2\x01\xda\xcf\xed\x03\x0e\xed\xe8\xa2\x82\x8f\xa02\x8c\x83\\\xdd\x9b\x96\x95\x9e\x9a\x9c\x14Lw\x9e\n\x15\xef\xaal\xb2\x9eQ\xfa@\x87&\x1f&\xf9\xc7_\xe5,\xce3\xf7\x0e\xdd\xffD\x8f1\xb4\xdf?I\xeb\xc0k\xee:\x10\x0e\xb4d\x08J\xbf\x9d\xe4\x854\x027%\x06\xcac2\x9b\xc1\xba\xc4\xa3m\xa1gs|\xcb\xd3*\xedM\n\xed\xf3,Z\xe2 \x03\x0b\xc64\x12\x13\x88B/~\x94bj\xcd\tR\xc0,\x05h\x04\x11\xee-\x90%\xcc\xb4\xb4\xbb\xf0\x16\xbc\x90\xa8B\x15\xbfe\x9e\xb0m~t\xce\x1a\xaf\xfdh\x878\x112O\x0c\n<<\xf6f\xb6\xd5m\xef\x8a.\x99\x1f\x9f\x89\xdd\xde\x06\x9f\x97\x9a\x12Q\x06\x81\x02\xad\xdf\xb9\xf2Byd\x11\x81\xc7\x82\xb0t\'C\xa9\xe7\xe0p\xe4\xb1\xac\xff\xe9\xddL\xf0G\xe3\xc3') diff --git a/scripts/test_pyarmor.py b/scripts/test_pyarmor.py new file mode 100644 index 0000000..f2280e6 --- /dev/null +++ b/scripts/test_pyarmor.py @@ -0,0 +1,53 @@ +"""测试 PyArmor 加密功能""" + +import tempfile +import os +import sys +import shutil + +# 确保能导入项目模块 +sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "src")) + + +def test_pyarmor_encrypt(): + """测试 PyArmor encrypt_script 功能""" + import pyarmor.pyarmor as pa + + tmpdir = tempfile.mkdtemp() + try: + src = os.path.join(tmpdir, "test_mod.py") + with open(src, "w", encoding="utf-8") as f: + f.write('def hello():\n print("Hello from PyArmor!")\n') + + dest = os.path.join(tmpdir, "dist", "test_mod.py") + os.makedirs(os.path.dirname(dest), exist_ok=True) + + # Check capsule + capsule = pa.DEFAULT_CAPSULE + print(f"Capsule: {capsule}") + print(f"Capsule exists: {os.path.exists(capsule)}") + + # Try encrypt + result = pa.encrypt_script( + pubkey=capsule, + filename=src, + destname=dest, + ) + print(f"Result: {result}") + + # Check output + if os.path.exists(dest): + with open(dest, "r", encoding="utf-8") as f: + content = f.read() + print(f"Output length: {len(content)} bytes") + print(f"First 300 chars:\n{content[:300]}") + print(f"\n--- Full content ({len(content)} bytes) ---") + print(content) + else: + print(f"ERROR: Output file not created at {dest}") + finally: + shutil.rmtree(tmpdir, ignore_errors=True) + + +if __name__ == "__main__": + test_pyarmor_encrypt() diff --git a/src/module_bank/__init__.py b/src/module_bank/__init__.py index 2bbef38..b1478ef 100644 --- a/src/module_bank/__init__.py +++ b/src/module_bank/__init__.py @@ -2,10 +2,12 @@ from .python_to_sqlite import PythonToSQLite from .sqlite_module_importer import SQLiteModuleImporter from .sqlite_module_loader import SQLiteModuleLoader from .sqlite_meta_path_finder import SQLiteMetaPathFinder +from .pyarmor_encryption import PyArmorEncryption __all__ = [ "PythonToSQLite", "SQLiteModuleImporter", "SQLiteModuleLoader", "SQLiteMetaPathFinder", + "PyArmorEncryption", ] diff --git a/src/module_bank/cli.py b/src/module_bank/cli.py index 258d2fd..dc20bf0 100644 --- a/src/module_bank/cli.py +++ b/src/module_bank/cli.py @@ -14,6 +14,25 @@ def main(): pack_parser.add_argument( "--key", help="加密密钥(Fernet格式,32字节base64),若不提供则不加密" ) + pack_parser.add_argument( + "--pyarmor", + action="store_true", + help="使用 PyArmor 混淆保护源代码", + ) + pack_parser.add_argument( + "--pyarmor-obf-code", + type=int, + default=1, + choices=[0, 1], + help="PyArmor 代码混淆级别 (0=禁用, 1=启用, 默认: 1)", + ) + pack_parser.add_argument( + "--pyarmor-obf-mod", + type=int, + default=1, + choices=[0, 1], + help="PyArmor 模块混淆级别 (0=禁用, 1=启用, 默认: 1)", + ) # 列出命令 list_parser = subparsers.add_parser("list", help="列出数据库中的模块") @@ -40,7 +59,13 @@ def main(): if args.command == "pack": from .python_to_sqlite import PythonToSQLite - packer = PythonToSQLite(args.db, key=args.key) + packer = PythonToSQLite( + args.db, + key=args.key, + pyarmor_obfuscate=args.pyarmor, + pyarmor_obf_code=args.pyarmor_obf_code, + pyarmor_obf_mod=args.pyarmor_obf_mod, + ) if Path(args.source).is_dir(): packer.pack_directory(args.source) @@ -49,6 +74,17 @@ def main(): packer.pack_module(args.source, args.name) print(f"已打包模块: {args.source}") + # 如果启用了 PyArmor,显示运行时信息 + if args.pyarmor: + from .sqlite_module_importer import SQLiteModuleImporter + + importer = SQLiteModuleImporter(args.db) + runtimes = importer.list_runtimes() + if runtimes: + print(f"\nPyArmor 运行时信息:") + for rt in runtimes: + print(f" - {rt['runtime_name']} (创建于: {rt['created_at']})") + elif args.command == "list": from .python_to_sqlite import PythonToSQLite diff --git a/src/module_bank/pyarmor_encryption.py b/src/module_bank/pyarmor_encryption.py new file mode 100644 index 0000000..9feb726 --- /dev/null +++ b/src/module_bank/pyarmor_encryption.py @@ -0,0 +1,202 @@ +""" +PyArmor 加密支持模块 + +为 module_bank 提供 PyArmor 代码混淆/加密能力。 +使用 PyArmor CLI 对 Python 源代码进行混淆保护, +并将混淆后的源代码和运行时文件存储到 SQLite 数据库中。 +""" + +import os +import sys +import tempfile +import shutil +import subprocess +import re +from pathlib import Path +from typing import Optional, Tuple + + +class PyArmorEncryption: + """PyArmor 加密处理器,用于混淆/保护 Python 源代码""" + + def __init__(self, key: Optional[str] = None, obf_code: int = 1, obf_mod: int = 1): + """ + 初始化 PyArmor 加密处理器 + + Args: + key: 加密密钥(可选,PyArmor 不使用此参数,保留接口兼容性) + obf_code: 代码混淆级别 (0/1) + obf_mod: 模块混淆级别 (0/1) + """ + self.key = key + self.obf_code = obf_code + self.obf_mod = obf_mod + + def obfuscate_source( + self, source_code: str, module_name: str + ) -> Tuple[str, Optional[dict]]: + """ + 使用 PyArmor 混淆源代码 + + Args: + source_code: 原始 Python 源代码 + module_name: 模块名 + + Returns: + (混淆后的源代码, PyArmor 运行时数据字典) + 运行时数据字典包含: { + "runtime_name": "pyarmor_runtime_000000", + "pyd_data": bytes, + "init_data": str, + } + 为 None 表示没有运行时文件 + """ + if not self.check_pyarmor_available(): + raise ImportError( + "PyArmor 未安装。请使用 'uv add pyarmor' 或 'pip install pyarmor' 安装。" + ) + + temp_dir = tempfile.mkdtemp(prefix=f"pyarmor_pack_") + try: + # 创建临时源文件 + src_filename = f"{module_name.replace('.', '_')}.py" + src_file = os.path.join(temp_dir, src_filename) + with open(src_file, "w", encoding="utf-8") as f: + f.write(source_code) + + # 输出目录 + output_dir = os.path.join(temp_dir, "dist") + os.makedirs(output_dir, exist_ok=True) + + # 调用 pyarmor gen 命令进行混淆 + cmd = [ + sys.executable, + "-m", + "pyarmor.cli", + "gen", + "-O", + output_dir, + "-i", + src_file, + ] + + # 添加混淆级别参数 + if self.obf_code == 0: + cmd.extend(["--obf-code", "0"]) + if self.obf_mod == 0: + cmd.extend(["--obf-mod", "0"]) + + result = subprocess.run( + cmd, + capture_output=True, + text=True, + cwd=temp_dir, + ) + + if result.returncode != 0: + raise RuntimeError(f"PyArmor 混淆失败:\n{result.stderr}") + + # 读取混淆后的代码 + obfuscated_file = os.path.join(output_dir, src_filename) + if not os.path.exists(obfuscated_file): + raise RuntimeError(f"PyArmor 未生成输出文件: {obfuscated_file}") + + with open(obfuscated_file, "r", encoding="utf-8") as f: + obfuscated_code = f.read() + + # 查找并读取运行时文件 + runtime_data = self._find_and_read_runtime(output_dir) + + return obfuscated_code, runtime_data + + except Exception as e: + if isinstance(e, RuntimeError): + raise + raise RuntimeError(f"PyArmor 混淆失败 ({module_name}): {e}") from e + finally: + shutil.rmtree(temp_dir, ignore_errors=True) + + def _find_and_read_runtime(self, output_dir: str) -> Optional[dict]: + """ + 查找并读取 PyArmor 运行时文件 + + Args: + output_dir: PyArmor 输出目录 + + Returns: + 包含运行时文件的字典: { + "runtime_name": "pyarmor_runtime_000000", + "pyd_data": bytes, # 原生二进制文件 + "init_data": str, # __init__.py 内容 + } + 如果没有找到则返回 None + """ + output_path = Path(output_dir) + # 查找 pyarmor_runtime_* 目录 + runtime_dirs = list(output_path.glob("pyarmor_runtime_*")) + if not runtime_dirs: + return None + + runtime_dir = runtime_dirs[0] + runtime_name = runtime_dir.name + + result = {"runtime_name": runtime_name, "pyd_data": None, "init_data": None} + + # 查找 .pyd 或 .so 文件 + runtime_files = list(runtime_dir.glob("pyarmor_runtime.*")) + if runtime_files: + with open(runtime_files[0], "rb") as f: + result["pyd_data"] = f.read() + + # 读取 __init__.py + init_file = runtime_dir / "__init__.py" + if init_file.exists(): + with open(init_file, "r", encoding="utf-8") as f: + result["init_data"] = f.read() + + return result + + @staticmethod + def extract_runtime_info(obfuscated_code: str) -> Optional[str]: + """ + 从混淆后的代码中提取运行时模块名 + + Args: + obfuscated_code: 混淆后的源代码 + + Returns: + 运行时模块名,如 'pyarmor_runtime_000000' + """ + match = re.search( + r"from\s+(pyarmor_runtime_\w+)\s+import\s+__pyarmor__", + obfuscated_code, + ) + return match.group(1) if match else None + + @staticmethod + def is_pyarmor_protected(source_code: str) -> bool: + """ + 检测源代码是否已被 PyArmor 保护 + + Args: + source_code: 要检测的源代码 + + Returns: + 是否为 PyArmor 保护的代码 + """ + markers = [ + "pyarmor_runtime", + "__pyarmor__", + "from pyarmor_runtime", + ] + return any(marker in source_code for marker in markers) + + @staticmethod + def check_pyarmor_available() -> bool: + """检查 PyArmor 是否可用""" + try: + import pyarmor # noqa: F401 + + return True + except ImportError: + return False diff --git a/src/module_bank/python_to_sqlite.py b/src/module_bank/python_to_sqlite.py index 57fd275..fcebd0d 100644 --- a/src/module_bank/python_to_sqlite.py +++ b/src/module_bank/python_to_sqlite.py @@ -8,10 +8,26 @@ from .sqlite_meta_path_finder import SQLiteMetaPathFinder class PythonToSQLite: """Python到SQLite的打包工具""" - def __init__(self, db_path: str = "python_modules.db", key: Optional[str] = None): + def __init__( + self, + db_path: str = "python_modules.db", + key: Optional[str] = None, + pyarmor_obfuscate: bool = False, + pyarmor_obf_code: int = 1, + pyarmor_obf_mod: int = 1, + ): self.db_path = db_path self.key = key - self.importer = SQLiteModuleImporter(db_path, key) + self.pyarmor_obfuscate = pyarmor_obfuscate + self.pyarmor_obf_code = pyarmor_obf_code + self.pyarmor_obf_mod = pyarmor_obf_mod + self.importer = SQLiteModuleImporter( + db_path, + key, + pyarmor_obfuscate=pyarmor_obfuscate, + pyarmor_obf_code=pyarmor_obf_code, + pyarmor_obf_mod=pyarmor_obf_mod, + ) def pack_directory( self, @@ -146,12 +162,13 @@ class PythonToSQLite: (module_name, source_code, bytecode, is_package, metadata, encrypted) VALUES (?, ?, ?, ?, ?, ?) """, - ("key", key, None, None, None, None), + ("key", None, key, None, None, None), ) self.importer.connection.commit() def get_key(self): cursor = self.importer.connection.execute(""" - SELECT source_code FROM python_modules WHERE module_name = 'key' + SELECT bytecode FROM python_modules WHERE module_name = 'key' """) - return cursor.fetchone() + row = cursor.fetchone() + return row["bytecode"] if row else None diff --git a/src/module_bank/sqlite_module_importer.py b/src/module_bank/sqlite_module_importer.py index c2033dd..004bd92 100644 --- a/src/module_bank/sqlite_module_importer.py +++ b/src/module_bank/sqlite_module_importer.py @@ -1,25 +1,37 @@ import sqlite3 import marshal import base64 +import os +import json from pathlib import Path -from typing import Dict, Optional +from typing import Dict, Optional, Tuple from .encryption import Encryption class SQLiteModuleImporter: """从SQLite数据库导入Python模块的导入器""" - def __init__(self, db_path: str, key: Optional[str] = None): + def __init__( + self, + db_path: str, + key: Optional[str] = None, + pyarmor_obfuscate: bool = False, + pyarmor_obf_code: int = 1, + pyarmor_obf_mod: int = 1, + ): self.db_path = db_path self.connection = sqlite3.connect(db_path) self.connection.row_factory = sqlite3.Row self.encryption = Encryption(key) + self.pyarmor_obfuscate = pyarmor_obfuscate + self.pyarmor_obf_code = pyarmor_obf_code + self.pyarmor_obf_mod = pyarmor_obf_mod + self._pyarmor_enc = None self._create_tables() def _create_tables(self): """创建存储模块的数据库表""" - self.connection.execute( - """ + self.connection.execute(""" CREATE TABLE IF NOT EXISTS python_modules ( module_name TEXT PRIMARY KEY, source_code TEXT, @@ -28,17 +40,46 @@ class SQLiteModuleImporter: metadata TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) - """ - ) + """) try: self.connection.execute( "ALTER TABLE python_modules ADD COLUMN encrypted INTEGER DEFAULT 0" ) except sqlite3.OperationalError: - # 列可能已存在,忽略错误 pass + + # 添加 pyarmor_protected 列(用于标记 PyArmor 混淆过的模块) + try: + self.connection.execute( + "ALTER TABLE python_modules ADD COLUMN pyarmor_protected INTEGER DEFAULT 0" + ) + except sqlite3.OperationalError: + pass + + # 创建 PyArmor 运行时存储表(支持二进制文件和文本文件的存储) + self.connection.execute(""" + CREATE TABLE IF NOT EXISTS pyarmor_runtime ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + runtime_name TEXT UNIQUE NOT NULL, + pyd_data BLOB, + init_data TEXT, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP + ) + """) self.connection.commit() + def _get_pyarmor_enc(self): + """惰性获取 PyArmor 加密器""" + if self._pyarmor_enc is None: + from .pyarmor_encryption import PyArmorEncryption + + self._pyarmor_enc = PyArmorEncryption( + key=None, + obf_code=self.pyarmor_obf_code, + obf_mod=self.pyarmor_obf_mod, + ) + return self._pyarmor_enc + def add_module( self, module_name: str, @@ -47,6 +88,24 @@ class SQLiteModuleImporter: metadata: Dict | None = None, ): """添加模块到数据库""" + pyarmor_protected = 0 + + # 如果启用了 PyArmor 混淆,则先混淆源代码 + if self.pyarmor_obfuscate: + pyarmor_enc = self._get_pyarmor_enc() + if pyarmor_enc.check_pyarmor_available(): + obfuscated_code, runtime_dict = pyarmor_enc.obfuscate_source( + source_code, module_name + ) + source_code = obfuscated_code + pyarmor_protected = 1 + + # 存储运行时文件 + if runtime_dict is not None: + self._store_runtime(runtime_dict) + else: + print(f"警告: PyArmor 未安装,跳过模块 '{module_name}' 的 PyArmor 混淆") + # 编译为字节码 bytecode = compile(source_code, f"", "exec") bytecode_blob = marshal.dumps(bytecode) @@ -62,8 +121,8 @@ class SQLiteModuleImporter: self.connection.execute( """ INSERT OR REPLACE INTO python_modules - (module_name, source_code, bytecode, is_package, metadata, encrypted) - VALUES (?, ?, ?, ?, ?, ?) + (module_name, source_code, bytecode, is_package, metadata, encrypted, pyarmor_protected) + VALUES (?, ?, ?, ?, ?, ?, ?) """, ( module_name, @@ -72,10 +131,49 @@ class SQLiteModuleImporter: is_package, metadata_str, encrypted_flag, + pyarmor_protected, ), ) self.connection.commit() + def _store_runtime(self, runtime_dict: dict): + """存储 PyArmor 运行时文件到数据库""" + self.connection.execute( + """ + INSERT OR REPLACE INTO pyarmor_runtime + (runtime_name, pyd_data, init_data) + VALUES (?, ?, ?) + """, + ( + runtime_dict.get("runtime_name"), + runtime_dict.get("pyd_data"), + runtime_dict.get("init_data"), + ), + ) + self.connection.commit() + + def get_runtime(self, runtime_name: str) -> Optional[dict]: + """从数据库获取 PyArmor 运行时文件数据""" + cursor = self.connection.execute( + "SELECT runtime_name, pyd_data, init_data FROM pyarmor_runtime WHERE runtime_name = ?", + (runtime_name,), + ) + row = cursor.fetchone() + if row: + return { + "runtime_name": row["runtime_name"], + "pyd_data": row["pyd_data"], + "init_data": row["init_data"], + } + return None + + def list_runtimes(self): + """列出数据库中的所有 PyArmor 运行时""" + cursor = self.connection.execute( + "SELECT runtime_name, created_at FROM pyarmor_runtime ORDER BY id" + ) + return [dict(row) for row in cursor.fetchall()] + def add_module_from_file(self, file_path_str: str, module_name: str | None = None): """从文件添加模块""" file_path = Path(file_path_str) diff --git a/src/module_bank/sqlite_module_loader.py b/src/module_bank/sqlite_module_loader.py index ef70945..c3f90bf 100644 --- a/src/module_bank/sqlite_module_loader.py +++ b/src/module_bank/sqlite_module_loader.py @@ -3,6 +3,11 @@ import importlib import importlib.abc import marshal import types +import os +import sys +import tempfile +import shutil +from pathlib import Path from .encryption import Encryption @@ -21,6 +26,7 @@ class SQLiteModuleLoader(importlib.abc.Loader): self.db_path = db_path self.db_connection.row_factory = sqlite3.Row self.encryption = Encryption(key) + self._runtime_temp_dir = None def create_module(self, spec): """创建模块对象""" @@ -44,7 +50,7 @@ class SQLiteModuleLoader(importlib.abc.Loader): def exec_module(self, module): # type: ignore """执行模块代码""" cursor = self.db_connection.execute( - "SELECT bytecode, is_package, encrypted FROM python_modules WHERE module_name = ?", + "SELECT bytecode, is_package, encrypted, pyarmor_protected, source_code FROM python_modules WHERE module_name = ?", (self.module_name,), ) row = cursor.fetchone() @@ -52,6 +58,12 @@ class SQLiteModuleLoader(importlib.abc.Loader): if not row: raise ImportError(f"No module named '{self.module_name}' in database") + pyarmor_protected = row["pyarmor_protected"] + + # 如果是 PyArmor 保护的模块,通过源代码执行(需要先部署运行时) + if pyarmor_protected: + return self._exec_pyarmor_module(module, row) + # 从字节码加载 bytecode_blob = row["bytecode"] encrypted = row["encrypted"] @@ -80,3 +92,103 @@ class SQLiteModuleLoader(importlib.abc.Loader): module.__file__ = f"sqlite://{self.db_path}/{self.module_name}" return module + + def _exec_pyarmor_module(self, module, row): + """ + 执行 PyArmor 保护的模块 + + PyArmor 混淆后的代码需要在运行时导入 pyarmor_runtime_xxx 包。 + 该包包含 __init__.py 和原生 .pyd/.so 文件。 + 我们需要从数据库提取这些文件并重建包结构到临时目录。 + """ + source_code = row["source_code"] + if not source_code: + raise ImportError( + f"PyArmor protected module '{self.module_name}' has no source code available" + ) + + # 提取运行时模块名 + import re + + match = re.search( + r"from\s+(pyarmor_runtime_\w+)\s+import\s+__pyarmor__", + source_code, + ) + if not match: + # 没有找到运行时引用,直接执行源代码 + bytecode = compile( + source_code, f"", "exec" + ) + exec(bytecode, module.__dict__) + module.__file__ = f"sqlite://{self.db_path}/{self.module_name}" + return module + + runtime_name = match.group(1) + + # 从数据库获取运行时包数据 + runtime_dict = None + if self.db_path is not None: + try: + from .sqlite_module_importer import SQLiteModuleImporter + + importer = SQLiteModuleImporter(self.db_path) + runtime_dict = importer.get_runtime(runtime_name) + except Exception: + pass + + if runtime_dict: + # 创建临时目录来存放运行时包 + self._runtime_temp_dir = tempfile.mkdtemp(prefix="pyarmor_runtime_") + runtime_pkg_dir = os.path.join(self._runtime_temp_dir, runtime_name) + os.makedirs(runtime_pkg_dir, exist_ok=True) + + # 确定运行时二进制文件名(.pyd for Windows, .so for Linux/Mac) + pyd_data = runtime_dict.get("pyd_data") + if pyd_data: + if sys.platform == "win32": + so_filename = f"pyarmor_runtime.pyd" + elif sys.platform == "darwin": + so_filename = f"pyarmor_runtime.dylib" + else: + so_filename = f"pyarmor_runtime.so" + + so_path = os.path.join(runtime_pkg_dir, so_filename) + with open(so_path, "wb") as f: + f.write(pyd_data) + + # 写入 __init__.py + init_data = runtime_dict.get("init_data") + if init_data: + init_path = os.path.join(runtime_pkg_dir, "__init__.py") + with open(init_path, "w", encoding="utf-8") as f: + f.write(init_data) + + # 将临时目录添加到 sys.path,使运行时包可被导入 + if self._runtime_temp_dir not in sys.path: + sys.path.insert(0, self._runtime_temp_dir) + + # 设置 __file__ 属性(PyArmor 的 __pyarmor__() 需要它) + module_file = f"sqlite://{self.db_path}/{self.module_name}" + module.__file__ = module_file + + # 如果是包,设置__path__和__package__属性 + if row["is_package"]: + module.__path__ = [] + module.__package__ = self.module_name + + # 执行混淆后的代码 + bytecode = compile(source_code, f"", "exec") + exec(bytecode, module.__dict__) + + return module + + def cleanup_runtime(self): + """清理 PyArmor 运行时临时文件""" + if self._runtime_temp_dir and os.path.exists(self._runtime_temp_dir): + try: + if self._runtime_temp_dir in sys.path: + sys.path.remove(self._runtime_temp_dir) + shutil.rmtree(self._runtime_temp_dir, ignore_errors=True) + except Exception: + pass + self._runtime_temp_dir = None diff --git a/uv.lock b/uv.lock index b019880..cf5e8f5 100644 --- a/uv.lock +++ b/uv.lock @@ -891,11 +891,12 @@ wheels = [ [[package]] name = "module-bank" -version = "0.2.2" +version = "0.3.0" source = { editable = "." } dependencies = [ { name = "cryptography", version = "45.0.7", source = { registry = "https://pypi.tuna.tsinghua.edu.cn/simple" }, marker = "python_full_version < '3.8'" }, { name = "cryptography", version = "46.0.3", source = { registry = "https://pypi.tuna.tsinghua.edu.cn/simple" }, marker = "python_full_version >= '3.8'" }, + { name = "pyarmor" }, ] [package.dev-dependencies] @@ -906,7 +907,10 @@ dev = [ ] [package.metadata] -requires-dist = [{ name = "cryptography", specifier = ">=45.0.7" }] +requires-dist = [ + { name = "cryptography", specifier = ">=45.0.7" }, + { name = "pyarmor", specifier = ">=9.2.4" }, +] [package.metadata.requires-dev] dev = [{ name = "twine", specifier = ">=4.0.2" }] @@ -999,6 +1003,114 @@ wheels = [ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/56/09/054aea9b7534a15ad38a363a2bd974c20646ab1582a387a95b8df1bfea1c/pkginfo-1.10.0-py3-none-any.whl", hash = "sha256:889a6da2ed7ffc58ab5b900d888ddce90bce912f2d2de1dc1c26f4cb9fe65097", size = 30392, upload-time = "2024-03-03T08:34:18.891Z" }, ] +[[package]] +name = "pyarmor" +version = "9.2.4" +source = { registry = "https://pypi.tuna.tsinghua.edu.cn/simple" } +dependencies = [ + { name = "pyarmor-cli-core" }, +] +sdist = { url = "https://pypi.tuna.tsinghua.edu.cn/packages/08/58/6f51b2a14fe14e9a98807cee85055ffba91b3991420a884f606bbdae6b76/pyarmor-9.2.4.tar.gz", hash = "sha256:09e9b6dddb65d287c07aa428933d8760821fa05614a25c30b5595222e777d60d", size = 3012328, upload-time = "2026-03-18T02:01:38.759Z" } +wheels = [ + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/2f/d9/9d324a9acbe2daa37893895beeac201503d3f822196107185da16f21ed1b/pyarmor-9.2.4-py3-none-any.whl", hash = "sha256:2d7acea204739a5b390dcb9010b18ac747d646d1eac31d5f03d7b5670be11f8f", size = 3071639, upload-time = "2026-03-18T02:01:45.165Z" }, +] + +[[package]] +name = "pyarmor-cli-core" +version = "8.1.1" +source = { registry = "https://pypi.tuna.tsinghua.edu.cn/simple" } +wheels = [ + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/2a/26/3fd196462de9c66551cc03a5def656c1a27a64148421cc5528de3429b48f/pyarmor_cli_core-8.1.1-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:a5dc6923cc379a797d3265161cddc4db713577bdb3cfbb0f3663812cd945e4b6", size = 510402, upload-time = "2026-04-09T01:26:07.223Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/53/0d/2961d4ed2c8d582b1e078bda1e80689a5394955e06da915c26d222c56399/pyarmor_cli_core-8.1.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fe0c6782b4b0b26aa1bdc68e8f4cf772198c2ea548d4568d2334fcc30fa7f34b", size = 402418, upload-time = "2026-04-09T01:26:12.769Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/f4/a8/8c415f417299d7490151096ee78be4d97eef956e66a771b19a5161a93bb1/pyarmor_cli_core-8.1.1-cp310-cp310-manylinux1_i686.whl", hash = "sha256:943d584627fb48975b567f442a3ac1b71473582eec17606dd18240921d52b263", size = 481568, upload-time = "2026-04-09T01:26:17.196Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/54/ba/fd5acb8f325304ac918f14b765988622dbf526d5eed5c17b1f5b1f1fa64f/pyarmor_cli_core-8.1.1-cp310-cp310-manylinux1_x86_64.whl", hash = "sha256:f2a1777205bcc3737594e9fa111552ccd7877efc29ab2e2b13e4769f7eba3aff", size = 452540, upload-time = "2026-04-09T01:26:21.782Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/fb/92/cbc1184315524e6bb4226c962c3fc11326c500d1f333a734a9fbea8f724f/pyarmor_cli_core-8.1.1-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:d8f6d9d916cb83a1ac3256576158528d5bfb02404f324713ffe942d743a759d6", size = 598833, upload-time = "2026-04-09T01:26:26.116Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/03/d9/229e1fda8127e8558653b69e5245823aa16e770110897fceb712e621b41f/pyarmor_cli_core-8.1.1-cp310-cp310-manylinux2014_armv7l.whl", hash = "sha256:869ff6e51b8dd951620a22b5174d1d0795628f02c76df566d6790e7fbd68b6c9", size = 994953, upload-time = "2026-04-09T01:26:31.203Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/d4/87/9f1849c2e44c93dbd04f685f76aaaac4731800750451d52622389747de59/pyarmor_cli_core-8.1.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:c1d16c0069fec6daba35e384228e7d493ff7a83bd402bf3465527e2b8a1c1ad0", size = 643939, upload-time = "2026-04-09T01:26:36.522Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/3b/16/4f48172435e6b91a323da5b97cda8fa77620d5e934b7ae5eb90690ecf80a/pyarmor_cli_core-8.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:3dab4883b1ce7fcfa4212b94b7f5a538cc45a8a06742235caaf1b01f93b2b925", size = 439787, upload-time = "2026-04-09T01:26:41.738Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/4d/2e/96233f232008021b1977c3a356da55af287a7f36760a28d60f7061616a1b/pyarmor_cli_core-8.1.1-cp310-cp310-win32.whl", hash = "sha256:00cc0266c245d946bdaf2e0f85047a5a4813bee2f26971d45faa833e2bf67500", size = 454720, upload-time = "2026-04-09T01:26:46.266Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/52/42/fa668d204c631c03157f71865514b14d0d400b7804f2ba9c4858d1379bac/pyarmor_cli_core-8.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:07584b1251aadc9540d47747bed0193131411399501a9d42ae74c7555dfb6a9e", size = 414449, upload-time = "2026-04-09T01:26:51.043Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/22/e3/173a37ad0d0ded7302037965c0ee747260b939a95299e9ebf0898c1e14bb/pyarmor_cli_core-8.1.1-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:852fd36f9854dacafa20f26a375adf0b94160cbff68d6a3b6970f5a79e7d3629", size = 511673, upload-time = "2026-04-09T01:26:57.916Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/15/33/2c23d8dfb7b6a5dd39899f3d298826ca02cdc231746966196666bbe33384/pyarmor_cli_core-8.1.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a31b7ec9a79c2286898830365d7cc7e275af4e3cc7f99e1717e622c797165fbe", size = 403721, upload-time = "2026-04-09T01:27:02.812Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/f5/db/7aac19704813770f4acbcd6708d8afe181c21935fea1daed7621133a0fc6/pyarmor_cli_core-8.1.1-cp311-cp311-manylinux1_i686.whl", hash = "sha256:be3911a12c318b4cd93f7ffb492f3a8517c7e7c13b48dc53ea12988ef106ebb9", size = 484036, upload-time = "2026-04-09T01:27:07.129Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/cb/70/73a9b625901da86b2590f2fd874ea6c1efd8f5ff195763261ba7e6248253/pyarmor_cli_core-8.1.1-cp311-cp311-manylinux1_x86_64.whl", hash = "sha256:8fba7ea6f2884ef78df89018bc7ca67fd3aba989dc4d3e6d88fc5e069a88ef9b", size = 451883, upload-time = "2026-04-09T01:27:12.465Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/a6/dc/6afbee56cdfb8b1257bb9943782ce076c52bee546a532cb84541ec3179f5/pyarmor_cli_core-8.1.1-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:68d1e9bc7bc811a318965483dc079ce7da670799fc5ddb8ad1d3727216c437e3", size = 599055, upload-time = "2026-04-09T01:27:17.707Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/10/07/39a8cc9af7aabbe0d70ea62ec14d438bba5e88a69cc1be2f0dfa95bd8676/pyarmor_cli_core-8.1.1-cp311-cp311-manylinux2014_armv7l.whl", hash = "sha256:883c0ed2dfa19dab5a0c5edc8d8b4ad3b820491b1b4bbc4eaf5d4218a09caff5", size = 995541, upload-time = "2026-04-09T01:27:22.626Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/44/a4/efb2ebd451ee6bdda5c6ca359ab8a4bf7a0098cabc7d2d68d998ac9410b9/pyarmor_cli_core-8.1.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:fedd378a0131d6df79e74e2cde4d039c7f19c14627301a7cba5a12ed200d55ab", size = 644557, upload-time = "2026-04-09T01:27:28Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/ff/65/cc33d6423712a36aa6b133e9bb9483a2936ee44c1a40e0b99658cff45f2a/pyarmor_cli_core-8.1.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3dd40308a8bd0ccd8a4e7c162fd8093de6a6e1fefb5ded2825c339e58f15a996", size = 441387, upload-time = "2026-04-09T01:27:33.25Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/ea/49/63509bc1b5d6bdb94306906a77638b4d4a2fdf6605244288990942b6ac50/pyarmor_cli_core-8.1.1-cp311-cp311-win32.whl", hash = "sha256:e5ce2e9442ff1a046cdd4a5c54c3df23640f37981877789420bf46d80943430c", size = 455036, upload-time = "2026-04-09T01:27:38.055Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/19/df/e0fd7f46bf412596d5cc3ffe6165e37d950b58aea4976bedc21e8c2a2419/pyarmor_cli_core-8.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d3f90b32d6b83c3bf73ff0f3d23f0045fc94671d6f467c9d50c641cea39795c", size = 414904, upload-time = "2026-04-09T01:27:42.651Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/58/b4/33fd5192cedc4600e9de8c9c7519205f421840da1b0df6e9491afca0a072/pyarmor_cli_core-8.1.1-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:4a6e09545fe74dc304992a0b002cc8d426c16ac3670d6f602d51838f080a2f31", size = 515480, upload-time = "2026-04-09T01:27:47.282Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/a6/e5/3310cb2e29bab80bd923d7e0749c2163550effe1d1a6c6d5d95f5c58d183/pyarmor_cli_core-8.1.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:df035854a6603d4861a50156484027a03c01a7b9385b5365cabea4871ac72e3e", size = 407703, upload-time = "2026-04-09T01:27:51.869Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/26/66/1aa494d360a05fd90677db8c4b8385dedd2083fe96fe6607ea555f800c87/pyarmor_cli_core-8.1.1-cp312-cp312-manylinux1_i686.whl", hash = "sha256:ec304457ff31b4939c8527640d7f525e78e9c91cc8307a11f068ef1291710b40", size = 489280, upload-time = "2026-04-09T01:27:56.492Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/ef/ad/5f246234ce778dd3b7bd4faa2bded71690bbcddbf8f29506cba131ae4f85/pyarmor_cli_core-8.1.1-cp312-cp312-manylinux1_x86_64.whl", hash = "sha256:9b65a62a71a88fb7534002067b972aac2f363e871ad34563579550fec1a260cb", size = 457685, upload-time = "2026-04-09T01:28:01.313Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/05/5a/cbaa2088483837ded4bb6301993de16743c633f230bf29947cdc10f7c307/pyarmor_cli_core-8.1.1-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:d1c4e623dbb8bd93fc4273a7ca79d192618ca36cf74aceaeca9d36c83608ed77", size = 604340, upload-time = "2026-04-09T01:28:06.227Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/87/39/2686a96a3d80c5ef61fea10066677ddf3678bdd48afcec04a0d268203fa0/pyarmor_cli_core-8.1.1-cp312-cp312-manylinux2014_armv7l.whl", hash = "sha256:0c10ad18ca2cb285b4b6c2bfdba6bc0234e84272f52bf692dce25ae7c6a21d56", size = 1001029, upload-time = "2026-04-09T01:28:11.426Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/77/e9/da903ea517387ac3d560b324fd03a7f50267cc2f68e99f84934fd9ee3ef9/pyarmor_cli_core-8.1.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:812201887aa2fb90f8b865a5dd443aa841cb951bd25d14dad843ce11b3ceef57", size = 649535, upload-time = "2026-04-09T01:28:16.373Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/91/eb/fcd742456b3a475e16eb5c3468132a9950095169cf1e6a64e4fb4bac208d/pyarmor_cli_core-8.1.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:88e129603512326ce1440e3aa105506304424ee40366cc19f0a72a9aeeabecf7", size = 446443, upload-time = "2026-04-09T01:28:21.054Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/b1/87/b58aed090a6a9debf65045f37e93b779e330c22106aa4cbb9aaaf7bb12b8/pyarmor_cli_core-8.1.1-cp312-cp312-win32.whl", hash = "sha256:b645d69c88f55a08d34fdd547759079ac1722e246d8e994ce3eb07937bdf318b", size = 460155, upload-time = "2026-04-09T01:28:25.665Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/ac/b8/1dc8b15bc1607a27ed78025d5f50c97c78542930cab15a6d6d457b664bb3/pyarmor_cli_core-8.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:09df045973b5de85ecb950f3fffc23686caa5b43749d4d966ccd150719639e2b", size = 420620, upload-time = "2026-04-09T01:28:30.36Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/2b/35/4b2969ebaea72869a5ba13847d47682ec77a1ff894fc83450e23e7257845/pyarmor_cli_core-8.1.1-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:86a576252f26752cfed5a1f0d6a12352f7ca8f38aadfd7e1df44453d933bf70c", size = 517354, upload-time = "2026-04-09T01:28:35.086Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/cc/0f/c688f09d158d5d4bf3c83289b9d16d454d5ac001ae962a7501d4209dbcad/pyarmor_cli_core-8.1.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ef4cd7ecf1aeca5748d221e548a6203f58ede46e3b1f31cc1fbba5170f1dc5c5", size = 409747, upload-time = "2026-04-09T01:28:40.159Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/f5/f1/c97c393fa0f6431ac6537acd21f117025488b1254c255ae42da1809d2ae3/pyarmor_cli_core-8.1.1-cp313-cp313-manylinux1_i686.whl", hash = "sha256:e95cfbaafee2eec3a3ef918c80f6ff6d6e26535c0b9f5ea615a97cf419a45603", size = 489761, upload-time = "2026-04-09T01:28:45.023Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/9c/78/5874a8cecc9123475bcf5884037a6abd5859e4b93e89bc5eacc06dfd493f/pyarmor_cli_core-8.1.1-cp313-cp313-manylinux1_x86_64.whl", hash = "sha256:2f42447c95f0de7df586a5899b395dcbf3193b5288a290f77dde90d4459700a6", size = 458105, upload-time = "2026-04-09T01:28:49.719Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/ff/a0/73eb8557f0dd6f9910dfb1ff70ad31550d5b037dff78f80a006732efb085/pyarmor_cli_core-8.1.1-cp313-cp313-manylinux2014_aarch64.whl", hash = "sha256:635144791ddcf3a7bbd31ac10181828d40636e4b6a477ffefa0c6f4073524604", size = 604874, upload-time = "2026-04-09T01:28:54.871Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/ce/6c/3eeab3e37748ae5354eb629ed5e03ee09c85c6abac8d77926d4d27507f52/pyarmor_cli_core-8.1.1-cp313-cp313-manylinux2014_armv7l.whl", hash = "sha256:248bfb04d86f38851bdc13652d5e447e0415128c0cdfbb04498802e624a88475", size = 1001331, upload-time = "2026-04-09T01:29:00.195Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/8f/f3/9736f5049e0fff5a333a8e14058e5b6b89ef68f469bcc23f9001fd47ab42/pyarmor_cli_core-8.1.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7a71b3b4ab8d07259b82c9fdad18e099d86b0880bce352949b834db825cbd697", size = 651229, upload-time = "2026-04-09T01:29:05.072Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/13/e5/988ebde164710de231a93127a1df25a278307bb8cd31e75b207266a3ae8b/pyarmor_cli_core-8.1.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:bc51089e37602a4e4c75b990448c44e25d7b1c7048805ad789863c889e80793f", size = 447196, upload-time = "2026-04-09T01:29:09.99Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/3a/5c/4be2fe6a77477c6a82b776c147487030978fb3c6c825dfcecafe4cdaf1d1/pyarmor_cli_core-8.1.1-cp313-cp313-win32.whl", hash = "sha256:689356f95fec04a53f91a624b0d1f4bfc8547e2ddede6799fb1c728377a51e19", size = 460848, upload-time = "2026-04-09T01:29:15.702Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/1b/d1/80a1085e94a8bcc3f1d8c6d1ef703c1fc35afe9a8f2b5f0676d74fc1a80d/pyarmor_cli_core-8.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:2e7b259c4dda700360030cf212b2cca625aaf9e7498dc9bfcbee9ef85acfec9b", size = 421343, upload-time = "2026-04-09T01:29:20.354Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/b4/57/12936c3ea69e88481e71d4f61a878aa49b26181c0fed9282b590f46b9132/pyarmor_cli_core-8.1.1-cp314-cp314-macosx_10_14_x86_64.whl", hash = "sha256:4bfbfe564881bd467b2103b47b4fdfe883746e39651545280f4c815d409e45f7", size = 522708, upload-time = "2026-04-09T01:29:25.471Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/fc/4c/ba326b377d0d698fa80864a478822e56acd0b1dd74db7b2645ca66e3c732/pyarmor_cli_core-8.1.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0ff3494acdacbec1565a1d98065ab2a2b47683778ad02b89b643008a1ffe90bd", size = 414399, upload-time = "2026-04-09T01:29:30.291Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/f5/15/f6121674cca8487665bc4803da745a1f4e7f98d233bf33e659ca3dbfec29/pyarmor_cli_core-8.1.1-cp314-cp314-manylinux1_i686.whl", hash = "sha256:2d905427cd23226f86998a28f6c79c849136dfb85e569e32b208ad7d75b24853", size = 495367, upload-time = "2026-04-09T01:29:35.223Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/02/6a/67121dc6f489120322bf4742774a3ebd05eb4b6d1ebcf971b34ea91ec2b4/pyarmor_cli_core-8.1.1-cp314-cp314-manylinux1_x86_64.whl", hash = "sha256:4de138aacd465e0a0d4601b290d0555d47657f59b86d5eeec1bc660fd01e149a", size = 462060, upload-time = "2026-04-09T01:29:39.799Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/bf/87/09d5c023474495dd3dbb789ecf538af1bcbe53c49cd07a703cfa5da03bde/pyarmor_cli_core-8.1.1-cp314-cp314-manylinux2014_aarch64.whl", hash = "sha256:1777c7c2c7130a34b7c7125ddd828569e3f938fc91efc0db99fb0ee1eba88aa4", size = 609493, upload-time = "2026-04-09T01:29:44.322Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/5c/55/c6f403c7a33900d1a194839e55677814a35ab33d10c4234394f7ad12c311/pyarmor_cli_core-8.1.1-cp314-cp314-manylinux2014_armv7l.whl", hash = "sha256:5172681e95bfbf4eb250d53e1ede75b270e7ec7c29a4accfb0acf766bc7b6351", size = 1004962, upload-time = "2026-04-09T01:29:49.616Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/bb/bc/ce7146830a08306884929b53f785bb708df7c360a73a2a3687ff73533918/pyarmor_cli_core-8.1.1-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:06de0a47cb8ae86fe9270f3930d8e245fff73f87bd3c49cdc2af47c8ce1a5b06", size = 655381, upload-time = "2026-04-09T01:29:54.994Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/aa/05/0fac5b9e9d37e1ea46ceae2733ab07d348b199257d99f69d290eae363ac0/pyarmor_cli_core-8.1.1-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:7ae1c265c6560e869d355373fd86c2880a951db6bbf2bbdffec698d47c269be9", size = 450987, upload-time = "2026-04-09T01:30:00.065Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/82/84/173c89753b13037ad45fd6c220aeb12e055de261c8453025df9dc0c82b2c/pyarmor_cli_core-8.1.1-cp314-cp314-win32.whl", hash = "sha256:18a7f8aa4054395be9fe5b051727f2c32bdce74d609ef75cb869a9fd0396da90", size = 465415, upload-time = "2026-04-09T01:30:04.793Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/38/ce/32fb60e0971791c7e102ab87140d8c5da444e8b22b05614d7b63b7a90113/pyarmor_cli_core-8.1.1-cp314-cp314-win_amd64.whl", hash = "sha256:9e50864097734b039060074b4913ffca73069162ff3c32556f3b594888129661", size = 424573, upload-time = "2026-04-09T01:30:09.704Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/d2/02/7632897343d0b1ac3faa6e882f62880c4910d1331a46f1796816b99e9f8d/pyarmor_cli_core-8.1.1-cp315-cp315-macosx_10_14_x86_64.whl", hash = "sha256:eb3a63691a67aca10e2af7937baf0c88effc459c78c3c4ef1c48cf562376b830", size = 522819, upload-time = "2026-04-09T01:30:14.265Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/0b/aa/09cce8ed725419d8a3c1a4a4b588b5f369094ef0b9768bc7e2d7fe855897/pyarmor_cli_core-8.1.1-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:75328d808fb790546272ba92440c8ae9e80f3c84cce3f423fefb00a9af230af0", size = 414398, upload-time = "2026-04-09T01:30:18.603Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/14/a9/844a2fcb09dc30994e03b5469ed80d6066e794828cd48af437da33029f8d/pyarmor_cli_core-8.1.1-cp315-cp315-manylinux1_i686.whl", hash = "sha256:e0e0965e8a1d779485f747b93d6f4c7a20395553851921b0fd22ea89fb09287e", size = 495322, upload-time = "2026-04-09T01:30:23.59Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/4e/1b/b169c06628dc9ac375c5d3f270cd742e344ddfa6dab5e00216a984ccfa01/pyarmor_cli_core-8.1.1-cp315-cp315-manylinux1_x86_64.whl", hash = "sha256:3562142724c8cd48a6b161b35a7b4ebfc30820f08ca0adc28f8729077531c3f4", size = 461861, upload-time = "2026-04-09T01:30:28.655Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/bb/98/8ab28d635e03d269234243c4ac2fd82d722435640d9be89e78cb6f4ba15f/pyarmor_cli_core-8.1.1-cp315-cp315-manylinux2014_aarch64.whl", hash = "sha256:27c6e269131da709bcf1aac04ed8285eaa8a328f7682e98c4e93a81f97e2e4db", size = 609340, upload-time = "2026-04-09T01:30:33.652Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/f3/68/f6e381d81e988077c6fdddcfa659ed30953640e863928575886815e1eefa/pyarmor_cli_core-8.1.1-cp315-cp315-manylinux2014_armv7l.whl", hash = "sha256:0cc8d7c337663eb9d108649ba296973284ff8b6fc0f83ae0ce347697533a983d", size = 1004837, upload-time = "2026-04-09T01:30:38.944Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/cb/83/4958e7eb4a4dd27b024a034443636e7db418d06ee743eb09eecab2360e18/pyarmor_cli_core-8.1.1-cp315-cp315-musllinux_1_1_aarch64.whl", hash = "sha256:00cccda40da819c45550625c910f836b9c768699ea40b04c058c3221270b514b", size = 655276, upload-time = "2026-04-09T01:30:44.053Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/68/d8/c8992fc6f66fcd8b29f8497ca352165bd9e0972a1f5371eb8c01aaca7a3e/pyarmor_cli_core-8.1.1-cp315-cp315-musllinux_1_1_x86_64.whl", hash = "sha256:488be5b88a0c434fb17457972f6b7f681b38650ce078c3f19dced5b15091146d", size = 450926, upload-time = "2026-04-09T01:30:49.022Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/85/61/6cb081493c75662dd979a6cf8f6092d81605a9a59c2439a2ab77f3abfc1b/pyarmor_cli_core-8.1.1-cp315-cp315-win32.whl", hash = "sha256:a0f087fe8c388d178859dbc2a14e11e12bf8efc694f035e41d1dfc5b4a630052", size = 465352, upload-time = "2026-04-09T01:30:53.861Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/6e/87/9daf968e6e6add10d089eef86b46a26c9908bfae74820bc97aacbf37d081/pyarmor_cli_core-8.1.1-cp315-cp315-win_amd64.whl", hash = "sha256:c1b96471bb1d9fc575ba526841829c6bf03cd9db5caabf5688518a29ed389870", size = 424475, upload-time = "2026-04-09T01:30:58.457Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/c4/5c/e653770e60de273502616202ffcf769011a50c744442bd63e01506ee61d6/pyarmor_cli_core-8.1.1-cp37-cp37-macosx_10_14_x86_64.whl", hash = "sha256:6d41880b098558f3905a18ffa3c9498e95ec71d93ddb3bc2f23701947e174862", size = 509125, upload-time = "2026-04-09T01:31:03.266Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/ac/71/da506483c853b23eb45e63678da67919c113894649f6fd7fa08a602447ce/pyarmor_cli_core-8.1.1-cp37-cp37-manylinux1_i686.whl", hash = "sha256:05d9c9c54636b09fcbb37a95c97ccb1df9718f0cad88e03eb72f12bf18922092", size = 479615, upload-time = "2026-04-09T01:31:08.596Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/e0/fa/249684e417a9fcdd369672232901dfad7fe84b8a7ed0e3c12457ef6f108e/pyarmor_cli_core-8.1.1-cp37-cp37-manylinux1_x86_64.whl", hash = "sha256:245e837ab2543ce7e2eaa39a80c3ef093ff97a51ced18ddb9052512859f8db72", size = 449406, upload-time = "2026-04-09T01:31:13.597Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/59/06/c41929814430426aa4f9a24ef736b210e8b2482d7bcc84ca0fa64bd577c6/pyarmor_cli_core-8.1.1-cp37-cp37-manylinux2014_aarch64.whl", hash = "sha256:bf023d2f6c0cf69013eb80da97da87e8a67c0b2dd1e6d3375f02e0f195b3524f", size = 592931, upload-time = "2026-04-09T01:31:19.038Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/48/fe/74bc6a0d3a3f41696f4a944872bca0c73aa124ddef2b8af8168fb11337c1/pyarmor_cli_core-8.1.1-cp37-cp37-manylinux2014_armv7l.whl", hash = "sha256:2a66cfed9f7dd72043389ed9b933ae57ffb00d28a8195f4d6aa446a8eda0a787", size = 989241, upload-time = "2026-04-09T01:31:24.261Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/d3/f2/343507785aa9d742589a57006cecb5fe8f5552bd05c3076712efffeedd30/pyarmor_cli_core-8.1.1-cp37-cp37-musllinux_1_1_aarch64.whl", hash = "sha256:183555f51b42d3be95b7fa248800ddfec6bcdc7ea843cfb4982be2671df8c39f", size = 639618, upload-time = "2026-04-09T01:31:29.486Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/60/04/ae296dabb653962116cd9c7bb453b9d12fac8efa49bb67e2e98c15aec062/pyarmor_cli_core-8.1.1-cp37-cp37-musllinux_1_1_x86_64.whl", hash = "sha256:6575a73f3928782e3394bd4d74942fa60f926a3f78bcca5bb920b33e49647910", size = 435876, upload-time = "2026-04-09T01:31:34.288Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/f5/b5/f3647e1d1d7d58d12257d23bec0ee37838bc359a77b051fb724002283fc4/pyarmor_cli_core-8.1.1-cp37-cp37-win32.whl", hash = "sha256:6129c315fac01be1ceae09231816a42396d00928a96f537faf1ba3435263ee67", size = 447840, upload-time = "2026-04-09T01:31:39.095Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/5f/a0/b767e2303491a5028be332c5c38656e1e6953c224c11f51ef7ac98f0d3a9/pyarmor_cli_core-8.1.1-cp37-cp37-win_amd64.whl", hash = "sha256:84a8ad19400f52e75451c35a04e41d8034bbfdf8743a306346a800a995a5f470", size = 407502, upload-time = "2026-04-09T01:31:44.021Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/76/9c/dc11b51400a3c9ae97d092b169dbcbe5d3cdd7a48efa8253f173cec336a0/pyarmor_cli_core-8.1.1-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:db8b83e5d656ce2310a252ecb009f84ebeaf8c60be6a9b5fb6a7e08ac3dc0064", size = 510970, upload-time = "2026-04-09T01:31:48.658Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/0c/84/c2a1832659e83ced41974a64b3317d80c72126b38a61314419dc0c3f578d/pyarmor_cli_core-8.1.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:8b397fcd7febfcf692daa5641ee175377840304cbc0456929c84bf0eeefc634e", size = 483313, upload-time = "2026-04-09T01:31:53.644Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/08/0b/df3cd01216f01d6122447e7d69b8562973a27e9df15c2cf0840872e30763/pyarmor_cli_core-8.1.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:b487b9e93a5e63f3e1ff7da2af6ef0db79aa4a92234613d8e7c93ca8239f525a", size = 460867, upload-time = "2026-04-09T01:31:58.436Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/c3/33/800fbb62b8a7193ddba3445a117900782125ec678b086bc786c0ff4ff6c9/pyarmor_cli_core-8.1.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:0838f354a4c299bf6204a5be510b193c37aa4b4bd2ed2ebd23046b0b75a345db", size = 597415, upload-time = "2026-04-09T01:32:03.52Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/31/7e/927a29f880ec35eef6499470642c079417d1ef6caa4c887a05d982a1cf22/pyarmor_cli_core-8.1.1-cp38-cp38-manylinux2014_armv7l.whl", hash = "sha256:a2dd5be9b02b3b4cdc300423bdb38453e34bef7c5397d36981c35280d0ea13bd", size = 993141, upload-time = "2026-04-09T01:32:08.932Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/1a/fb/d33f4128745823235f3d6f2488f1161f43d9f855c730abd598978e97b7c0/pyarmor_cli_core-8.1.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:08bb1e1071cb4356ce85ef8e7089cf85853cd3204dfb146a00f9401bca80a3a1", size = 644146, upload-time = "2026-04-09T01:32:13.936Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/f2/ba/addbf681e1fcb006a9590b721beac1bbe663553dc151d3b146a5a51cabc0/pyarmor_cli_core-8.1.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:a15fc2e4af49ffca703391a7adf29f39c8975f09afafd2461ad808dc2aeaf215", size = 439049, upload-time = "2026-04-09T01:32:19.879Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/49/97/a92a86b584499d4d8dc3ccd94ca92048892242d2d6fce84ba27bf66344f3/pyarmor_cli_core-8.1.1-cp38-cp38-win32.whl", hash = "sha256:b685e5cdd68660dc6fbcf1502b79a93ccd7969a5d411837d3dc4fa8f266df81a", size = 452679, upload-time = "2026-04-09T01:32:24.782Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/84/fc/b933559c1fccacc063bc04cd88d7cc48c84a1fb707ec03fe0b106e34337e/pyarmor_cli_core-8.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:a83d4d571012bffe2196a1b65f56abf04ee57dd09aa8d063ced99b0cbc21c341", size = 413687, upload-time = "2026-04-09T01:32:29.485Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/50/48/07a43938c9fb667d1b487aedf4ef691914cb049c398eb355585ad7d691ad/pyarmor_cli_core-8.1.1-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:a7dee28cefefc8e2c183e8b56a12d4029b9517f4f860ec17bed3cca5f495be62", size = 510309, upload-time = "2026-04-09T01:32:34.533Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/13/ed/ce279cdd805d22c0f315eebe1c41d541e0e3bd5f58057297102912fc38de/pyarmor_cli_core-8.1.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d4eedb4151c13c8fa55a0c2050a1f06513a8099c78983a99f5176b962892bf85", size = 402366, upload-time = "2026-04-09T01:32:39.294Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/4b/9e/841f564ad60e0d9a0ba05c416f1220b95038fe643f08bc5871c932d3549d/pyarmor_cli_core-8.1.1-cp39-cp39-manylinux1_i686.whl", hash = "sha256:3122cb3b9049d8f71bc459abdd7baa3a588d49a7cb2d20aaaf9d01e8b16ea84b", size = 481480, upload-time = "2026-04-09T01:32:44.122Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/f5/bf/d019a15c35f2c06a971c4140c471249d4da523afb37aed70855d80bf9e12/pyarmor_cli_core-8.1.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:fa41bb83dd13fdac97f11703afabe241253906ed233c39d5f2248a64a17a5efc", size = 461013, upload-time = "2026-04-09T01:32:49.154Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/50/c2/8c4d7314e1fc5262fa47ff1ae61eec421261e1160329cd940f4f463a590e/pyarmor_cli_core-8.1.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:0817f5493745b0521f437ad26713bdf892a102e86f2e482b73f73fdd1432c605", size = 598571, upload-time = "2026-04-09T01:32:53.983Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/3f/19/21dd64c879c3c15a960393ffbce3b6c15c8e760e1d7d99a284f19aabfab1/pyarmor_cli_core-8.1.1-cp39-cp39-manylinux2014_armv7l.whl", hash = "sha256:ccf8db789066281475faedd5b06253b28bed3316a1bce5716e84166604b3ca10", size = 994367, upload-time = "2026-04-09T01:32:59.448Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/48/2e/1e2fcd7779f376af4c3a8ede0c9e9ae9981d6e735a8525eee566c9d80329/pyarmor_cli_core-8.1.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b98390156ab4226d77dcc4e7b6ea79ce82ffd553aaf12b402b965468d0c30a4e", size = 643749, upload-time = "2026-04-09T01:33:04.734Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/d3/35/4ee9c4315aef4f28f9cfb47a50d4e48bfec220d77f5e1e86a36d50302b33/pyarmor_cli_core-8.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:27d776ab86890c84381b3eed7c5906550f929d11d3ed63b4d981e0b4670a7f94", size = 439652, upload-time = "2026-04-09T01:33:09.45Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/51/0e/06f20cb41f14e703cf78b68e37a25f2fa163f87a82914404d9c916437a92/pyarmor_cli_core-8.1.1-cp39-cp39-win32.whl", hash = "sha256:5d7a3b90c559a29596db18d7f99342da1ba4634d526e08cbbe4743d4c77e3679", size = 454449, upload-time = "2026-04-09T01:33:14.388Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/7d/75/681dfabc50249cb38f452c0139006d6df9302dc5e32925972506f31ec1fa/pyarmor_cli_core-8.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:8dcd779236cb32cae03f2c71c469fbb945e45c6ef04e38a7ad39e412fe7a8df0", size = 414029, upload-time = "2026-04-09T01:33:19.46Z" }, + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/bd/90/89c95f00699600a2c476b1c80e97df5ea1f09b995a8abfc0a8f118f0bf38/pyarmor_cli_core-8.1.1-py3-none-any.whl", hash = "sha256:06eb9771c7d1f0ad7c00884f13ea42edfbffab8b28ef718ce197c0b4c69d97d5", size = 5177, upload-time = "2026-04-09T01:33:22.702Z" }, +] + [[package]] name = "pycparser" version = "2.21"