Pyarmor 8 与 9 路线图全解:从 Release Plan 逐版本读懂功能演进与源码实现
开发工具应用安全【免费下载链接】pyarmorA tool used to obfuscate python scripts, bind obfuscated scripts to fixed machine or expire obfuscated scripts.项目地址https://gitcode.com/gh_mirrors/py/pyarmor点击查看免费下载本文基于仓库中的 docs/ReleasePlan.md 展开完整梳理 Pyarmor 8 与 9 两个大版本中每个小版本规划了什么功能、当前处于什么状态并结合src/cli命令行源码与 src/cli/default.cfg 配置基线逐项印证这些规划特性的真实实现帮助你在选型 Pyarmor 版本、评估某个功能如 BCC/RFT/MINI/ECC 模式、NTP 过期检查、package_name_format等配置可用版本时快速找到依据。文档定位Release Plan 记录了什么Release Plan 是 Pyarmor 8 的计划特性清单其核心宗旨一句话概括Pyarmor 8 与 9 按小版本滚动交付特性8 系主打架构重写与不可逆混淆9 系主打 CI/CD 适配与混淆模式细分。文档按8.0 → 8.1 → … → 8.5 → 9.0 → 9.1 → 9.2/9.2.2 → 9.3 → 9.4逐版本列出特性与状态released / developing / not start并附带因 ECC/VMC 模式引入而被取消的功能清单——这是判断某个特性最终命运的关键依据。从当前仓库配置可以确认仓库处于路线图哪个位置src/cli/default.cfg 中声明的版本号为major 9 minor 2 patch 7 cli.core 8.1.2 ; pyarmor.cli.core 兼容核心版本 mini.core 3.0 ; 运行 MINI/VMC/ECC 模式脚本所需的最小 core 版本即仓库当前基线是 9.2.x 阶段9.2与9.2.2的特性均已落地9.3开发中与 Release Plan 的状态标注完全一致。Pyarmor 8 系列架构重写与不可逆混淆8.0新命令体系与 BCC/RFT 模式released8.0 是整个 8 系的地基版本ChangeLogs.8 明确说明其为重写rewritten并且旧命令obfuscate、licenses等只做 bug 修复、不再加新特性。8.0 的规划特性为支持 Python 3.11引入 3 个新命令gen、cfg、reg引入 BCC Mode将 Python 函数转 C 函数不可逆混淆引入 RFT modeRefactoring重构式混淆不可逆运行期错误消息本地化/国际化通过 NTP 服务器校验过期时间这些规划在源码中均有对应实现证据新命令注册。src/cli/main.py 中的子命令注册段依次挂载了gen_parser、reg_parser、env_parser、init_parser、build_parser、cfg_parser、man_parsergen解析器文档串直接给出三种用法src/cli/main.pypyarmor gen options scripts # 生成混淆脚本及全部运行时文件 pyarmor gen key options # 只生成 runtime key pyarmor gen runtime options # 只生成 runtime package处理逻辑见cmd_gensrc/cli/main.py先校验许可证版本再把命令行选项 push 进配置上下文创建Builder并安装插件cfg命令则通过Configer对 local/global 两个域的配置文件做run/resetsrc/cli/main.py这正是pyarmor cfg package_name_format xxxx这类写法背后的实现reg命令负责注册 regfile、生成 group device、查询当前 license 信息src/cli/main.py。BCC/RFT 模式开关。src/cli/default.cfg 的[builder]段提供enable_bcc、enable_rft、enable_jit、enable_vmc四个模式开关默认均为 0运行时经 src/cli/context.py 的enable_bcc/enable_rft属性读取BCC 模式还带有独立的[bcc]配置段unsupported_functions、unsupported_nodes、trace_lineno、call_function_ex等src/cli/default.cfg。NTP 过期检查。src/cli/default.cfg 的[runtime]段定义了nts选项支持ntp 协议主机、http://前缀主机、特殊值local以及逗号分隔的候选主机列表与and,前缀全部校验取最大时间戳默认nts local、nts_timeout 3。8.1ARM64 平台扩展released8.1 补齐了darwin.aarch64Apple M1与linux.aarch64并让windows.x86、linux.x86、linux.armv7在不启用 BCC 模式下可运行。从 src/cli/default.cfg 的平台段结构看各平台的 BCC 编译配置是按os.arch.bcc分节维护的——早期只覆盖 x86_64 平台8.1 之后linux.aarch64.bcc、darwin.aarch64.bcc等段逐步补齐这与路线图的增量节奏吻合。8.2文档、Group 授权与插件体系released 2023-05-108.2 的规划项是后续使用频率很高的一批特性完整文档对应仓库中docs/目录下的 tutorial/how-to/reference 结构Group license多台机器共享一个授权插件与钩子plugins and hooks支持BCC 模式扩展到windows.x86、linux.x86、linux.armv7非试用版可用pyarmor cfg package_name_format xxxx自定义运行时包名可用pyarmor cfg clear_frame_locals 1清空帧局部变量打包安全加固保护系统包、绑定解释器bind interp、检测调试器源码印证package_name_format是 src/cli/default.cfg 中[runtime]段的真实选项默认pyarmor_runtime_{suffix}{suffix}会被替换为平台/版本后缀clear_frame_locals在 src/cli/default.cfg 中定义为wrap 模式下清空frame.f_locals非 wrap 模式无意义默认 0bind interp 对应[runtime]段注释掉的interps 选项D与S:符号规则src/cli/default.cfg默认插件即写在配置里plugins CodesignPlugin DarwinUniversalPluginsrc/cli/default.cfg用于 Darwin 代码签名场景插件协议定义见 docs/reference/environments.rst其中post_script是可选方法后文 8.5 正式新增的钩子。8.3Themida、WebUI 与更多平台released 2023-08-01支持--enable-themida对应 src/cli/default.cfg 的enable_themida 0Use Themida to protect runtime package in windowsgen解析器中也注册了同名开关src/cli/main.pypyarmor-webui仓库根目录下的 src/pyarmor-webui.py 即该 Web 版前端入口多 Python 版本支持新增平台Android、Alpine Linuxmusl-c/docker、FreeBSD新架构loongarch64。配置文件中已能看到[android.x86_64.bcc]、[alpine.aarch64.bcc]、[freebsd.x86_64.bcc]等段src/cli/default.cfgloongarch64的 runtime 扩展包解压路径在 docs/reference/solutions.rst 的排障示例中出现pyarmor/cli/core/linux/loongarch64/pyarmor_runtime.soGroup license 支持使用默认 bridge 网络且未深度定制的无限数量 Docker 容器——这是授权侧策略代码层面通过 group 设备标识group_device_flag 22src/cli/default.cfg与cmd_reg中的generate_group_device路径支撑src/cli/main.py。8.4Python 3.12released 2023-10-18单特性版本适配 Python 3.12。配置注释中已体现 3.12 的行为变化例如 wrap 模式说明src/cli/default.cfgSince Python 3.12, 2 is same as 1, both of them use full wrap mode。8.5专家钩子与跨平台构建released 2024-03-088.5 是 8 系的收官版本四项规划特性全部可在源码中找到落点专家用户可在pyarmor_runtime初始化中插入自己的 Python 代码——即 runtime hooks 机制[runtime]段的hooks hooks.py选项src/cli/default.cfg新插件post_script在每个脚本混淆完成后回调用于二次改写混淆产物。调用点在 src/cli/generate.py构建流程收集所有带post_script属性的插件对每个资源调用plugin.post_script(ctx, r, source)若返回非空则用返回值替换源码并行构建路径 src/cli/generate.py 同样处理插件协议在 docs/reference/environments.rst 中有正式签名说明post_script(ctx, res, source)Runtime key 可混淆——对应obf_key_mode选项0 不混淆 / 1 简单混淆src/cli/default.cfgApple Silicon 扩展不再打补丁使 Windows 用户也能为 Apple Silicon 构建混淆脚本——对应patch_extension选项0 保持代码签名、1 把 runtime key 嵌入扩展src/cli/default.cfg。Pyarmor 9 系列CI/CD 适配与混淆模式细分9.0pyarmor.man、CI License 与 Python 3.13released 2024-11-10Pyarmor.man 包快速查询出问题时的解决方案。命令实现见cmd_mansrc/cli/main.py优先导入pyarmor.man未安装时提示并自动pip install -U pyarmor.man最终执行python -m pyarmor.man.shell使用场景在 docs/questions.rst 中反复强调报 issue 前先用pyarmor man自查Pyarmor CI License专为 CI/CD pipeline 设计的特殊授权。docs/ChangeLogs.9 详细说明了 9.0 在 CI/CD 上的大变化9 起 Pro License 不能用于 CI/CD pipelineCI License 按年付费且不能用于本地机器Basic 可用但需额外申请 CI regfile具体两种接入方式Direct/Indirect见 docs/how-to/ci.rstPython 3.13 支持自 v9.0.5 起。9.1MINI 模式released 2025-02-24MINI 被定义为a simple RFT mode, the goal is high performance after obfuscation即在 RFT 重构混淆的基础上做性能优先的简化形态。仓库配置中mini.core 3.0src/cli/default.cfg注释说明它是运行 MINI、VMC 或 ECC 模式脚本所需的最小 core 版本——三个新模式共享同一套 mini 运行时核心。9.2 与 9.2.2ECC/VMC 模式与 Python 3.14/3.15released9.22025-10-31支持 Python 3.14 与 3.15 (a2)9.2.22025-12-8引入两个更轻量的半 BCC模式ECC modemini BCC mode只把函数体的一部分转成 C 代码VMC modesimple ECC mode把函数体转成 VM 指令而非真正的 C 代码。仓库中enable_vmc开关已就位src/cli/default.cfg当前注释标注Not implemented说明该开关是为 9.2.2 起的 VMC 模式预留的统一模式控制面。Release Plan 还特别列出了因 ECC/VMC 引入而被取消的四个规划项对使用者判断某能力是否还会来很重要BCC 模式尽可能转换不支持的节点类型cancelled专家用户自定义 BCC 生成的 C 源码cancelledBCC 模式跨平台支持cancelledmay not if too complex混淆扩展模块pyarmor_runtime中的字符串常量cancelled9.3developing与 9.4not start9.3 开发中完整测试用例细化 RFT 模式以改进大脚本性能对齐 MINI 模式pyarmor build支持--pack把项目打包成单个可执行文件RFT 模式支持模块名重构。关于打包能力当前仓库的gen解析器已提供--packonefile/onedir模式src/cli/main.py且校验逻辑限制--pack与--no-runtime、--use-runtime、-i/--prefix互斥src/cli/main.pybuild命令的 docstring 也提到Option--packmay be still got from command linesrc/cli/command.py。从源码结构看打包主流程在gen中已打通args.pack分支调用find_packersrc/cli/main.py9.3 计划是把该选项进一步对齐到pyarmor build9.4 未开始面向用户的学习体系Learning system。文档同时给出时间预期Pyarmor features will be stable in 2025。版本选型速查需求最低可用版本仓库依据新命令gen/cfg/reg、BCC/RFT、NTP 过期校验8.0src/cli/main.py、src/cli/default.cfgApple M1 / linux.aarch64 运行8.1docs/ReleasePlan.md 平台增量自定义package_name_format、clear_frame_locals、bind interp、插件钩子8.2src/cli/default.cfg--enable-themida、pyarmor-webui、Android/Alpine/FreeBSD/loongarch648.3src/cli/default.cfg、src/pyarmor-webui.pyPython 3.12 / 3.138.4 / 9.0.5docs/ReleasePlan.mdruntime hooks、post_script插件、obf_key_mode、Windows 构建 Apple Silicon8.5src/cli/generate.pypyarmor man排障、CI License9.0src/cli/main.py、docs/ChangeLogs.9MINI / ECC / VMC 模式9.1 / 9.2.2src/cli/default.cfgPython 3.14 / 3.15 (a2)9.2docs/ReleasePlan.md需要注意的前提新命令体系只支持 Python 3.7旧命令兼容 2.7~3.10 但停止加特性见 docs/ChangeLogs.8平台名采用os.arch组合如darwin.aarch64、android.armv7完整清单见 docs/reference/concepts.rst9 起 CI/CD 授权策略变化较大升级前建议阅读 docs/ChangeLogs.9 与 docs/how-to/ci.rst。小结docs/ReleasePlan.md 以极简的清单形式承载了 Pyarmor 8→9 的全部路线8 系完成架构重写、BCC/RFT 不可逆混淆与多平台铺开9 系则用 CI License 解决流水线授权问题并用 MINI/ECC/VMC 三种性能导向模式细化混淆档位。结合 src/cli/default.cfg 的模式开关与[runtime]/[bcc]配置段、src/cli/main.py 的命令注册与cmd_man实现、以及 src/cli/generate.py 的post_script调用点可以确认仓库当前基线9.2.7与路线图标注的状态一一对应后续关注点即为 9.3 的pyarmor build --pack与 RFT 大脚本性能优化。赞分享开发工具应用安全【免费下载链接】pyarmorA tool used to obfuscate python scripts, bind obfuscated scripts to fixed machine or expire obfuscated scripts.项目地址https://gitcode.com/gh_mirrors/py/pyarmor点击查看免费下载相关推荐BallonsTranslator 版本演进史从 v1.0.0 到 v1.3.34 的功能路线图与实现解读BallonsTranslator 版本演进史从 v1.0.0 到 v1.3.34 的功能路线图与实现解读 BallonsTranslator 是一款基于深度AI 应用计算机视觉图像处理NLP桌面应用GitHub Desktop 路线图解读从 1.5 到 3.0 的核心功能演进与源码实现GitHub Desktop 路线图解读从 1.5 到 3.0 的核心功能演进与源码实现 GitHub Desktop 的 路线图文档 https://lin后端图像处理release-please 版本演进全史从 CHANGELOG.md 解读 v1 到 v17 的技术路线图release please 版本演进全史从 CHANGELOG.md 解读 v1 到 v17 的技术路线图 导读本文以 release please 仓库开发工具CI/CDDevOps上一篇PPT Master 动画系统完全指南页面过渡、对象级动画与确定性 Morph 配对的执行契约下一篇三步解锁Wand游戏修改器专业版本地增强工具完全指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Keras多输入数据流水线搭建:从ImageDataGenerator到tf.data实战

Keras多输入数据流水线搭建:从ImageDataGenerator到tf.data实战

1. 为什么必须吃透Keras的generator——不是写代码,是搭数据流水线“Keras实例:generator生成器(多输入/ImageDataGenerator)”这个标题看着像教程目录里的一行小字,但在我带过的十几个模型训练项目里,它几…

2026/10/13 8:28:41 阅读更多 →
Harvester VM 迁移网络(vm-migration-network)设置详解:从 Setting 校验到 KubeVirt 配置的落地

Harvester VM 迁移网络(vm-migration-network)设置详解:从 Setting 校验到 KubeVirt 配置的落地

云原生虚拟化存储后端高可用 【免费下载链接】harvester Open source hyperconverged infrastructure (HCI) software 项目地址: https://gitcode.com/gh_mirrors/ha/harvester 点击查看 免费下载 Harvester 默认使用管理(mgmt)网络承载 VM …

2026/10/13 8:28:41 阅读更多 →
微信好友自动统计方案:企业微信接口与个人号半自动实操

微信好友自动统计方案:企业微信接口与个人号半自动实操

做了六年私域运营,我的微信从一开始的两三百人,涨到现在将近一万人。说实话,通讯录超过三千人以后,光靠翻列表根本看不出谁删了你——好友人数每天在变,新增几个、被删几个,全靠记忆根本不靠谱。早年间我也…

2026/10/13 8:28:41 阅读更多 →

最新新闻

Python大数据分析实验通关指南:从数据清洗到可视化全流程

Python大数据分析实验通关指南:从数据清洗到可视化全流程

1. 从lab7这个编号说起:为什么Python课设总在第七周卡住 如果你正在翻这门课的实验安排,看到lab7这个编号,大概率已经过了前六周的语法基础、循环判断、函数封装,开始进入真正要“处理数据”的阶段了。这门课的名字叫《Python程序…

2026/10/13 9:22:51 阅读更多 →
RAG系统实战:从知识库构建到检索生成的全链路设计与调优

RAG系统实战:从知识库构建到检索生成的全链路设计与调优

1. RAG系统到底在解决什么问题第一次接触RAG这个概念是在一个内部知识库项目里。当时团队想把一堆产品文档、会议纪要、客服记录做成一个能问答的系统,第一反应是直接丢给大模型。结果很快就撞墙了:模型对内部信息一无所知,问它某个产品的具体…

2026/10/13 9:22:51 阅读更多 →
AI写的PowerShell脚本一跑就崩?根因分析与实用提示词模板

AI写的PowerShell脚本一跑就崩?根因分析与实用提示词模板

前几天帮朋友排查一个调度任务,卡在一个PowerShell脚本上,AI一口气生成了四十多行“看起来很完整”的代码,结果跑起来第一行就报“术语无法识别”,后面全部白给。这不是我第一次见到AI写的PowerShell翻车了。它给出的命令确实存在…

2026/10/13 9:22:51 阅读更多 →
基于OpenCV的单目与双目相机测距:标定、视差与精度实践

基于OpenCV的单目与双目相机测距:标定、视差与精度实践

简介:一套基于Python和OpenCV的普通相机图像测距系统资料包,面向计算机视觉与立体成像方向的开发者和学习者,解决通过普通相机拍摄图像实现精确距离测量的问题。系统涵盖单目相机标定校正、双目相机空间位置关系标定、左右视图视差计算与深度…

2026/10/13 9:22:51 阅读更多 →
dplyr 值映射重编码:深入解析 `recode_values()` 与 `replace_values()` 的语义、类型安全与防御性编程

dplyr 值映射重编码:深入解析 `recode_values()` 与 `replace_values()` 的语义、类型安全与防御性编程

数据分析 【免费下载链接】dplyr dplyr: A grammar of data manipulation 项目地址: https://gitcode.com/gh_mirrors/dp/dplyr 点击查看 免费下载 recode_values() 与 replace_values() 是 dplyr 1.2.x 引入的"按值匹配"重编码函数族:前者用…

2026/10/13 9:22:51 阅读更多 →
互联网大厂职场生存指南:高薪背后的健康与职业危机

互联网大厂职场生存指南:高薪背后的健康与职业危机

1. 职场生存现状:光鲜背后的残酷现实那天晚上十点半,我正收拾东西准备离开办公室,突然听到隔壁工位传来一阵骚动。老张,那个连续加班三个月的技术总监,突然倒在了键盘上。救护车来得很快,但已经来不及了。一…

2026/10/13 9:21:48 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →