[发明专利]一种基于汇编程序构造语义流程图的方法有效
申请号: | 200810059628.3 | 申请日: | 2008-01-30 |
公开(公告)号: | CN101231598A | 公开(公告)日: | 2008-07-30 |
发明(设计)人: | 赵民德;吴朝晖;胡博;黄凯;赵坚;吕攀 | 申请(专利权)人: | 浙江大学 |
主分类号: | G06F9/45 | 分类号: | G06F9/45 |
代理公司: | 杭州裕阳专利事务所(普通合伙) | 代理人: | 张骁敏 |
地址: | 310027浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 汇编程序 构造 语义 流程图 方法 | ||
技术领域
本发明属于软件逆向工程技术领域,主要是实现了一种基于特定硬件平台(C166平台)的,由汇编程序构造语义流程图的方法。
背景技术
软件逆向工程是分析已有的程序,寻求比源代码更高级的抽象表现形式。一般认为,凡是在软件生命周期内的,将软件某种形式的描述转换为更抽象形式的活动都可称为逆向工程。
语义流程图是人们对解决问题的方法、思路或算法的一种描述。由于语义流程图具有符号规划、画法简单、结构清晰、逻辑性强、便于描述及容易理解的特点,它在描述程序流程的方面具有十分广泛的运用。
由于汇编语言依赖底层硬件,功能抽象层次极低导致了其可读性差的特点,通过一定的技术手段将可读性差的汇编代码转化为可读性好的语义流程图,有利于提高开发效率,降低代码维护成本。
目前,市场上占有率较高的反编译工具主要有SHUDepb,jad,Reflactor等。这些反编译工具绝大多数都是针对特定的高级语言,如VB,C#,Delphi,Java等进行反编译。而对于极其灵活的、多用于编写系统级程序的C语言的反编译工作,目前还没有非常成熟的工具。尤其是对于某些特定的处理芯片开发的汇编语言,如C166,HCS12等平台的汇编语言,将其反编译成C语言的难度更大。同时,多数反编译工具的分析结果不以语义流程图形式展示,仍然没有解决可读性较差的问题。
发明内容
本发明要解决现有反编译工具存在的缺陷,提供一种简单,快速的基于C166硬件平台的汇编程序构造语义流程图的方法。
本发明采用的技术方案为:一种基于汇编程序构造语义流程图的方法,其特征在于:该方法包括:
将所有汇编指令分为关键流程指令与非关键流程指令两种类型;
通过核心语句判定和相邻操作数判定,将汇编指令聚合成不同的汇编指令块;由汇编指令块生成流程图语义块;
将流程图语义块进行连线,绘制流程图。
进一步的,所述方法基于C166硬件平台。
进一步的,所述核心语句指能够影响C166平台上PSW寄存器,并具有实际计算能力的指令;所述相邻操作数判定指以核心语句为中心,同时顺序和逆序搜索具有与核心语句相同操作数的非核心语句,直至搜索到有新的核心语句或无相邻的操作数为止,将遍历到的汇编指令聚合成不同的汇编指令块。
更进一步的,所述非核心语句包括赋值,读取等指令。
进一步的,具体包括如下步骤:
1)建立C166跳转、函数调用返回类指令集合J;
2)搜索C166汇编程序,将属于指令集合J的C166指令加入到关键流程指令集合K;
3)根据K中跳转类指令的操作数,计算这些跳转指令的目标地址;
4)读取目标地址的指令,加入关键流程指令集合K;
5)对于K中的每一条跳转类指令C(不包括跳转目标指令),执行以下处理:判断是否为无条件跳转指令(跳转指令的第一操作数为cc_UC),若条件成立,则将指令C加入到已处理指令集合S,并进入7);若条件不成立,则记录决定跳转与否的C166状态寄存器(PSW)的状态,并逆序搜索与C最近的,有能力改变该PSW的核心语句X;
6)记录X的操作数,顺序和逆序遍历具有操作数传递关系的非核心语句,直至遇到新的核心语句,或无相邻操作数,并将所有遍历到的语句加入已处理指令集合S,所述传递关系定义如下:在顺序搜索时,该参数与顺序下一句源操作数相同;逆序搜索时,该参数与逆序上一句目标操作数相同;
7)根据汇编指令块的核心语句确定语义流程图块的语义,生成对应的语义流程图块;
8)对于尚未处理的指令,从目标汇编程序起始位置顺序搜索核心语句X,对于每次遇到的核心指令,重复6的步骤,并将遍历到的汇编指令聚合成汇编指令块,生成语义流程图块;
9)对于余下的指令,每一条汇编指令生成一个语义流程图块;
10)将语义流程图块进行连线,绘制流程图。
下面对本发明作进一步的描述:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学,未经浙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810059628.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:喷墨打印设备和喷墨打印方法
- 下一篇:高性能销钉式擒纵机构