|
题目:
雅宝题库答案:
****此区域为收费内容**** 需支付 1 知识币后可查看,1币=0.01元查看答案
雅宝题库解析:
为了对由C++语言程序编译得到的二进制代码进行安全性检测,需要对二进制代码进行逆向分析。然而国内外有关C++逆向分析的参考资料和技术报告非常稀缺,逆向分析工作者只能凭借汇编语言和C语言的知识对大多数采用面向对象方式实现的软件进行逆向工程,逆向的最终结果存在明显的缺陷,因此有必要对其逆向分析方法与技术进行深入的研究。考虑到二进制可执行代码的组织方式很大程度上依赖于编译器版本,本文主要以微软Visual C++ 2010编译器为基础,研究基于此类编译器的二进制可执行代码的数据逆向分析技术。旨在从二进制可执行代码中识别与恢复其关键数据信息,包括解析PE文件头、识别跳转表、识别虚函数表、识别并恢复类继承层次信息,并尽可能有效而准确地将二进制可执行文件中的数据和代码分离,从而对进一步的二进制代码分析起到辅助以及数据支撑作用。本文主要工作包括:(1)对多条件分支语句按照索引变量分布进行了详细的分类,提出了一种采用程序切片和特征指令匹配相结合的方法,完成了多条件分支语句中的跳转表识别与恢复。(2)综合考虑了C++中三种不同继承模式下的多态类对象生成,提出了一种指令交叉引用、特征指令匹配和程序切片相结合的方法,完成了多态类的虚函数表的识别与恢复。(3)通过打开微软编译器的运行时类型信息编译选项,借用RTTI数据结构信息,提出了一种改进的多态类继承层次的恢复方法,其能够简单且高效地实现多态类的继承层次恢复。基于上述研究成果以及IDA Pro 5.5平台,设计并实现一个针对微软Visual C++ 2010编译器的数据逆向分析原型工具插件集,自动化地完成对上述数据的识别与恢复。本文最后对原型工具进行的测试结果表明,本文所提出的C++数据逆向分析技术和方法是可行的,插件工具输出的结果令人满意。 |
上一篇:氮化硅多孔陶瓷的胶态成型工艺及大气气氛烧结性能研究下一篇:Web服务安全会话与安全策略的研究与实现
|