代码混淆
代码混淆类型:布局混淆、预防混淆、控制混淆、数据混淆(布尔混淆、数字混淆、字符串、undefined和null)
控制混淆
不透明谓词
PT恒真,A执行完,必定会执行B,但是链路上增加PT破坏原有结构
PT恒真,但增加Bug代码段,永远不会生效,但攻击者不知道,增加判断量
P?不确定,但B和B’代码功能一样,形式不同,无论哪个条件,流程效果一样,攻击者不知道,增加攻击者判断量。
冗余代码
加入冗余代码,对程序效果不影响,但增加阅读难度。可结合不透明谓词。
控制流平坦化
将正常代码写法中的条件分支、循环条件等分层嵌套的复杂逻辑,修改为统一分发器,所有逻辑都通过分发器,这样消除了正常代码中的执行顺序逻辑,无法线性阅读整个代码逻辑和流程。如:switch语法
俗人昭昭,我独昏昏。俗人察察,我独闷闷。