[发明专利]用于生成补丁的方法和装置有效
申请号: | 201711115857.8 | 申请日: | 2017-11-13 |
公开(公告)号: | CN107797820B | 公开(公告)日: | 2021-03-23 |
发明(设计)人: | 刘琦;张宇 | 申请(专利权)人: | 北京百度网讯科技有限公司 |
主分类号: | G06F8/658 | 分类号: | G06F8/658 |
代理公司: | 北京英赛嘉华知识产权代理有限责任公司 11204 | 代理人: | 王达佐;马晓亚 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 生成 补丁 方法 装置 | ||
1.一种用于生成补丁文件的方法,包括:
获取用于创建目标进程的第一目标文件,其中,所述第一目标文件包括第一符号表;
获取根据目标源代码文件编译得到的第二目标文件,其中,所述第二目标文件包括第二符号表;
利用所述第一符号表和所述第二符号表,确定所述第一目标文件与所述第二目标文件之间的差异符号;
根据所述差异符号,生成补丁文件;
所述方法还包括:
在满足预设暂停条件的情况下,暂停所述目标进程并加载所生成的补丁文件,包括:在暂停所述目标进程后,备份所述目标进程的代码段中即将执行的指令;在所述目标进程内,为所述补丁文件分配地址空间;将所述补丁文件中的函数、字符串、变量复制至所述地址空间中;
链接所述目标进程和加载后的补丁文件,以更新所述目标进程,包括:修改所述目标进程中,同名函数的第一条指令,改为跳转至所述补丁文件中的函数。
2.根据权利要求1所述的方法,其中,符号的符号类型包括只读类型和读写类型;以及
所述利用所述第一符号表和所述第二符号表,确定所述第一目标文件与所述第二目标文件之间的差异符号,包括:
根据符号类型,将所述第一符号表中的符号划分为第一只读符号集和第一读写符号集,将所述第二符号表中的符号划分为第二只读符号集和第二读写符号集。
3.根据权利要求2所述的方法,其中,所述利用所述第一符号表和所述第二符号表,确定所述第一目标文件与所述第二目标文件之间的差异符号,包括:
比较所述第一读写符号集和所述第二读写符号集中符号的符号名,确定所述第二读写符号集和所述第一读写符号集之间的差异符号。
4.根据权利要求2所述的方法,其中,所述利用所述第一符号表和所述第二符号表,确定所述第一目标文件与所述第二目标文件之间的差异符号,包括:
比较第一符号的第一符号内容和第二符号的第二符号内容,其中,所述第一符号是所述第一只读符号集中的符号,所述第二符号是所述第二只读符号集中与所述第一符号对应的符号;
生成指示符,其中,指示符为无差异符或差异类型符,无差异符用于指示所述第一符号内容和所述第二符号内容相同,差异类型符用于指示所述第二符号内容相对于所述第一符号内容的差异类型,差异类型包括增加、删除和修改。
5.根据权利要求4所述的方法,其中,所述比较第一符号的第一符号内容和第二符号的第二符号内容,包括:
对于所述第一符号内容和所述第二符号内容中的需要重定位的字节,确定重定位类型是否相同以及重定位时所使用的符号是否相同;
对于所述第一符号内容和所述第二符号内容中的不需要重定位的字节,确定所述不需要重定位的字节是否相同。
6.根据权利要求5所述的方法,其中,所述利用所述第一符号表和所述第二符号表,确定所述第一目标文件与所述第二目标文件之间的差异符号,包括:
根据指示符,确定所述第一只读符号集和所述第二只读符号集之间的差异符号。
7.根据权利要求5所述的方法,其中,所述根据所述差异符号,生成补丁文件,包括:
获取差异符号的符号内容和/或差异符号的重定位项;
将差异符号的符号名以及以下至少一项:所述符号内容和所述重定位项,保存至预先生成的文件。
8.根据权利要求7所述的方法,其中,补丁文件包括数据节、重定位节、符号表节;以及
所述将差异符号的符号名以及以下至少一项:所述符号内容和所述重定位项,保存至预先生成的文件,包括:
将所述重定位项,保存至重定位节;
将所述符号内容,保存至数据节,其中,所述数据节中的符号内容能够索引到保存至重定位节的重定位项;
将所述符号名,保存至符号表节,其中,保存至符号表中的符号名能够索引到保存至数据节的符号内容。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京百度网讯科技有限公司,未经北京百度网讯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711115857.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:车载设备的升级方法、车载设备和升级设备
- 下一篇:一种工程进度展示方法及装置