面向ARM体系结构的代码逆向分析关键技术研究
Research on Key Technology of Binary Reverse Analysis for ARM Architecture
ARM微处理器广泛运用于嵌入式系统中,针对ARM二进制代码的逆向分析对于以ARM为核心的嵌入式设备的解剖和安全缺陷分析具有重要意义.本文着重研究面向ARM体系结构的代码逆向分析的关键技术.论文提出了一种基于代码语义属性分析的二进制解析模型,针对ARM指令系统特点和程序编译后代码特征,从指令和指令序列两种粒度级别分别讨论了代码语义属性分析方法;设计了一种基于静态单一赋值(SSA)的中间语言BRIL,给出了中间语言BRIL的指称语义;针对从汇编表示到中间表示的代码语义抽象问题,通过分析影响ARM指令语义的因素,构建了指令语义字典描述模型,设计了基于语义字典的代码变换算法;针对中间表示中的代码冗余问题,提出了基于SSA表示的表达式传播、死代码删除和表达式代数化简三种代码变换方法;设计并实现了二进制代码逆向分析原型工具CodeSemantics Frontier.测试结果表明,CodeSemantics Frontier能够快速有效地生成脱离ARM指令集的BRIL中间代码表示,为目标代码在高级语义抽象层次上的分析利用提供良好的支撑.
- 作者:
- 殷文建
- 学位授予单位:
- 解放军信息工程大学
- 专业名称:
- 计算机软件与理论
- 授予学位:
- 硕士
- 学位年度:
- 2010年
- 导师姓名:
- 蒋烈辉
- 中图分类号:
- TP332
- 关键词:
- ARM体系结构;代码逆向分析;代码语义属性;静态单一赋值;中间语言;代码变换
- ARM Architecture;Binary Reverse Analysis;Code Semantics Attribute;Static Single Assignment;Intermediate Language;Code Transformation