基于侧信道的反汇编器与多功能攻击框架
侧信道反汇编器相关
在程序分析过程中,测试数据生成时虽对可能影响目标指令分布的因素进行了随机化处理,但实际代码中的指令和数据分布与测试数据不同。例如,实际代码中像 0x00 或 0xFF 这样的数据字会比均匀分布的数据中更多。这种数据分布的差异会导致模板攻击的识别率下降。
以随机代码的 1000 个示例为例,每次使用 750 个训练示例计算子空间,1750 个用于模板。在这种情况下,模板的最佳识别率仅为 35%,而测试集中类似指令的预期识别率为 47%。对于 KeeLoq 加密算法的前 500 条指令的实际代码,使用 M = 19 和 Fisher - LDA 时,最高识别率达到 40.7%,而测试集中类似指令的预期识别率约为 60%。
| 代码类型 | 识别率情况 |
|---|---|
| 随机代码示例 | 最佳识别率 35%(测试集预期 47%) |
| KeeLoq 算法前 500 条指令 | 最高识别率 40.7%(测试集预期 60%) |
在构建完整的隐马尔可夫模型(HMM)后,可以应用维特比算法和前向 - 后向算法来计算最可能的指令状态序列以及后验概率最高的指令。对于 KeeLoq 加密算法,维特比算法可将识别率提高 17 个百分点,达到 58%,而前向 - 后向算法的识别率最高为 52%。
超级会员免费看
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



