买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:南开大学;先进计算与关键软件(信创)海河实验室;天开宏图(天津)科技有限公司
摘要:本发明提供了一种云边端协同检测克隆代码的方法、装置和存储介质,涉及软件工程技术领域,包括:对两个待比较的可执行文件进行解析筛选出疑似克隆代码对;进行符号执行,获取路径约束特征,进行符号执行期间遵循如下策略:当符号执行运行在某个节点的时间超过第一阈值后,舍弃此分支;当符号执行运行在某个分支时,检测到占用内存空间资源超过第二阈值,舍弃此分支;当符号执行遇到循环结构或者递归调用结构时,只运行一次循环和递归调用的内部代码,再跳出循环和递归;使用特解判断疑似克隆代码对的约束表达式是否等价。本发明通过符号执行技术获取二进制代码新的代码特征,路径约束,从而实现代码语义克隆检测,提升了代码克隆检测准确度。
主权项:1.一种云边端协同检测克隆代码的方法,其特征在于,包括:对两个待比较的可执行文件进行解析,通过函数名判断、函数参数判断以及导入导出符号判断筛选出疑似克隆代码对;对于所述疑似克隆代码对进行符号执行,获取路径约束特征,进行符号执行期间遵循如下策略:当符号执行运行在某个节点的时间超过第一阈值后,暂停本分支的符号执行模拟,同时舍弃此分支;当符号执行运行在某个分支时,检测到占用内存空间资源超过第二阈值,则暂停本分支的符号执行模拟,同时舍弃此分支;当符号执行遇到循环结构或者递归调用结构时,只运行一次循环和递归调用的内部代码,再跳出循环和递归;根据符号执行获得的路径约束特征,每一条函数路径对应一组函数约束,使用特解判断疑似克隆代码对的约束表达式是否等价,若疑似克隆代码对的等价路径数量达到预设值,则判定所述疑似克隆代码对为克隆代码;所述使用特解判断疑似克隆代码对的约束表达式是否等价的步骤,具体包括:提取待比较的两组约束表达式中的整数作为初始种子,将整数和整数附近的整数作为约束表达式的输入,来判断约束表达式是否可满足;如果对于两组约束表达式,高于80%的整数特解的可满足性是相似的,则判定为等价约束,即两组约束表达式对应的路径为等价路径;所述函数名判断,具体包括:解析两个待比较的可执行文件,得到对应的符号表,筛选出函数,得到函数签名,其中,所述函数签名包括函数名称,函数参数和函数返回值;通过反汇编计算获取代码的反汇编代码和程序控制流图,只对控制流图中节点大于5个的函数进行后续的判断;判断函数的名称是否相同:如果两个函数具备相同的函数名,加入待比较函数列表;所述函数参数判断,具体包括:检测参数个数是否相同:具备相同参数个数的函数加入待比较函数列表,如果两个函数的参数个数不同,直接舍弃此函数对;所述导入导出符号判断,具体包括:根据可执行文件的符号表中的导入符号和导出符号定位至对应函数,通过比对函数名称的Jaccord相似度,将高于相似度阈值的代码对认定为疑似克隆代码对;所述符号执行,具体包括:获取符号表以及符号表中函数签名;从函数签名中获取待分析函数的参数个数和种类;根据函数参数的个数和使用的空间,构造具有相同存储空间的形式化参数,将所述形式化参数作为函数级别的符号执行的初始化条件。
全文数据:
权利要求:
百度查询: 南开大学 先进计算与关键软件(信创)海河实验室 天开宏图(天津)科技有限公司 云边端协同检测克隆代码的方法、装置和存储介质
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。