补丁生成方法、装置、设备及存储介质制造方法及图纸

技术编号:27974687 阅读:9 留言:0更新日期:2021-04-06 14:08
本发明专利技术属于计算机技术领域,公开了一种补丁生成方法、装置、设备及存储介质,该方法通过在接收到补丁生成指令时,根据补丁生成指令获取应用源代码文件;根据应用源代码文件获取初始可执行文件和更新可执行文件;对初始可执行文件和更新可执行文件进行差异比较,以获得差异信息;根据差异信息创建补丁文件。本发明专利技术中,相较于现有需要提供源代码生成补丁的方式,本申请根据应用源代码文件获取的初始可执行文件和更新可执行文件进行差异比较,创建补丁文件,本申请采用编译文件即应用源代码文件的方式,在不提供源代码的情况下也能创建补丁文件,解决了现有补丁生成方式在无法获取到源代码时,难以生成补丁文件的技术问题。

【技术实现步骤摘要】
补丁生成方法、装置、设备及存储介质
本专利技术涉及计算机
,尤其涉及一种补丁生成方法、装置、设备及存储介质。
技术介绍
目前,补丁,是为解决软件使用过程中存在的缺陷或需要增加新的功能而发布的程序或程序包。编写程序不可能十全十美的,软件也免不了会出现漏洞,而补丁是专门修复这些漏洞的,如果之前发布的软件存在缺陷,发现之后则另外编制一个小程序使其完善,这种小程序俗称补丁。补丁是由软件的原来作者制作的,可以访问网站下载补丁。但是,现有基于源代码的补丁生成方式需要开发者提供源代码,在无法获取到源代码时,难以生成补丁文件。上述内容仅用于辅助理解本专利技术的技术方案,并不代表承认上述内容是现有技术。
技术实现思路
本专利技术的主要目的在于提供一种补丁生成方法、装置、设备及存储介质,旨在解决现有补丁生成方式在无法获取到源代码时,难以生成补丁文件的技术问题。为实现上述目的,本专利技术提供了一种补丁生成方法,所述补丁生成方法包括以下步骤:在接收到补丁生成指令时,根据所述补丁生成指令获取应用源代码文件;根据所述应用源代码文件获取初始可执行文件和更新可执行文件;对所述初始可执行文件和所述更新可执行文件进行差异比较,以获得差异信息;根据所述差异信息创建补丁文件。可选地,所述对所述初始可执行文件和所述更新可执行文件进行差异比较,以获得差异信息的步骤,包括:获取所述初始可执行文件的初始代码段和初始只读数据段内容;获取所述更新可执行文件的更新代码段和更新只读数据段内容;将所述初始代码段与所述更新代码段进行比较,以获得代码差异信息;将所述初始只读数据段内容与所述更新只读数据段内容进行比较,以获得数据差异信息;根据所述代码差异信息和所述数据差异信息生成差异信息。可选地,所述获取所述初始可执行文件的初始代码段和初始只读数据段内容的步骤,包括:获取所述初始可执行文件的段表起始地址和段表长度;根据所述段表起始地址和所述段表长度解析所述初始可执行文件,以获得所述初始可执行文件的初始代码段和初始只读数据段内容。可选地,所述根据所述段表起始地址和所述段表长度解析所述初始可执行文件,以获得所述初始可执行文件的初始代码段和初始只读数据段内容的步骤,包括:根据所述段表起始地址和所述段表长度解析所述初始可执行文件,以获得所述初始可执行文件的文件头部;解析所述文件头部,以获得初始代码段和初始只读数据段内容的内存地址;根据所述内存地址查找所述初始可执行文件的初始代码段和初始只读数据段内容。可选地,所述将所述初始只读数据段内容与所述更新只读数据段内容进行比较,以获得数据差异信息的步骤,包括:确定所述初始只读数据段内容的第一特征值,确定所述更新只读数据段内容的第二特征值;对所述第一特征值和所述第二特征值进行数据分析,以获得特征值差异信息;将所述特征值差异信息作为数据差异信息。可选地,所述对所述初始可执行文件和所述更新可执行文件进行差异比较,以获得差异信息的步骤,包括:将所述初始可执行文件和所述更新可执行文件进行差异比较,以确定待更新对象;对所述更新可执行文件进行语法分析,并根据语法分析结果确定与所述待更新对象对应的目标数据;根据所述目标数据确定差异信息。可选地,所述根据所述差异信息创建补丁文件的步骤,包括:根据所述差异信息获提取目标数据,并从所述目标数据中提取预设格式的源代码;对所述预设格式的源代码进行编译,以获得字节码;根据所述字节码生成应用程序包文件,并将所述应用程序包文件作为补丁文件。可选地,所述根据所述应用源代码文件获取初始可执行文件和更新可执行文件的步骤,包括:对所述应用源代码文件进行预编译优化,以获得初始可执行文件;获取所述应用源代码文件中的第一目标文件,访问与所述目标文件的更改关联的初始补丁文件;对所述初始补丁文件进行预编译优化,得到预优化源代码文件;将所述预优化源代码文件作为更新可执行文件。可选地,所述对所述初始补丁文件进行预编译优化,得到预优化源代码文件的步骤之前,还包括:判断所述应用源代码文件中的第二目标文件是否与所述初始补丁文件关联;在所述第二目标文件与所述初始补丁文件关联时,对所述初始补丁文件进行预编译优化,以获得预优化源代码文件;将所述预优化源代码文件作为更新可执行文件。可选地,所述在接收到补丁生成指令时,根据所述补丁生成指令获取应用源代码文件的步骤,包括:在接收到补丁生成指令时,根据所述补丁生成指令确定目标应用标识;获取所述目标应用标识对应的文件导入信息;根据所述文件导入信息查找对应的开源代码文件与开发代码文件;根据所述开源代码文件与所述开发代码文件生成应用源代码文件。可选地,所述根据所述文件导入信息查找对应的开源代码文件与开发代码文件的步骤,包括:判断所述文件导入信息是否包括开源框架或开源代码库名称;在所述文件导入信息包括开源框架或开源代码库名称时,根据所述开源框架或开源代码库名称查找对应的开源代码文件;根据所述文件导入信息查找对应的开发代码文件。可选地,所述根据所述文件导入信息查找对应的开发代码文件的步骤,包括:判断所述文件导入信息是否包括脚本文件的存储路径名称;当所述文件导入信息包括所述脚本文件的存储路径名称时,根据所述存储路径名称查找所述开发代码文件。此外,为实现上述目的,本专利技术还提出一种补丁生成装置,所述补丁生成装置包括:获取模块,用于在接收到补丁生成指令时,根据所述补丁生成指令获取应用源代码文件;所述获取模块,还用于根据所述应用源代码文件获取初始可执行文件和更新可执行文件;比较模块,用于对所述初始可执行文件和所述更新可执行文件进行差异比较,以获得差异信息;创建模块,用于根据所述差异信息创建补丁文件。可选地,所述比较模块,还用于获取所述初始可执行文件的初始代码段和初始只读数据段内容;获取所述更新可执行文件的更新代码段和更新只读数据段内容;将所述初始代码段与所述更新代码段进行比较,以获得代码差异信息;将所述初始只读数据段内容与所述更新只读数据段内容进行比较,以获得数据差异信息;根据所述代码差异信息和所述数据差异信息生成差异信息。可选地,所述比较模块,还用于获取所述初始可执行文件的段表起始地址和段表长度;根据所述段表起始地址和所述段表长度解析所述初始可执行文件,以获得所述初始可执行文件的初始代码段和初始只读数据段内容。可选地,所述比较模块,还用于根据所述段表起始地址和所述段表长度解析所述初始可执行文件,以获得所述初始可执行文件的文件头部;解析所述文件头部,以获得初始代码段和初始只读数据段内容的内存地址;根据所述内存地址查找所述初始可执行文件的本文档来自技高网...

【技术保护点】
1.一种补丁生成方法,其特征在于,所述补丁生成方法包括:/n在接收到补丁生成指令时,根据所述补丁生成指令获取应用源代码文件;/n根据所述应用源代码文件获取初始可执行文件和更新可执行文件;/n对所述初始可执行文件和所述更新可执行文件进行差异比较,以获得差异信息;/n根据所述差异信息创建补丁文件。/n

【技术特征摘要】
1.一种补丁生成方法,其特征在于,所述补丁生成方法包括:
在接收到补丁生成指令时,根据所述补丁生成指令获取应用源代码文件;
根据所述应用源代码文件获取初始可执行文件和更新可执行文件;
对所述初始可执行文件和所述更新可执行文件进行差异比较,以获得差异信息;
根据所述差异信息创建补丁文件。


2.如权利要求1所述的补丁生成方法,其特征在于,所述对所述初始可执行文件和所述更新可执行文件进行差异比较,以获得差异信息的步骤,包括:
获取所述初始可执行文件的初始代码段和初始只读数据段内容;
获取所述更新可执行文件的更新代码段和更新只读数据段内容;
将所述初始代码段与所述更新代码段进行比较,以获得代码差异信息;
将所述初始只读数据段内容与所述更新只读数据段内容进行比较,以获得数据差异信息;
根据所述代码差异信息和所述数据差异信息生成差异信息。


3.如权利要求2所述的补丁生成方法,其特征在于,所述获取所述初始可执行文件的初始代码段和初始只读数据段内容的步骤,包括:
获取所述初始可执行文件的段表起始地址和段表长度;
根据所述段表起始地址和所述段表长度解析所述初始可执行文件,以获得所述初始可执行文件的初始代码段和初始只读数据段内容。


4.如权利要求3所述的补丁生成方法,其特征在于,所述根据所述段表起始地址和所述段表长度解析所述初始可执行文件,以获得所述初始可执行文件的初始代码段和初始只读数据段内容的步骤,包括:
根据所述段表起始地址和所述段表长度解析所述初始可执行文件,以获得所述初始可执行文件的文件头部;
解析所述文件头部,以获得初始代码段和初始只读数据段内容的内存地址;
根据所述内存地址查找所述初始可执行文件的初始代码段和初始只读数据段内容。


5.如权利要求2所述的补丁生成方法,其特征在于,所述将所述初始只读数据段内容与所述更新只读数据段内容进行比较,以获得...

【专利技术属性】
技术研发人员:刘天
申请(专利权)人:苏州三六零智能安全科技有限公司
类型:发明
国别省市:江苏;32

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

1