发明名称 多路分支结构的识别方法
摘要 本发明属于逆向工程和程序分析领域,具体涉及一种识别多路分支结构的方法,对可行文件进行反汇编,得到该可执行文件的中间代码;从上述中间代码中提取控制流信息,到控制流图;遍历扩展控制流图,识别离散判断分支子图,将上述离散判断分支子图识别多路分支结构。本发明简化了程序控制流图;使反编译后的目标代码结构更加合理,增强目标代码的可读性,便于后继分析,有效地将程序控制流图结构化能够可用于反编译、软测试等设备中。
申请公布号 CN101271398B 申请公布日期 2010.06.09
申请号 CN200710090004.3 申请日期 2007.03.23
申请人 北京大学 发明人 韦韬;王铁磊;毛剑;邹维;李佳静;王伟
分类号 G06F9/45(2006.01)I 主分类号 G06F9/45(2006.01)I
代理机构 北京君尚知识产权代理事务所(普通合伙) 11200 代理人 余长江
主权项 一种多路分支结构的识别方法,其步骤包括:1)对可执行文件进行反汇编,得到该可执行文件的中间代码;2)从上述中间代码中提取控制流信息,得到控制流图;3)遍历控制流图,识别是否存在满足下述条件的离散判断分支子图,若存在,则将离散判断分支子图识别为多路分支结构,否则不存在多路分支结构;所述的条件为:3-1)具有唯一入口节点,该入口节点为分支节点,具有两个直接后继节点;3-2)具有第一类节点,该类节点均为分支节点,有且仅有一个同属第一类节点或入口节点的直接前驱节点,第一类节点和入口节点均对同一参数作不同比较;3-3)具有第二类节点,该类节点具有属于第一类节点或入口节点的直接前驱节点,且第一类节点或入口节点的直接后继节点或属于第一类节点,或属于第二类节点;3-4)第二类节点的个数大于2。
地址 100871 北京市海淀区颐和园路5号