[发明专利]一种漏洞挖掘方法及装置在审
申请号: | 201810673376.7 | 申请日: | 2018-06-26 |
公开(公告)号: | CN109032927A | 公开(公告)日: | 2018-12-18 |
发明(设计)人: | 蒋洪伟 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 郭润湘;李娟 |
地址: | 518044 广东省深*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 测试样本 目标函数 代码路径 漏洞挖掘 目标程序 插桩 计算机技术领域 漏洞报告 循环测试 内存 存储 覆盖 记录 | ||
1.一种漏洞挖掘方法,其特征在于,包括:
运行目标程序时,对所述目标程序中确定出的目标函数进行插桩;
根据预设的变异算法,对确定的测试样本进行变异;
将变异后的测试样本输入到所述目标函数,若所述目标函数处理所述变异后的测试样本时出现异常,则存储所述变异后的测试样本,并生成漏洞报告,若所述目标函数处理所述变异后的测试样本时未出现异常,则记录所述变异后的测试样本作为输入时所述目标函数执行的代码路径,以使根据所述代码路径,对所述变异后的测试样本再次进行变异,使得再次变异后的测试样本作为输入时所述目标函数执行不同的代码路径。
2.如权利要求1所述的方法,其特征在于,进一步包括:
在所述目标程序中预设位置添加一个区段,并在所述区段中添加汇编代码,其中,所述汇编代码用于实现加载自定义的动态链接库DLL模块,所述DLL模块用于读入变异后的测试样本,并将变异后的测试样本输入到所述目标函数;所述区段的内存属性设置为可读可写可执行。
3.如权利要求2所述的方法,其特征在于,进一步包括:
运行目标程序时,当确定所述目标程序完成初始化后,劫持所述目标程序跳转到所述区段,执行所述区段中添加的汇编代码。
4.如权利要求2所述的方法,其特征在于,所述DLL模块接入预设的模糊FUZZ模块,并所述FUZZ模块的偏移为所述DLL模块中的主函数;所述FUZZ模块用于执行对所述目标程序中确定出的目标函数进行插桩,并根据预设的变异算法,对确定的测试样本进行变异的步骤。
5.如权利要求4所述的方法,其特征在于,进一步包括:
记录所述目标函数出现异常的次数,以及代码覆盖率,其中,所述代码覆盖率表示所述目标函数执行的代码路径对应的代码数量与所述目标程序的总的代码数量的比值。
6.如权利要求1-5任一项所述的方法,其特征在于,对所述目标程序中确定出的目标函数进行插桩,具体包括:
获取在所述目标函数执行前的寄存器环境信息,并在所述目标函数执行完之后,根据获取的执行前的寄存器环境信息,恢复所述目标函数的寄存器环境信息。
7.一种漏洞挖掘装置,其特征在于,包括:
插桩模块,用于运行目标程序时,对所述目标程序中确定出的目标函数进行插桩;
变异模块,用于根据预设的变异算法,对确定的测试样本进行变异;
动态链接库DLL模块,用于将变异后的测试样本输入到所述目标函数,若所述目标函数处理所述变异后的测试样本时出现异常,则存储所述变异后的测试样本,并生成漏洞报告,若所述目标函数处理所述变异后的测试样本时未出现异常,则记录所述变异后的测试样本作为输入时所述目标函数执行的代码路径,以使根据所述代码路径,对所述变异后的测试样本再次进行变异,使得再次变异后的测试样本作为输入时所述目标函数执行不同的代码路径。
8.如权利要求7所述的装置,其特征在于,进一步包括:
添加模块,用于在所述目标程序中预设位置添加一个区段,并在所述区段中添加汇编代码,其中,所述汇编代码用于实现加载自定义的DLL模块,所述DLL模块用于读入变异后的测试样本,并将变异后的测试样本输入到所述目标函数;所述区段的内存属性设置为可读可写可执行。
9.如权利要求8所述的装置,其特征在于,进一步包括:
劫持模块,用于运行目标程序时,当确定所述目标程序完成初始化后,劫持所述目标程序跳转到所述区段,执行所述区段中添加的汇编代码。
10.如权利要求8所述的装置,其特征在于,所述DLL模块接入预设的模糊FUZZ模块,并所述FUZZ模块的偏移为所述DLL模块中的主函数;所述FUZZ模块用于执行对所述目标程序中确定出的目标函数进行插桩,并根据预设的变异算法,对确定的测试样本进行变异的步骤;所述FUZZ模块包括所述插桩模块和所述变异模块。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810673376.7/1.html,转载请声明来源钻瓜专利网。
- 上一篇:软件质量的量化方法及系统
- 下一篇:嵌入式软件构件监测方法