基于侧信道的反汇编器与多功能攻击框架
在当今的数字世界中,嵌入式设备的安全性和逆向工程变得越来越重要。侧信道反汇编器和多功能攻击框架为我们提供了新的视角和工具来应对这些挑战。
侧信道反汇编器
侧信道反汇编器是一种基于侧信道信息来恢复微控制器指令流的工具。它通过分析处理器的功率泄漏等侧信道信息,实现对程序的识别和逆向工程。
程序分析与识别率
在测试数据生成过程中,我们会对可能影响目标指令分布的因素进行随机化处理。但实际代码中的指令和数据分布与测试数据往往不同,这会导致模板攻击的识别率下降。例如,在执行随机指令时,如果不考虑文件寄存器和工作寄存器的内容,数据依赖性就会显现出来。对于随机代码,模板的最佳识别率仅为35%,而测试集的预期识别率为47%。以KeeLoq加密算法为例,对其前500条指令进行测量,使用Fisher - LDA方法,最高识别率为40.7%,而测试集类似指令的预期识别率约为60%。
为了提高识别率,我们采用了马尔可夫建模和维特比算法等方法。通过对处理器进行马尔可夫建模,结合源代码分析的结果,我们可以应用维特比算法和前向 - 后向算法来计算最可能的指令状态序列和具有最高后验概率的指令。在KeeLoq加密算法的例子中,维特比算法将识别率提高了17个百分点,达到了58%,而前向 - 后向算法的识别率最高为52%。
以下是不同方法在不同场景下的识别率对比表格:
| 场景 | PCA | Mean - PCA | Fisher - LDA | 维特比算法后 | 前向 - 后向算法 |
| — | — | — | — | — | — |
| 随机代码 | - | - | 35% | -
超级会员免费看
订阅专栏 解锁全文
1万+

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



