1. 研究目的与意义、国内外研究现状(文献综述)
课题的意义:随着社会的进步,计算机技术的发展,计算机软件产业也随之发展。
关于计算机软件的破解、移植等行为越来越多,通过反汇编工具等逆向分析技术,可以对软件代码进行反汇编。
反汇编技术将二进制代码反汇编成为更易阅读的汇编代码arm处理器是一款32位设计的处理器,但同时也配备16位指令集,arm微处理器凭借其体积小、低功耗、低成本、高性能等特点,广泛运用于工业控制、无线通信等各个领域,因此研究基于arm处理器的反汇编技术,即针对arm指令集进行反汇编的技术,具有重要的研究意义和应用价值。
2. 研究的基本内容和问题
研究的目标:将arm的可执行二进制文件反汇编为便于阅读的汇编文件。
研究的内容:1 arm指令集与可执行bin文件的特点。
2 分离并标识二进制机器码的指令与数据。
3. 研究的方法与方案
研究方法:1文献研究法:搜集整理相关研究资料,为研究做准备;2比较分析法:比较、分析各种反汇编的方法,找出最适合最佳的方法;3实践法:把相关的算法动手实践。
4 个别探究法:将特殊典型的指令进行详细研究,找出最恰当的处理方式。
技术路线:确定选题的背景与意义->设计输入模块->设计指令数据分离模块->设计反汇编模块->设计输出模块->实现程序功能->测试程序实验方案:此程序可以从大体上分为四个模块:1 输入模块:读取目标二进制代码对于32位指令,一次读取4个字节,对读进来的内容进行处理与组织,方便后续的操作。
4. 研究创新点
特色或创新之处①分析机器码程序时一般使用debug或patch中的反汇编功能,然后进行分析。
但是, debug和patch不能区分指令和数据, 也不能恢复数据的类型和定义,而此课题设计的反汇编程序可以区分指令和数据。
②若采用顺序扫描策略反汇编,也很难区分出指令和数据,把数据也反汇编成指令导致代码混乱,而本程序通过分析机器码中的指令控制流,可以分离指令和数据。
5. 研究计划与进展
研究计划及预期进展:研究计划:1月9日-1月16日:搜集资料,撰写开题报告;研究arm指令集与bin文件特点。
1月16日-1月24日:设计分类arm指令。
1月24日-1月31日:设计全局变量。
