APP下载

基于API依赖关系的代码相似度分析

2013-08-21姚新磊庞建民

计算机工程 2013年1期
关键词:分析

姚新磊,庞建民,岳 峰,余 勇

(信息工程大学信息工程学院,郑州 450002)

1 概述

代码相似度分析是检测源代码窃取和恶意代码变种的主要方式,其本质上依赖于对代码的描述和理解。现有对代码特征的描述有很多种,如特征码、指令序列、控制流图、API序列[1]、API依赖图[2-4]等,不同的描述方式代表着对代码实际逻辑的不同理解方式。但程序理解本身就是 NP问题[5],各种理解在实现上只能更大程度地接近代码的实际逻辑,为此一般要在描述上采取一定的精简策略。

正如多态引擎[6]在指令级采用垃圾指令插入、等价指令替换、指令顺序重排、寄存器随机等方式实现指令级特征的混淆,针对目前较为流行的API级行为分析,一些API级特征的混淆方式开始大量使用,如API噪声[7]、API顺序重排和等价API替换等。

针对此类混淆,文献[8]提出一种基于行为依赖的恶意代码相似度比较方法,首先在依赖图的构建阶段采用虚拟节点消除API序列重排混淆;然后在依赖图的预处理阶段手工构建等价API序列集合,在分析中若发现其中一个序列则,在等价序列集合中寻找统一表示的序列将其替换;最后在污点传播中对产生了污点但没有进行传播,或进行了传播但在传播过程中没有引起系统状态改变的噪声API进行消除。该方法有效解决一些 API级特征的混淆方式对相似度分析的影响,但也存在如下改进空间:

(1)对 API噪声的处理依赖于改变系统状态的函数集合,若一个API调用使用了污点数据而且改变了系统状态,则不被认为是噪声API,就不会从依赖图中删除。……

登录APP查看全文

猜你喜欢

分析
禽大肠杆菌病的分析、诊断和防治
隐蔽失效适航要求符合性验证分析
电力系统不平衡分析
电力系统及其自动化发展趋势分析
经济危机下的均衡与非均衡分析
对计划生育必要性以及其贯彻实施的分析
GB/T 7714-2015 与GB/T 7714-2005对比分析
网购中不良现象分析与应对
中西医结合治疗抑郁症100例分析
伪造有价证券罪立法比较分析