一种复用代码库构建方法、复用代码快速溯源方法及系统技术方案

技术编号:14014743 阅读:122 留言:0更新日期:2016-11-17 20:32
本发明专利技术公开了一种复用代码库构建方法、复用代码快速溯源方法及系统。本系统包括预处理模块、代码库构建模块与函数溯源模块;预处理模块,获取每一样本的汇编代码,并提取每一汇编代码中的函数;以及依据每一函数中的跳转指令与跳转地址将该函数拆分为若干代码块并计算每一代码块的simhash值;代码库构建模块,构建simhash值索引对应的代码块,代码块索引包含该代码块的函数,函数索引包含该函数的样本的三级倒排索引;函数溯源模块,用于代码库中检索该待溯源函数的相似代码块,每一相似代码块对应的潜在相似函数,然后根据相似代码块间的跳转关系与确定相似函数是否与待溯源函数相似。本发明专利技术提升了同源判定工作的自动化程度。

【技术实现步骤摘要】

本专利技术涉及逆向分析与恶意代码分析领域,具体涉及一种基于simhash与倒排索引的复用代码库构建方法、快速溯源方法及系统。
技术介绍
代码复用通常以函数为基本单位,即使被编译器高度优化仍然保留大量函数整体,所以本文以函数为单位进行溯源与相似判定更加符合复用场景。恶意代码同源判定的主要依据是恶意代码作者在不同恶意代码中对个人编写代码的复用,如Sasser与Netsky、Flame与Gauss等的同源判定均依据它们共享的特殊函数。但是,为提高开发速度,恶意代码作者经常复用他人编写的公开或半公开代码,如Chthonic是一款在Zeus源码基础上修改开发的恶意代码。同时据报告,Equation APT(Advanced Persistent Threat,高级持续性威胁)攻击中使用的一个样本,被判定属于Zlob家族,说明APT攻击组织也会复用开源代码。为执行需要,编译器在编译时通常插入大量代码。经测试,当编译仅有一个函数的C语言代码时,Windows下的VC6.0编译器插入了103个函数,Linux下的GCC4.7.2编译器插入了18个函数。不同的编译器插入的函数与函数的插入位置均不同,本文档来自技高网...
一种<a href="http://www.xjishu.com/zhuanli/55/201610474461.html" title="一种复用代码库构建方法、复用代码快速溯源方法及系统原文来自X技术">复用代码库构建方法、复用代码快速溯源方法及系统</a>

【技术保护点】
一种复用代码库构建方法,其步骤为:1)获取每一可执行程序样本的汇编代码;2)提取每一汇编代码中的函数,并依据每一函数中的跳转指令与跳转地址将该函数拆分为若干代码块并保存到代码库中;3)计算每一代码块的simhash值;4)构建simhash值与代码块、代码块与函数、函数与样本间的三级倒排索引。

【技术特征摘要】
1.一种复用代码库构建方法,其步骤为:1)获取每一可执行程序样本的汇编代码;2)提取每一汇编代码中的函数,并依据每一函数中的跳转指令与跳转地址将该函数拆分为若干代码块并保存到代码库中;3)计算每一代码块的simhash值;4)构建simhash值与代码块、代码块与函数、函数与样本间的三级倒排索引。2.如权利要求1所述的方法,其特征在于,所述三级倒排索引为:simhash值索引对应的代码块,代码块索引包含该代码块的函数,函数索引包含该函数的样本。3.如权利要求1或2所述的方法,其特征在于,依据调用指令与调用地址提取汇编代码中的函数。4.一种复用代码快速溯源方法,其步骤为:1)依据跳转指令与跳转地址将待溯源函数拆分为若干代码块,并计算每一代码块的simhash值;2)对于每一代码块,在代码库中搜索与该代码块的simhash值的汉明距离在设定距离内的代码块作为该代码块的相似代码块;3)在代码库中搜索每一相似代码块对应的潜在相似函数,然后依据潜在相似函数与该待溯源函数的相似代码块数量为对应潜在相似函数赋予一权值;然后筛选出权值超过设定阈值的潜在相似函数作为相似函数;4)根据相似代码块间的跳转关系与确定该相似函数是否与待溯源函数相似;如果相似,则该相似函数为复用代码。5.如权利要求4所述的方法,其特征在于,在代码库中搜索步骤4)确定的相似函数所在的样本,返回该相似函数及其所在的样本。6.如权利要求4所述的方法,其特征在于,所述代码库包括多个代码块及其simhash值,并构建simhash值索引对应的代码块,代码块索引包含该代码块的函数,函数索引包含该函数的样本的三级倒排索引。7.如权利要求4或5或6所述的方法,其特征在于,计算该simhash值的方法为:71)创建一个N位的向量,并初始化为0;72)对标准化的代码块进行分词处理,分词为2-gram标准化的指令序列;73)为每个分词赋予一权值,将分词的频率做为基础权值,对包含调用指令分词的权值加倍;74)...

【专利技术属性】
技术研发人员:张永铮乔延臣云晓春
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1