[发明专利]一种基于复杂网络的脏数据传播路径发现方法在审
| 申请号: | 201310750367.0 | 申请日: | 2013-12-31 |
| 公开(公告)号: | CN104731705A | 公开(公告)日: | 2015-06-24 |
| 发明(设计)人: | 胡昌振;赵小林;郝刚;薛静锋;马锐 | 申请(专利权)人: | 北京理工大学 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36 |
| 代理公司: | 北京理工大学专利中心 11120 | 代理人: | 仇蕾安 |
| 地址: | 100081 *** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 复杂 网络 数据 传播 路径 发现 方法 | ||
技术领域
本发明涉及一种基于复杂网络的脏数据传播路径发现方法,属于软件安全技术领域。
背景技术
在基于复杂网络的研究方法中,有很多概念和方法可用来反映网络的相关统计特性,其中最重要的有节点的度分布。在软件网络中,一个节点的度可以引申为该类在软件中被其他类调用的次数。因此,从直观上看,如果一个类被调用的次数越多,那么它的重要性就越高。但是,软件网络一般都是加权有向网络,单单从“度”上来衡量类的重要性并不准确。例如,对于一个具有特殊功能的类,本身它的度并不大,但是若将其从软件中去除就可能会直接导致该软件不可运转。
通过对无标度网络的研究知道,一般节点发生缺陷的情况有两种:一种是随机节点设计缺陷,也就是软件网络中存在一部分随机节点具有设计缺陷,但这部分节点的功能缺失一般并不影响软件整体的正常运转;二是重要度节点的设计缺陷,即软件网络中节点重要度比较高的节点有设计缺陷。在软件网络中,由于度分布呈现幂率分布的非均匀特性,这使得这类节点被调用的次数很高,而且它们占软件网络中所有节点个数不到5%,却实现了软件最主要的功能。因此,一旦这些类的功能出现缺失,有可能就会直接导致系统崩溃。鉴于此,如果在软件开发初期和软件测试过程中对这些极少数的节点重点对待的话,那么不仅可以缩短软件开发测试周期,而且还能使软件的质量有所提高。因此,如何更有效且准确地找到这些重要的节点便是当前要做的工作。
前人在IDA反汇编的基础上进行反编译的相关研究,其本身提供了丰富的反汇编结果信息和数据表示定义,因此中间语言的实现可以不必像符号执行那样模拟汇编语义的执行,也不需像SSL进行比较完整和复杂的指令系统的描述。本文中的中间语言实现,主要根据汇编指令的语义和IDA的反汇编结果信息,通过构建一个相对简单的指令语义描述字典,通过相应的查找匹配,进而实现汇编语言到中间语言的转换。主要涉及的内容有:中间语言的定义,中间语言的语义字典描述,具体的翻译实现。
现有的脏数据发现技术不够全面,没有一套能够贯穿软件运行整个周期的方法。因此,一旦这些类的功能出现缺失,有可能就会直接导致系统崩溃。鉴于此,如果在软件开发初期和软件测试过程中对这些极少数的节点重点对待的话,那么不仅可以缩短软件开发测试周期,而且还能使软件的质量有所提高。因此,如何更有效且准确地找到这些重要的节点便是当前要做的工作。且现有发现脏数据传播技术全部基于源代码,不支持对二进制程序的发现。
发明内容
本发明提供一种基于复杂网络的脏数据传播路径发现方法,能够对没有提供源码的二进制程序进行翻译,并对得到的结果进行处理,挖掘生成有用信息,以期于能够在软件运行中发现缺陷、提高软件的可靠性。
实现本发明的技术方案如下:
一种基于复杂网络的脏数据传播路径发现方法,包括如下步骤:
第一步:使用IDA的插件Hex-Rays对二进制文件进行反编译,得到类似C语言的中间代码;
第二步:使用GNU编译器提供的工具对第一步生成的中间代码进行数据搜集,捕获函数调用路径,在得到路径后,使用Addr2line将函数地址解析为函 数名,之后对跟踪数据进行处理和精简,并生成矩阵格式;最后使用Graphviz生成函数调用关系图;
第三步:解析上一步骤得到的函数调用关系图,得到节点、边、权重信息,并且计算得到节点度,建立带关键节点的复杂网络图;
第四步:根据复杂网络图的幂率分布的非均匀特性,结合上一步生成的复杂网络图,找出与构造脏数据相关的点以及调用频率很高的点,关键节点用不同的颜色进行标注,脏数据的路径用特殊的颜色标出,从而发现软件缺陷隐患。
第三步建立复杂网络图采用以下方法,具体步骤如下:
(1)将第二步获得的二进制文件所有函数作为网络中的节点;
(2)根据节点间是否有关系建立无权网络图;
(3)计算节点间的相关度;
(4)根据相关度计算权值;
(5)建立加权网络图。
本发明的有益效果:
本发明基于反汇编工具IDA进行研究,在对没有提供源码的二进制程序进行翻译,并对得到的结果进行处理,挖掘生成有用信息。以期于能够在软件运行中发现缺陷、提高软件的可靠性。
本技术的重点在于分析的对象为二进制文件而非源代码,所以前提准备需要将二进制代码转化为源代码的类似格式。其次,本选题创新点在于将复杂网络的知识分析软件函数调用等关系,极大程度上利于软件缺陷的发现。
附图说明
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京理工大学;,未经北京理工大学;许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310750367.0/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置





