Repository navigation
Releases: sudfiona/NovaProtect
Release list
2.3.2
客户端「保护」页在 SDK marker 编辑器之外新增「函数保护(VMP 式扫描)」卡片:
- 扫描:对 x64 目标解析 PE 头 / 节表 / 数据目录,遍历 .pdata 的 RUNTIME_FUNCTION
表枚举全部运行时函数(含静态函数,x86 走导出表 + push ebp;mov ebp,esp 序言启发式),
上限 20000 条;并行读导出表补名称。 - 选择:列表 CheckBox 双向绑定 + 过滤(全部 / 仅可虚拟化 / 仅导出 / 仅已勾选)+ 全选 /
反选 / 添加所有函数 / 清除;批量设置模式(inherit / virtualization / ultra / mutation /
skip)、VM 复杂度、变异强度、激活锁定;项目加载时按 RVA 恢复勾选状态。 - 传参:函数规则经 ProtectorService 以 -func StartRva-EndRva-Mode-Vm-Mut-Lock 下发
(marker 规则仍走 -region);ProtectionPlanner 对函数规则独立校验(不要求匹配 marker),
能力矩阵计入「N 个扫描函数 VM」。
引擎侧:FunctionSource 双来源(SdkMarker=0 marker 边界 / ScanFunction=1 函数体范围),
-func 与 -region 同格式;区域上限统一为 kMaxVmRegions = 64(原 packer 写死 32,
runtime np_vm_install 实际支持 64)。
2.3.0
本轮更新总结
一、更稳定的硬件因子(一机一码增强)
原来只有 CPUID + 卷序列号,重装系统/换盘会失效。现在升级为三因子:
| 因子 | 稳定性 | 说明 |
|---|---|---|
| CPUID | 型号级 | 基础指纹 |
| 卷序列号 | 安装级 | 重装会变 |
| MachineGuid | 主板级 | HKLM\SOFTWARE\Microsoft\Cryptography\MachineGuid,重装系统/换盘不变,是主要稳定性锚点 |
- 打包机(
main.cpp)和运行时(prot64.c)两边算法严格一致:都从注册表读 MachineGuid、逐 UTF-16 code unit 拆字节喂 FNV-1a,再与卷序列号、CPUID 串联。 - 本机 ID 已从
55DBC795...变为三因子AB5FADA2...,-activation auto绑定 + 本机运行通过。
二、反沙箱作为独立保护功能(重点反微步云沙箱)
之前反沙箱逻辑只在运行时里、UI 没暴露。本轮:
- UI 独立开关:保护页新增三个 ToggleSwitch:
- 「反沙箱检测(重点反微步云沙箱)」
- 「反内存转储」
- 「交互桌面环境自检」
- 已接线到模型 → CLI 参数 → 构建计划 → 能力矩阵。
- 反沙箱检测增强(
np_sandbox_score):- 新增已知沙箱模块硬信号(
dbghelp/dbgcore/dbgeng/procmon/frida/sandbox等)计分。 - 新增睡眠压缩检测:对比 RDTSC 周期与
GetTickCount64墙钟时间,沙箱压缩时间会暴露异常比值。 - 新增桌面分辨率 + 环境模板名检测(
Win*/Admin*/User*等微步沙箱常见临时账户名)。 - 保留原有的 CPUID 厂商位、CPU 数、内存、RDTSCP 时序、核掩码。
- 新增已知沙箱模块硬信号(
- 验证:
-sandbox-guard -anti-dump -env-check打包后NPP1 flags=0xEA9,bit9/10/11 全部置位;完整回归 ALL PASS。 - 官网 SDK 文档:新增「反沙箱 / 反转储 / 环境自检」章节。
2.2.7
version.ps1 编码缺陷:文件是 UTF-8 无 BOM,PowerShell 5.1 在中文 Windows 按 GBK 解析 → 中文注释变乱码写进 version.iss → 安装包描述乱码 → 网站 release notes 乱码。已给 3 个含中文的 .ps1 补 UTF-8 BOM
Inno Setup 60 字符截断(实测确认):版本信息字符串超 60 字符被静默截断,而描述前缀占 30 字符。已将 version.iss 注释压缩为 25 字符(“资源加密保留图标;修复在线更新”),并在打包脚本加硬校验:期望全串 ≤60 且必须完整出现在安装包里
client_release_upload_smoke.py 契约失效:原先硬编码旧版本说明文字,重打安装包必挂。改为从 version.iss 派生期望值,版本号从 VERSION 派生
start-website-test.ps1 启动缺陷:Start-Process 因 HTTPS_PROXY/https_proxy 大小写重复抛异常,已加“保存-清空-恢复”逻辑(根因修复)
源码包排除清单 bug:带路径的排除模式只匹配文件名导致落空,商业 SDK 头文件 tests/VMProtectSDK.h 被安全门拦下才发现;已修复匹配逻辑并补 VMProtectSDK.h 排除
Full Changelog: https://github.com/sudfiona/NovaProtect/commits/%E6%AD%A3%E5%BC%8F%E7%89%88