【技术实现步骤摘要】
基于模糊测试的二进制代码裁剪方法
[0001]本专利技术属于信息安全
,涉及一种基于模糊测试的二进制代码裁剪方法,可用于在没有源代码的情况下计算机可执行文件所包含的二进制代码的进行裁剪,减小可执行文件二进制代码的攻击面。
技术介绍
[0002]计算机程序可以理解为可执行文件,计算机的可执行文件是由二进制代码组成的,二进制代码是指由两个基本字符0,1组成的代码。计算机程序开发过程中,开发者按照需求完成源代码的编写,然后使用编译器和链接器将源代码翻译为二进制代码并生成可执行文件。具体过程为:编译器首先对源代码进行预处理,然后将源代码编译生成汇编代码,再对汇编代码进行优化并生成包含机器代码的对象文件。机器代码是用二进制代码表示的计算机指令的语言。开发者在程序开发过程中通常会调用第三方库函数。而目标文件中的机器代码仅只包含源代码的信息,并不包含第三方库函数的信息,因此目标文件并不能作为计算机可执行文件。最后,链接器将包含第三库信息的机器代码与对象文件所包含的机器代码相结合,生成计算机的可执行文件。
[0003]Linu ...
【技术保护点】
【技术特征摘要】
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)使用具有随机性的变异操...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。