计算机研究与发展
計算機研究與髮展
계산궤연구여발전
JOURNAL OF COMPUTER RESEARCH AND DEVELOPMENT
2013年
11期
2418-2428
,共11页
马金鑫%李舟军%忽朝俭%张俊贤%郭涛
馬金鑫%李舟軍%忽朝儉%張俊賢%郭濤
마금흠%리주군%홀조검%장준현%곽도
类型重构%寄存器抽象语法树%中间语言%循环变量%别名分析
類型重構%寄存器抽象語法樹%中間語言%循環變量%彆名分析
류형중구%기존기추상어법수%중간어언%순배변량%별명분석
type construction%register abstract syntax tree%intermediate language%loop count%alias analysis
重构二进制代码中的类型信息对逆向工程、漏洞分析及恶意代码检测等方面具有重大的意义,由于类型信息在编译过程中被移除,且二进制代码中的低级抽象难以理解,因此类型重构一直被认为是恢复高级抽象遇到的困难问题之一,现有的大多工具对类型重构的准确度不够高,提出一种保守的类型重构方法,针对类型重构引入一种简单的中间语言,基于这种中间语言构造寄存器抽象语法树,并使用寄存器抽象语法树部分解决了基址指针别名问题,可有效收集基本类型和结构体类型的类型约束信息.提出一种判断二进制代码中的循环结构及识别循环变量的方法,可有效收集数组类型的约束信息,并据此生成类型约束,然后通过处理类型约束来重构最终的类型.使用CoreUtils中的15个程序作为测试用例,将该方法与IDA Pro进行对比实验.实验结果表明提出的方法不仅可以高效地重构数据类型,而且在结构体类型重构方面可恢复比IDA Pro多达5倍的数据.对这些数据的人工验证与分析表明,使用该方法重构的类型准确率高.
重構二進製代碼中的類型信息對逆嚮工程、漏洞分析及噁意代碼檢測等方麵具有重大的意義,由于類型信息在編譯過程中被移除,且二進製代碼中的低級抽象難以理解,因此類型重構一直被認為是恢複高級抽象遇到的睏難問題之一,現有的大多工具對類型重構的準確度不夠高,提齣一種保守的類型重構方法,針對類型重構引入一種簡單的中間語言,基于這種中間語言構造寄存器抽象語法樹,併使用寄存器抽象語法樹部分解決瞭基阯指針彆名問題,可有效收集基本類型和結構體類型的類型約束信息.提齣一種判斷二進製代碼中的循環結構及識彆循環變量的方法,可有效收集數組類型的約束信息,併據此生成類型約束,然後通過處理類型約束來重構最終的類型.使用CoreUtils中的15箇程序作為測試用例,將該方法與IDA Pro進行對比實驗.實驗結果錶明提齣的方法不僅可以高效地重構數據類型,而且在結構體類型重構方麵可恢複比IDA Pro多達5倍的數據.對這些數據的人工驗證與分析錶明,使用該方法重構的類型準確率高.
중구이진제대마중적류형신식대역향공정、루동분석급악의대마검측등방면구유중대적의의,유우류형신식재편역과정중피이제,차이진제대마중적저급추상난이리해,인차류형중구일직피인위시회복고급추상우도적곤난문제지일,현유적대다공구대류형중구적준학도불구고,제출일충보수적류형중구방법,침대류형중구인입일충간단적중간어언,기우저충중간어언구조기존기추상어법수,병사용기존기추상어법수부분해결료기지지침별명문제,가유효수집기본류형화결구체류형적류형약속신식.제출일충판단이진제대마중적순배결구급식별순배변량적방법,가유효수집수조류형적약속신식,병거차생성류형약속,연후통과처리류형약속래중구최종적류형.사용CoreUtils중적15개정서작위측시용례,장해방법여IDA Pro진행대비실험.실험결과표명제출적방법불부가이고효지중구수거류형,이차재결구체류형중구방면가회복비IDA Pro다체5배적수거.대저사수거적인공험증여분석표명,사용해방법중구적류형준학솔고.