SOFTWARE PROTECTION CONCEPTS

软件保护技术概览

本页介绍软件保护中常见的源码变换、控制流混淆、字节码保护、虚拟化和运行时防护技术。示例仅用于说明基本概念,不代表任何工具的固定输出模式。

07
技术领域
39
核心概念
05
分析阶段
变体口径

只统计具备独立结构或算法路径的实现;seed、比例、深度、阈值等参数排列不单独计数。

安全边界

单项技术通常只增加特定分析阶段的成本,应根据威胁模型、兼容性和性能预算组合使用。

ANALYSIS-STAGE MATRIX

技术与分析阶段

从分析者所处阶段观察技术作用,能避免把不同目标的保护手段简单排成单一强弱顺序。

各技术领域的主要作用阶段
技术领域源码阅读控制流恢复字节码分析动态分析自动化/LLM
符号与源码变换主要辅助有限有限辅助
MBA 与数据保护辅助有限辅助有限辅助
CFF 与不透明谓词辅助主要辅助辅助主要
字节码、IR 与 Stub有限辅助主要辅助辅助
虚拟化保护有限主要主要主要主要
Anti-LLM辅助辅助辅助有限主要
运行环境保护有限有限辅助主要有限

“主要 / 辅助 / 有限”表示通常的主要作用阶段,不代表统一的安全强度评级,也不能替代针对具体产物的攻防评估。

01

SOURCE & SYMBOLS

源码与符号保护

改变代码的直接可读线索,使名称、文本和调用关系不再自然表达业务意图。

Identifier Renaming

标识符重命名
定义
用无业务语义的名称替换函数、变量和参数标识。
常见变体
短混淆名、视觉相似名、长随机名、Unicode 相似字符。
概念示例
calculate_price(total)_O0(l1)
适用范围
降低源码浏览、全文搜索和调用关系速读效率。
局限
类型、常量和行为仍可能暴露语义,反射代码需保守处理。

Synthetic Symbol

合成符号匿名化
定义
对保护流程生成的辅助变量和函数统一去除可识别前缀。
常见变体
前缀折叠、随机映射、按作用域独立命名。
概念示例
decrypt_helper 改写为与普通局部符号一致的名称。
适用范围
避免辅助符号直接标记变换位置和运行职责。
局限
只能隐藏标签,无法隐藏辅助逻辑自身的行为特征。

Reflective Call

反射式调用
定义
把直接属性调用改写为运行时名称解析。
常见变体
getattr 查找、名称分片、间接调用表。
概念示例
service.run(x)getattr(service, name)(x)
适用范围
干扰基于语法节点的调用图和属性引用分析。
局限
运行时仍需解析真实名称,且可能影响静态检查和性能。

String Protection

字符串保护
定义
不在静态代码中直接保存敏感文本,而在需要时恢复。
常见变体
分片重组、编码包装、流式变换、Native 侧恢复。
概念示例
"internal_api" 以多段数据表达,调用前临时组合。
适用范围
减少密钥标签、接口名和规则文本的直接检索线索。
局限
使用时通常会出现明文;简单编码不构成密码学保护。
02

DATA & EXPRESSIONS

数据与表达式变换

使用语义等价但结构复杂的表达式隐藏常量、条件和中间数据关系。

MBA Constants

混合布尔算术常量
定义
用算术与位运算恒等式组合表达原始常量。
常见变体
线性 MBA、嵌套 MBA、多项式 MBA。
概念示例
常量 42 改为在目标位宽上恒等于 42 的组合式。
适用范围
增加常量提取、模式匹配和符号化简成本。
局限
弱表达式可被规范化;必须验证位宽和溢出语义。

Dataflow MBA

数据流 MBA
定义
把运行时值包入等价的零函数或多项式数据流。
常见变体
恒零函数包裹、多项式包裹、嵌套依赖。
概念示例
x + y 与一个对所有输入恒为零的复杂项相加。
适用范围
干扰值传播、表达式切片和自动语义归纳。
局限
可能放大表达式和运行成本,求解器仍可处理受限规模。

Opaque Predicate

不透明谓词
定义
构造结果已知但不容易从静态形式立即判断的条件。
常见变体
代数恒真、MBA 等式、恒零式、布尔多项式。
概念示例
真实分支由恒真条件保护,并搭配不可达的干扰路径。
适用范围
增加分支可达性判断和控制流简化成本。
局限
固定模板容易识别;动态执行可直接观察分支结果。

Permutation Table

排列查表
定义
通过可逆排列把数据映射到不同表示,再按需逆变换。
常见变体
随机置换、仿射置换、按字节分段置换。
概念示例
原值先映射为表索引,使用时通过逆表得到等价值。
适用范围
隐藏直接常量关系,并与字符串或 MBA 组合。
局限
正逆关系必须存在于运行链路,单独使用可被追踪。

Runtime Value Hiding

运行时藏值
定义
静态阶段保存经过变换的值,执行过程中才恢复真实数据。
常见变体
局部派生、分片恢复、诱饵值并存。
概念示例
敏感阈值不直接出现在赋值语句,而由运行时输入组合得到。
适用范围
减少静态上下文中的高价值数据线索。
局限
动态跟踪仍可能捕获恢复后的值。
03

CONTROL FLOW & CALLS

控制流与调用结构

重塑基本块之间的关系和函数边界,使原始程序结构不再直接对应业务流程。

Control Flow Flattening

控制流平坦化 · CFF
定义
把原本自然连接的基本块改为由统一调度结构驱动。
常见变体
状态打乱、虚假分支、加密比较、树形分发、间接分发、嵌套平坦化。
概念示例
入口调度状态块 A / B / C出口
适用范围
显著增加控制流图恢复、结构化反编译和路径归纳成本。
局限
带来体积和性能开销;动态轨迹仍可辅助恢复真实转移。

Inline Calls

函数内联
定义
将安全的被调用函数体展开到调用点,消除部分函数边界。
常见变体
表达式内联、语句体内联、选择性调用点展开。
概念示例
tax = rate(x) 变为调用点中的等价计算步骤。
适用范围
削弱函数级定位、复用关系和调用图线索。
局限
闭包、异常、递归和动态绑定会限制安全覆盖范围。

Junk Code

垃圾代码
定义
加入不改变可观察结果的语句或计算。
常见变体
无效赋值、栈中性计算、不可达块、MBA 垃圾表达式。
概念示例
在真实步骤之间加入结果不被使用且无副作用的计算。
适用范围
增加代码体积、切片噪声和人工审阅负担。
局限
数据流分析可清理简单垃圾;错误设计会改变副作用或栈状态。

Fake Branches

虚假分支
定义
增加表面可达、实际不可达或无业务影响的分支。
常见变体
恒假分支、诱饵目标、分层虚假边。
概念示例
真实路径旁加入形式合理但无法满足条件的处理分支。
适用范围
扩大控制流图并干扰路径优先级判断。
局限
依赖不透明条件质量;覆盖率和动态执行可筛除部分路径。

Dispatcher Topology

分发器拓扑
定义
使用不同拓扑组织状态到基本块的映射关系。
常见变体
线性比较、决策树、掩码树、分组间接索引。
概念示例
调度目标由多级选择结构确定,而不是单一顺序判断。
适用范围
降低针对固定 CFF 形态的自动识别和恢复稳定性。
局限
逻辑拓扑最终仍需产生确定控制转移。
04

BYTECODE & IR

字节码与 IR 保护

在源码以下重组指令、基本块和函数载荷,使分析者必须理解额外的格式与运行桥接。

Version-Independent IR

版本无关中间表示
定义
把不同解释器版本的指令语义映射到统一中间层。
常见变体
栈式 IR、CFG IR、语义指令 IR。
概念示例
版本相关输入先标准化,再应用同一 CFG 变换。
适用范围
支持跨版本变换并隔离解释器细节。
局限
必须精确维护调用、跳转、缓存和异常语义。

L2 Inline

字节码层内联
定义
在中间表示中展开符合安全条件的小函数。
常见变体
单返回路径、局部变量重映射、选择性展开。
概念示例
调用指令被参数搬移、函数体和返回值搬移替代。
适用范围
在无源码形态下进一步打散函数边界。
局限
异常表、闭包和复杂调用协议限制可用范围。

Basic Block Merge

基本块合并
定义
在保持跳转语义的前提下重新组织或合并 CFG 节点。
常见变体
直通块合并、跳板消除、条件结构归并。
概念示例
多个短块重排为更少但边关系更复杂的块。
适用范围
改变反汇编工具看到的块边界和图形结构。
局限
涉及异常区间或协议邻接时必须保守跳过。

Junk Instructions

垃圾指令
定义
在指令流中插入净栈效果为零的无关序列。
常见变体
常量压栈丢弃、局部往返、无效算术、比较丢弃、MBA 中性序列。
概念示例
真实指令之间加入执行后栈深和状态不变的短序列。
适用范围
增加反汇编长度和语义切片噪声。
局限
必须满足栈中性与协议邻接;规范化工具可删除简单形态。

IR Decoy

IR 诱饵
定义
在中间表示中加入不可达块或无关常量线索。
常见变体
不可达基本块、诱饵常量池、伪算法片段。
概念示例
静态图中存在看似关键的算法块,但入口不可满足。
适用范围
干扰仅依赖静态图、字符串和常量的分析。
局限
精确可达性分析或动态覆盖可识别诱饵。

Opcode Remap

操作码重映射
定义
改变操作码与语义之间的映射,并由配套运行端解释。
常见变体
静态置换、按构建随机布局、分组映射。
概念示例
标准反汇编器读取同一字节时得到错误的指令含义。
适用范围
提高现成字节码工具直接分析的适配成本。
局限
映射可从运行端和动态轨迹恢复,不构成独立加密保证。

Function Stub

函数桩
定义
以轻量入口替代真实函数体,调用时再请求受保护载荷。
常见变体
每次恢复、进程内缓存、按函数派生。
概念示例
调用Stub校验与恢复执行
适用范围
减少静态 CodeObject 中直接存在的真实逻辑。
局限
运行时必须获得可执行表示,动态截获仍是威胁。

Module Payload Protection

模块载荷保护
定义
把模块或函数载荷作为受校验的密文保存。
常见变体
模块级、函数级、按用途独立派生。
概念示例
启动入口只装载封装数据,通过校验后才重建执行对象。
适用范围
保护静态产物中的真实指令与常量内容。
局限
密钥管理与运行端边界决定整体安全性。
05

VIRTUALIZATION

虚拟化保护

把选定逻辑编译到自定义执行模型,使分析者需要先恢复虚拟指令系统和运行语义。

01Python 语义
02VM IR
03随机化 ISA
04Native Runtime

Register VM

寄存器虚拟机
定义
用自定义寄存器机解释选定函数的虚拟字节码。
常见变体
固定寄存器集、窗口寄存器、带 spill slot 的分配模型。
概念示例
原始表达式被转换为虚拟寄存器之间的数据搬移与运算。
适用范围
保护高价值、范围可控且语义受支持的函数。
局限
引入运行开销;解释器与 handler 仍可被逆向。

Randomized ISA

随机化指令集
定义
每次构建改变虚拟语义的编码布局。
常见变体
操作码排列、操作数顺序、填充策略、trap 布局。
概念示例
相同逻辑在不同产物中对应不同虚拟指令表示。
适用范围
降低一次性分析结果跨样本复用的价值。
局限
逻辑语义不变,单个样本仍可被完整建模。

Register Allocation

寄存器分配
定义
把中间值映射到物理虚拟寄存器和 spill slots。
常见变体
线性扫描、图着色、调用约束分配。
概念示例
跨调用存活值被放入可保持区域,临时值使用调用易失区域。
适用范围
保证 VM 执行正确,并形成不同的数据布局。
局限
它首先是编译正确性机制,不应单独视为保护保证。

Per-Instruction Encryption

逐指令加密
定义
仅在取指阶段临时恢复当前虚拟指令。
常见变体
位置相关独立恢复、前序明文参与的密钥链。
概念示例
运行端按程序计数器恢复一条指令,执行后丢弃临时明文。
适用范围
缩短完整虚拟字节码明文驻留窗口。
局限
取指点仍可被跟踪;跳转和异常入口会增加复杂度。
06

ANALYSIS INTERFERENCE

分析干扰与 Anti-LLM

通过改变输入上下文的质量、规模和可信度,增加自动摘要、机制识别和跨函数归纳的校验成本。

Prompt Injection

提示上下文干扰
定义
在代码文本中加入面向自动分析上下文的干扰信息。
常见变体
分片文本、编码文本、不同提示语境模板。
概念示例
分析输入混入与真实程序语义无关的指令性文本。
适用范围
干扰未经隔离和校验的 LLM 辅助分析流程。
局限
健壮的分析系统会将代码视为不可信数据;可能产生审计噪声。

Mechanism Attack

机制识别干扰
定义
制造看似能解释保护机制、实则不可靠的结构和说明。
常见变体
伪安全警告、特殊文本、假漏洞、占位实现、误导注释。
概念示例
多个自洽但互相冲突的机制线索同时出现。
适用范围
增加自动机制分类和人工初步研判的验证负担。
局限
不能改变真实执行行为,深入动态验证可排除错误线索。

Honeypot

算法蜜罐
定义
加入与业务主题相似但不承担真实结果的诱饵逻辑。
常见变体
静态伪算法、诱饵常量、藏值伴随诱饵、伪逻辑骨架。
概念示例
静态代码出现完整的“评分算法”,但返回值从未进入真实输出。
适用范围
干扰基于名称、常量和局部语义的热点识别。
局限
污点分析和动态数据流可以区分真实结果与诱饵。

Runtime Logic Hiding

运行时藏逻辑
定义
让静态可见逻辑与真正承担结果的运行路径分离。
常见变体
间接恢复、运行桥接、伪装算法骨架。
概念示例
源码中的主体提供合理外观,真实函数体在调用边界进入运行时。
适用范围
减少完整业务算法在单一静态上下文中的暴露。
局限
依赖载荷保护;动态调用链仍可被观察。

Context Exhaustion

上下文膨胀
定义
增加相关性不一的代码和依赖,扩大有效分析窗口。
常见变体
辅助函数膨胀、函数首尾填充、长依赖链。
概念示例
核心函数周围出现大量语法合理但低价值的辅助定义。
适用范围
增加有限上下文模型的筛选、切片和跨文件关联成本。
局限
增加体积;检索增强和程序切片可缩小上下文。
07

PAYLOAD, LICENSE & RUNTIME

载荷、许可与运行环境保护

围绕密文恢复、密钥用途、设备许可和 Native 执行边界建立多层约束。

Payload Tag Validation

密文标签校验
定义
恢复载荷前验证密文及关联数据未被意外或恶意修改。
常见变体
模块标签、函数标签、许可载荷标签。
概念示例
标签不匹配时拒绝返回任何可执行明文。
适用范围
阻止被篡改载荷继续进入重建和执行阶段。
局限
无法阻止拥有有效运行环境的观察者记录合法恢复结果。

Domain-Separated Key Derivation

用途隔离派生
定义
从根秘密为不同用途派生彼此隔离的子密钥。
常见变体
模块域、函数域、许可域、运行秘密域。
概念示例
同一根秘密结合不同用途标签得到不同结果。
适用范围
限制单一子密钥泄露对其他保护用途的影响。
局限
根秘密保管和派生上下文设计仍是关键边界。

Device Binding

设备绑定
定义
把许可或运行秘密与目标设备环境特征关联。
常见变体
单标识绑定、多特征指纹、设备派生密钥。
概念示例
交付数据只能在匹配指纹的目标环境中得到有效秘密。
适用范围
限制离线产物直接复制到未授权设备。
局限
硬件变化、虚拟化和指纹伪造需要容错与续签设计。

Offline License

离线许可
定义
在无持续网络连接时验证签发数据和设备约束。
常见变体
设备 token、有效期许可、离线续签包。
概念示例
运行端本地验证签发内容后再开放受保护能力。
适用范围
客户机房、边缘节点和隔离网络的软件交付。
局限
撤销和时间可信性比在线许可更难处理。

Anti-Debug

反调试检测
定义
检查运行环境中与调试器附加相关的风险信号。
常见变体
进程状态、系统接口、父进程与时序异常检测。
概念示例
Native 初始化阶段汇总多类环境信号并采取策略响应。
适用范围
提高常规动态跟踪和批量调试成本。
局限
平台差异明显,检测可被绕过,也可能产生误报。

Integrity Check

完整性检查
定义
测量关键本地代码区域并与预期值比较。
常见变体
启动测量、周期测量、关键区段测量。
概念示例
运行前验证 Native 代码区域未偏离受控构建结果。
适用范围
检测静态补丁和部分运行时篡改。
局限
测量逻辑本身也处于攻击面,构建协议必须严格一致。

Anti-Dump

反转储限制
定义
利用平台能力限制或干扰进程内存转储。
常见变体
进程属性限制、错误处理收敛、敏感窗口缩短。
概念示例
启动后设置 best-effort 进程策略,减少普通转储路径。
适用范围
提高直接抓取运行时明文和秘密的门槛。
局限
无法对抗拥有更高权限的观察者,且依赖操作系统支持。

Hardened Bootstrap

加固自举
定义
在开放核心 Native 能力前串联环境、完整性与许可检查。
常见变体
失败即拒绝、受控降级、秘密破坏式响应。
概念示例
加载环境检查完整性许可
适用范围
把多个运行时约束汇聚到统一信任入口。
局限
链路复杂且平台相关,需要独立构建和目标环境验收。

IMPLEMENTATION STATUS

本项目中的实现状态

这是本页唯一与当前产品实现直接关联的区域。数量只统计具有独立实现路径和明确名称的策略;参数组合不计入变体。

Production已接入常规构建路径
Conditional依赖前置层级、feature 或受控构建
Research底层已实现,但普通 CLI 尚未开放或不正式交付
已实现技术、变体数量与接线状态
技术独立变体实现路径摘要状态
Identifier Renaming4短混淆、视觉混淆、长随机、Unicode 相似Production
Synthetic Symbol复用 4复用标识符命名策略Production
Opaque Predicate5经典恒真与 4 类 MBA 结构Production
Control Flow Flattening1 + 11基础状态机与 11 个独立增强器Production
Source Junk Code1无副作用垃圾赋值族Production
Inline Calls1安全调用点展开Production
MBA Constants3线性、嵌套、多项式Production
Dataflow MBA2恒零包裹、多项式包裹Production
Reflective Call1运行时属性解析Production
String Protection2自包含恢复、Native/MBA 恢复Production
L2 Junk Instructions55 类栈中性指令形态Conditional
Function Stub2按调用恢复、进程内缓存Conditional
IR Decoy2不可达块、常量诱饵Conditional
Opcode Remap1按构建置换映射Conditional
Module Payload Protection2模块与函数用途域Conditional
Register VM / Randomized ISA1 + 4寄存器机与 4 类布局随机化维度Conditional
Per-Instruction Encryption2位置相关、密钥链Research
Prompt Injection2分片拼接、编码表达Production
Mechanism Attack6警告、特殊文本、假漏洞、占位、编码、注释Production
Honeypot3静态蜜罐、运行时藏值、运行时藏逻辑Conditional
Context Exhaustion2辅助函数膨胀、位置填充Production
Crypto / License4 类用途域载荷、函数、设备与许可边界Conditional
Anti-Debug / Integrity / Anti-Dump平台相关Native 环境探针、测量与 best-effort 限制Research
Hardened Bootstrap1受控自举链Research

Research 能力不代表当前普通构建可直接启用。研发中/受控验证能力,当前不作为正式 hardened wheel 交付。所有技术均用于提高分析与复制成本,不承诺消除所有逆向风险。

FROM CONCEPTS TO ENGINEERING

把技术原理映射到工程边界

了解概念后,可继续查看保护层级、兼容范围、失败策略与交付验证。