摘要:
嵌入式设备固件代码的逆向解析有利于遗产系统的升级维护及关键电子设备的功能解读和安全防护,研究固件代码逆向解析技术具有重要意义。 论文提出了一种针对Linux固件的逆向解析识别框架;研究了固件的一般结构和三大模块的运行机制、实现机制、存储介质相关性及其相互之间的关系;采用局部特征和分布特征相结合的方法搜索可疑模块并对模块区间进行排除性剥离;针对逆向分析过程中存在固件获取不完整性和固件读取出错的问题,采用多级特征抽取方法,最大限度的获取文件系统的总体性信息;通过对文件进行细粒度还原,解决了一般还原过程中由于粒度过大导致数据还原率低的问题;对还原后仍然有块缺失的文件进行穷举式文件纠错还原,按照滤错、纠错的机制实现文件的容错还原,保证还原文件的完整性;针对特征不易提取以及易发生碰撞的问题,提出了二进制通用特征抽取算法;针对匹配的过程中存在库规模较大,匹配速度慢的问题,使用最小完美哈希算法实现特征快速匹配,并通过添加辅助特征实现了特征匹配的优化。 设计并实现了固件解析的原型系统,并针对多款Linux固件对该系统进行了测试,测试结果表明能有效的对Linux固件进行解析。
展开