基于模糊测试的二进制代码裁剪方法技术

技术编号:33533255 阅读:21 留言:0更新日期:2022-05-19 02:08
本发明专利技术提出了一种基于模糊测试的二进制代码裁剪方法,用于解决现有技术中存在的攻击面裁剪度低的技术问题,实现步骤为:(1)获取待裁剪的二进制代码及其测试用例集合;(2)基于模糊测试方法构建样本集合;(3)获取待裁剪的二进制代码的裁剪结果。本发明专利技术使用基于模糊测试的方法构建待裁剪二进制代码的样本集,避免了现有技术将混淆技术增加的冗余代码加入裁剪后的二进制代码的问题,减小了裁剪得到的二进制代码总量,从而减小了裁剪后二进制代码的攻击面,与现有技术相比,在保证健壮性的前提下,有效提高了攻击面裁剪度。有效提高了攻击面裁剪度。有效提高了攻击面裁剪度。

【技术实现步骤摘要】
基于模糊测试的二进制代码裁剪方法


[0001]本专利技术属于信息安全
,涉及一种基于模糊测试的二进制代码裁剪方法,可用于在没有源代码的情况下计算机可执行文件所包含的二进制代码的进行裁剪,减小可执行文件二进制代码的攻击面。

技术介绍

[0002]计算机程序可以理解为可执行文件,计算机的可执行文件是由二进制代码组成的,二进制代码是指由两个基本字符0,1组成的代码。计算机程序开发过程中,开发者按照需求完成源代码的编写,然后使用编译器和链接器将源代码翻译为二进制代码并生成可执行文件。具体过程为:编译器首先对源代码进行预处理,然后将源代码编译生成汇编代码,再对汇编代码进行优化并生成包含机器代码的对象文件。机器代码是用二进制代码表示的计算机指令的语言。开发者在程序开发过程中通常会调用第三方库函数。而目标文件中的机器代码仅只包含源代码的信息,并不包含第三方库函数的信息,因此目标文件并不能作为计算机可执行文件。最后,链接器将包含第三库信息的机器代码与对象文件所包含的机器代码相结合,生成计算机的可执行文件。
[0003]Linux系统上的可执行文件本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于模糊测试的二进制代码裁剪方法,其特征在于,包括如下步骤:(1)获取待裁剪的二进制代码及其测试用例集合:将裁剪的二进制代码P的text段初始化为图G=(O,E),并将该二进制代码P包含的N个可以执行的计算机文件S={s1,s2,...,s
n
,...,s
N
}作为P的测试用例集合,其中,N≥20,s
n
表示第n个测试用例,O表示包括J个基本块的集合,O={o1,o2,...,o
j
,...,o
J
},J≥2,o
j
表示第j个基本块,E表示包括T个边的集合,E={<o
a
,o
b
>|o
a
,o
b
∈O,0≤a≤J,0≤b≤J,a≠b,o
a
执行过后,可能立即执行o
b
},<o
a
,o
b
>表示第a个基本块与第b个基本块形成的边,T≥1;(2)基于模糊测试方法构建样本集合I:(2a)对待裁剪的二进制代码P中text段的每个基本块o
j
进行动态二进制插桩,并使用插桩后的二进制代码执行每个测试用例,记录测试用例执行过的边,将执行过的边组成测试用例的执行路径,最后将N个测试用例的执行路径合并为执行路径集合L;(2b)使用具有随机性的变异操...

【专利技术属性】
技术研发人员:孙聪丁铎马建峰
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:

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

1