[发明专利]基于系统调用日志的不可重复编译定位方法有效

专利信息
申请号: 201910549431.6 申请日: 2019-06-24
公开(公告)号: CN110321130B 公开(公告)日: 2021-04-16
发明(设计)人: 任志磊;江贺;赖晓晨 申请(专利权)人: 大连理工大学
主分类号: G06F8/41 分类号: G06F8/41;G06F11/34
代理公司: 大连理工大学专利中心 21200 代理人: 梅洪玉
地址: 116024 辽*** 国省代码: 辽宁;21
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明提供一种基于系统调用日志的不可重复编译定位方法,属于软件编译领域。该方法首先通过对系统调用日志信息进行差异分析构建依赖图;再通过分析构建过程中父子进程关系对依赖图进行增强;最终通过遍历依赖图并排序,得到最终的问题构建命令,以便进行后续修复工作。本发明能够有效验证软件源代码与二进制包之间的对应关系,一旦发生不一致,能够定位到可能导致软件不可重复编译的构建命令。
搜索关键词: 基于 系统 调用 日志 不可 重复 编译 定位 方法
【主权项】:
1.一种基于系统调用日志的不可重复编译定位方法,其特征在于,步骤如下:步骤1:构建编译环境,得到二进制包构建一号编译环境,在一号编译环境中编译待检测和定位的源文件,得到一号二进制包;构建二号编译环境,在二号编译环境中编译待检测和定位的源文件,得到二号二进制包;编译环境由固定部分和扰动部分构成;其中固定部分在一号和二号编译环境中保持不变,扰动部分在一号和二号编译环境中不同;在编译待检测和定位的源文件时,使用系统调用监控工具捕获构建过程中的系统调用日志,所述的系统调用日志包括execve、read、write和rename;步骤2:调用系统调用日志解析程序,转化提取系统调用日志调用系统调用日志解析程序,从步骤1中系统调用监控工具捕获的文本格式的系统调用日志中进行转化提取,存入数据库;步骤3:使用比对工具,提取比对日志中不一致文件的文件名使用比对工具将一号二进制包和二号二进制包进行递归比较,列出两个二进制包中的不一致文件;当比较结果完全一致时,则报告软件包可重复编译;否则,将比对工具输出的文件作为比对日志,并将比对日志作为问题文件定位的基础进行文件名提取;所述的文件名提取过程为:从比对工具输出的比对日志中提取出与两个编译环境中生成的二进制包中所包含的内容不一致的文件,将不一致文件的文件名作为定位的基础;步骤4:调用系统调用差异分析程序,构建系统调用差异集合write‑diff调用系统调用差异分析程序,根据步骤2构建的数据库中的系统调用信息建立系统调用差异集合write‑diff:构建规则如下:首先构造写系统调用差异集合write‑diff,如果一个构建命令在两次构建中,调用了write系统调用日志,并且在两次构建时,write系统调用日志所写数据不一致,则将其中第一次构建时的哈希值加入write‑diff;步骤5:调用依赖图构建程序,构造依赖图调用依赖图构建程序,根据步骤4中的系统调用差异集合write‑diff构造依赖图;构建规则如下:对于write‑diff中对应的每一个系统调用,首先获得其写入的文件f、写入时间t和对应的进程编号pid,f、t和pid通过解析系统调用日志中write系统调用的参数获得;如果在当前write系统调用日志结束后,存在另一个read系统调用日志,其读取文件为f,写入时间t'>t,进程编号为pid',则在依赖图中加入两个节点,分别对应编号为pid和pid'的进程,并且在两个节点加入一条边,由pid'指向pid;如果在进程编号为pid的进程写入f文件后,存在rename系统调用日志,将文件f重命名为f',之后在进程编号为pid'的进程中读取f',同样在pid'与pid对应节点之间建立依赖边;步骤6:调用依赖图增强程序,获得增强依赖图在步骤5得到的依赖图基础上,针对每个节点,获取其对应的进程编号pid,根据系统调用日志解析获取其父进程编号ppid,并建立pid与ppid对应节点之间的依赖边;步骤7:调用排序程序,遍历依赖图,捕获问题构建命令在步骤6获得的依赖图中,首先获得不一致文件最后被访问的节点,即针对步骤3中每个不一致文件,找到访问该文件的、具有最大时间戳的read和write系统调用日志所在的进程;并在步骤6获得的增强依赖图中,找到其对应的节点;接着,从找到的节点出发,使用广度优先遍历算法,构造可达子图,即获得从种子节点出发,可达到的图中出度为0的节点;获得出度为0的节点对应的进程中,write系统调用日志所写的数据data;计算data与增强依赖图中其他节点对应进程中,read或write系统调用日志读写数据data'之间的文本相似度,并根据累加相似度对出度为0的节点进行排序;在列表中排序越高的节点,其对应的进程中调用的execve系统调用日志对应的构建命令越可能是导致产生不一致文件的原因。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于大连理工大学,未经大连理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201910549431.6/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top