[发明专利]一种代码改动的检测方法及装置有效
申请号: | 201310573480.6 | 申请日: | 2013-11-15 |
公开(公告)号: | CN103559449A | 公开(公告)日: | 2014-02-05 |
发明(设计)人: | 周功程 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F21/57 | 分类号: | G06F21/57 |
代理公司: | 北京中博世达专利商标代理有限公司 11274 | 代理人: | 申健 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 代码 改动 检测 方法 装置 | ||
1.一种代码改动的检测方法,其特征在于,包括:
获取修改后源代码;
对修改后的源代码进行编译,并在所述修改后的源代码中添加预置调试信息,以获得第一目标文件,所述预置调试信息用于对编译后的所述修改后的源代码进行分类;
重命名所述第一目标文件,以获得第一编译信息;
调用预置的Dwarf程序读取所述第一编译信息以及预先生成的第二编译信息,以获取与所述第一编译信息对应的多个链表,以及与所述第二编译信息对应的多个链表,所述第二编译信息为对添加有所述预置调试信息的未修改的源代码编译后生成的编译信息;
对所述与所述第一编译信息对应的多个链表,以及与所述第二编译信息对应的多个链表分别进行比较;
若存在不同,则确定与所述第二编译信息对应的多个链表不同的所述第一编译信息对应的链表。
2.根据权利要求1所述的代码改动的检测方法,其特征在于,所述调用预置的Dwarf程序读取所述第一编译信息以及预先生成的第二编译信息,以获取与所述第一编译信息对应的多个链表,以及与所述第二编译信息对应的多个链表,包括:
根据预置的Dwarf程序提取所述第一编译信息内的所述预置调试信息以及第二编译信息内的所述预置调试信息;
分别将所述第一编译信息内的所述预置调试信息以及第二编译信息内的所述预置调试信息内的函数名称、长度、参数、返回值、变量和内容信息保存为一个链表;
分别将所述第一编译信息内的所述预置调试信息以及第二编译信息内的所述预置调试信息内的数据结构的名称、类型、成员结构信息保存为一个链表;
分别将所述第一编译信息内的所述预置调试信息以及第二编译信息内的所述预置调试信息内的全局数据、静态数据的名称、静态数据的值、静态数据的类型信息保存为一个链表。
3.根据权利要求1或2所述的代码改动的检测方法,其特征在于,在所述获取修改后源代码之前,所述方法还包括:
对未修改的源代码进行编译,并在所述未修改的源代码中添加预置调试信息,以获得第二目标文件,所述预置调试信息用于对编译后的所述未修改的源代码进行分类;
重命名所述第二目标文件,以获得所述第二编译信息。
4.根据权利要求1-3中任一项所述的代码改动的检测方法,其特征在于,在所述调用预置的Dwarf程序读取所述第一编译信息以及预先生成的第二编译信息,以获取与所述第一编译信息对应的多个链表,以及与所述第二编译信息对应的多个链表之后,所述方法还包括:
显示与所述第一编译信息对应的多个链表,以及与所述第二编译信息对应的多个链表。
5.根据权利要求1-4中任一项所述的代码改动的检测方法,其特征在于,在所述重命名所述第一目标文件,以获得第一编译信息之后,所述方法还包括:
查找内核系统中所有的静态局部变量;
将所述静态局部变量对应的符号记录为第一静态局部变量符号;
建立第一查询列表,所述第一查询列表包括所述第一静态局部变量符号、静态局部变量名称、函数名称以及文件名的对应关系。
6.根据权利要求5所述的代码改动的检测方法,其特征在于,在所述重命名所述第二目标文件,以获得第二编译信息之后,所述方法还包括:
查找内核系统中所有的静态局部变量;
将所述静态局部变量对应的符号记录为第二静态局部变量符号;
建立第二查询列表,所述第二查询列表包括所述第二静态局部变量符号、静态局部变量名称、函数名称以及文件名的对应关系;
根据所述第一查询列表以及所述第二查询列表确定在所述第一次编译后的静态局部变量在内核中的地址,以使得内核系统在加载补丁的过程中根据所述地址对内核中的函数或变量进行定位。
7.根据权利要求6所述的代码改动的检测方法,其特征在于,在所述若存在不同,则确定与所述第二编译信息对应的多个链表不同的所述第一编译信息对应的链表之后,还包括:
提取所述不同的第一编译信息对应的链表对应的第一编译信息内的片段文件;
在提取出的所述不同的第一编译信息对应的链表对应的第一编译信息内的片段文件内写入附加信息,所述附加信息用于指示加载热补丁的指令信息以及地址信息以及所述第一查询列表和第二查询列表;
对所述写入附加信息的第一编译信息内的片段文件进行加密以及打包处理生成热补丁包,以使得内核系统完成对热补丁包的加载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310573480.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:涡流纺五彩纱线的加工工艺
- 下一篇:多股纱线直接加捻的倍捻机锭位