《表1 新旧条件异常代码的关键数据对比》
而改进后的条件异常代码中,一是内存访问目标地址取值具有多元性;二是使用整个标志寄存器参与内存访问目标地址运算,而不是仅使用受原分支条件污染的标志位参与运算;三是引入了分支输入参与运算,使污染分析更为困难;四是内存访问的目标地址随分支输入的变化而每次产生变化,而在Lin和贾春福等的工作中,目标内存地址在分支输入整个取值变化范围内仅产生一次变化。在使用_try-_except结构替代if-else结构,使用56~60 k B之间的4 k B地址作为异常访问地址,使用程序加载地址作为正常访问地址的例子下,本文方法与文献[17]和文献[13]中的条件异常代码产生的关键数据对比如表1所示。即新的条件异常代码构造方法中,内存访问地址的变化更加随机,且地址取值因输入的不同而变化;相比旧构造方法中地址值仅在分支条件取值产生变化时而不同的状态,新构造方法能够产生更加随机的地址值,因此能够更好地对抗约束条件获取和代码混淆位置的定位,提升了代码混淆的性能。
图表编号 | XD00197575600 严禁用于非法目的 |
---|---|
绘制时间 | 2020.12.15 |
作者 | 耿普、祝跃飞 |
绘制单位 | 信息工程大学、信息工程大学 |
更多格式 | 高清、无水印(增值服务) |