保护架构
不同层次改变代码还原问题的不同部分。
先分析,再转换#
Complexer 建模控制流、数据依赖、异常和调用关系,并据此转换程序。方法增长预算限制代码扩张,流水线跟踪变更影响的状态。
各层的职责#
- 常量加密改变值的存储与恢复方式。
- 调用间接化改变方法与构造函数引用的表示。
- 控制流与数据流转换增加恢复清晰源代码结构的难度。
- 方法虚拟化或本机编译改变所选方法的执行方式。两者是有意选择的替代策略,并非每个方法都依次经过两者。
有选择地使用保护#
标准流水线与可选的执行层模式面向不同需求。虚拟化和本机编译均须明确选择,性能关键方法需要单独的策略。
保护增加理解和修改应用所需的工作量,不会让客户端代码在数学上不可分析,也不能替代服务器授权与正确的秘密管理。