TAO 是企业级 Python 源码保护与无源码交付平台:AST 级五维混淆 × 代码虚拟化 ×
Cython 原生编译 × 运行时防护纵深,一键把项目变成不含任何 Python 源码的
.pyd / .exe。28+ 轮逆向红队对抗迭代出厂。
| 能力 | 在线试用 | 完整版 |
|---|---|---|
| 单脚本混淆(控制流 / 改名 / 字符串 / 数字 / 常量池) | ✓ | ✓ |
| 函数虚拟化(自研栈式 VM) | ✓ | ✓ 更细粒度 |
| 单文件 Windows exe(PyInstaller onefile) | ✓ 带广告 | ✓ 无广告 |
| 多文件项目 / 全项目依赖自动携带 | — | ✓ |
| Cython 编译 .pyd(机器码级,无字节码) | — | ✓ |
| 宿主门禁 / 授权系统 / 反调试 / 自定义档位 | — | ✓ |
| 商用授权与批量构建 | — | ✓ |
完整版 敬请期待 —— 正在完善收费机制,留下邮箱,开放时第一时间通知你:
每一个维度都以「产物可读信息残留」为度量持续加固,支持多轮叠加与 120 个配置项微调。
结构化函数体 → 不透明状态机循环。
(s*K)%2³²==c,逐函数随机奇乘数全项目符号映射一致,跨文件 import 自动同步。
逐串随机选用四种算法,运行期还原。
三档复杂度:偏移 → 位运算重构 → 位分解+噪声对消。
全部 int 字面量编码进 varint+zigzag 字节池。
动态特性不再以「整体保名」代价换兼容。
__name__ 读取双层保护(wraps/注册表分发)f(**{'k':v}) 字面量键 → 参数保名标记的核心函数编译为逐构建随机的加密字节码,源文件只留原签名引导壳;内嵌解释器继续被整条混淆链加固。
# 虚拟化后:函数体消失,只剩引导壳 def derive_seed(master, rounds=8): return _taogo_vm_exec(_taogo_vm_p_1, (master, rounds)) _taogo_vm_p_1 = _taogo_vm_dec(密钥, (指令流...), (常量...), (名字表...), (局部槽表...), 2)
verify_serial 类原名从明文项目到最终交付物,全链路一个平台完成,每一步都有验收门。
混淆 .py 树 · 无源码 .pyd/.so 目录 · onefile/onedir exe · zipapp。exe 目标机零依赖(运行时与 vcruntime 已打包)。
toolchain_doctor 真实编译探针秒级快速失败;分块并行免疫 BrokenProcessPool;C1002 巨模块降级阶梯;看门狗整树收割孤儿编译器。
单文件校验原子落盘;混淆失败的文件写成 import 即抛桩 — 明文永不进失败产物;中间产物自动清理、外人目录拒绝覆盖。
全部 fail-closed:拦截即无提示静默退出,先于一切秘密物化。
| 防护 | 机制 | 触发行为 |
|---|---|---|
| 反调试 | gettrace 检测 / SMBIOS 只读 VM 指纹(装虚拟机软件不误伤)/ 进程表扫 IDA·Ghidra·r2·Frida;delayed 模式随机延迟引爆 | exit(2) / 延迟无提示 exit(3) |
| 完整性自校验 | SHA256 自哈希块,运行期重哈希比对 | 篡改即 exit(1) |
| 宿主绑定 | sys.frozen + _MEIPASS + 解释器指纹 + argv[0] 四项校验 | os._exit(2) |
| C 层宿主门禁 | 门禁块编译进机器码,只读进程/文件证据 + 归档全树锚定 | 锚值漂移 → rc2 静默 |
| 内存防卫 | 后台枚举系统句柄表,陌生 PROCESS_VM_READ 句柄即感知;祖先链豁免+白名单 | 污染秘密缓冲 + exit(3) |
| 入口封装 | 模块级秘密赋值下沉到函数局部 — Cython 模块字典不再可 dump | 结构性防御 |
| 代码对象交付 | exec 源码捕获 → marshal 加密嵌入,RAM 无明文源码;密钥分片 + 用后 memset 清零 | 形态不符诚实跳过 |
| 原生校验桩 | PBKDF2 校验整体下沉自包含 C 函数(全函数白名单匹配,fail-closed 拒改写);盐/摘要嵌 C 静态数组,常量时间比较 | Python 层只拿布尔值 |
| 密钥卫生 | 历史泄露密钥清单编辑距离比对 + 弱哈希(md5/sha1/无盐 32 位)强警告 | 过近默认拒绝构建 |
| 授权系统 | Ed25519 离线授权:机器绑定 / 有效期 / 特性开关;产物内只有公钥,无私钥不可伪造 | 校验失败 exit(4) |
重打包、换引导、替换同胞 pyd、树内篡改、伪造签名 —— 全部 rc2 静默失败。重钉需要私钥,而私钥从不出构建机。
伪装 frozen/_MEIPASS/解释器/argv[0]?门禁读主进程映像基名与 pyd 真实加载目录 — 编译进机器码,伪造不了。
rc2 静默本机 PyInstaller 重打包换入口、替换 _internal/main.pyd?覆盖哈希漂移,全部用户 pyd 门禁联动死亡。
rc2 静默攻击者全知白化密钥 W2(枚举 pyd hex 候选还原)也签不出合法锚 — 私钥仅存在于构建机。
rc2 静默每个防护能力都以「真实攻击链重放」验收,而非只靠单元测试。
暗色桌面 GUI(pywebview)与 120 项可调配置的 CLI 双入口,三档预设覆盖从快速保护到最高安全。
# 傻瓜一键全链路(GUI),或 CLI: python advanced_obfuscator.py --project my_app -o out \ --cython-package --cython-entry app.main \ --virtualize-funcs license.verify_serial \ --license-secret <secret> --license-check-key <pub> \ --diff-test --strength # 三档预设 Level 1 改名 + 字符串加密 # 快速保护 Level 2 + 控制流平坦化 # 标准生产 Level 3 全特性 + 反调试 + 完整性 + 常量池 # 最高安全
防御目标是把攻击成本从「50 行 ctypes dump 字典」抬高到「逆向编译器产物」,而非虚假承诺绝对安全。
威胁建模前提即「pyd 必被单独分析」— 宿主绑定与门禁使其失去分析价值,而非假装解包不可能。
单字节补丁已被两阶段状态机封死;理解并重写机器码语义的多点补丁无法原理性阻止。
GPU 加速 PBKDF2 对弱口令可行 — 全链强度由最弱环节决定,请使用足熵口令。
globals()[k+'pha'] 类动态构造无法静态保护,由语法/导入冒烟/差分验证覆盖;metaclass 读类名建议 rename_classes: false。