Skip to content

Releases: sudfiona/NovaProtect

2.3.2

Choose a tag to compare

@sudfiona sudfiona released this 22 Oct 12:05
3ed4794

客户端「保护」页在 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

Choose a tag to compare

@sudfiona sudfiona released this 20 Oct 16:16
55e4f18

本轮更新总结

一、更稳定的硬件因子(一机一码增强)

原来只有 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 没暴露。本轮:

  1. UI 独立开关:保护页新增三个 ToggleSwitch:
    • 「反沙箱检测(重点反微步云沙箱)」
    • 「反内存转储」
    • 「交互桌面环境自检」
    • 已接线到模型 → CLI 参数 → 构建计划 → 能力矩阵。
  2. 反沙箱检测增强(np_sandbox_score):
    • 新增已知沙箱模块硬信号(dbghelp/dbgcore/dbgeng/procmon/frida/sandbox 等)计分。
    • 新增睡眠压缩检测:对比 RDTSC 周期与 GetTickCount64 墙钟时间,沙箱压缩时间会暴露异常比值。
    • 新增桌面分辨率 + 环境模板名检测(Win*/Admin*/User* 等微步沙箱常见临时账户名)。
    • 保留原有的 CPUID 厂商位、CPU 数、内存、RDTSCP 时序、核掩码。
  3. 验证:-sandbox-guard -anti-dump -env-check 打包后 NPP1 flags=0xEA9,bit9/10/11 全部置位;完整回归 ALL PASS。
  4. 官网 SDK 文档:新增「反沙箱 / 反转储 / 环境自检」章节。

2.2.7

Choose a tag to compare

@sudfiona sudfiona released this 19 Oct 19:17
55e4f18

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