[发明专利]一种补丁的内核加载方法及装置在审
| 申请号: | 201711311849.0 | 申请日: | 2017-12-11 | 
| 公开(公告)号: | CN108073411A | 公开(公告)日: | 2018-05-25 | 
| 发明(设计)人: | 高永岗;张建新 | 申请(专利权)人: | 北京奇虎科技有限公司 | 
| 主分类号: | G06F8/654 | 分类号: | G06F8/654;G06F8/658;G06F21/51 | 
| 代理公司: | 北京鼎佳达知识产权代理事务所(普通合伙) 11348 | 代理人: | 王伟锋;刘铁生 | 
| 地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 | 
| 权利要求书: | 查看更多 | 说明书: | 查看更多 | 
| 摘要: | |||
| 搜索关键词: | 补丁 加载 内存 内核 申请 初始化函数 共享内存区 内核符号表 用户态程序 符号表 重定义 校验 自带 成功 | ||
1.一种补丁的内核加载方法,其特征在于,包括:
通过共享内存区获取来自用户态程序的补丁;
对所述补丁进行校验,并在校验成功后,在内核内存区内为所述补丁申请内存;
根据所述补丁自带的符号表和内核符号表,对内核符号进行重定义;
刷新已申请的内存,并运行所述补丁的初始化函数,使得所述补丁加载到刷新后的已申请的内存中。
2.根据权利要求1所述的方法,其特征在于,所述对所述补丁进行校验,包括:
根据所述补丁的标识,检测所述补丁是否已经加载;
当检测出所述补丁未加载时,对所述补丁进行签名校验;
在签名校验成功后,对所述补丁进行解密,获取所述补丁自带的符号表;
根据所述符号表,验证所述补丁内核的MD5和内核中值是否一致,其中,若一致,则执行加载,反之,则结束加载。
3.根据权利要求2所述的方法,其特征在于,在所述验证所述补丁内核的MD5和内核中值是否一致之后,所述方法还包括:
在检验所述补丁内核的MD5和内核中值一致后,校验所述补丁是否符合可执行与可链接格式ELF。
4.根据所述权利要求1所述的方法,其特征在于,所述在内核内存区内为补丁申请内存,包括:
为所述补丁申请内存,并从所述共享内存区中将所述补丁的内容拷贝至已申请的内存;
找到加载模块所有节区地址,并初始化模块对象相关指针;
为所述节区pcup分配空间。
5.根据权利要求1所述的方法,其特征在于,所述根据所述补丁自带的符号表和内核符号表,对内核符号进行重定义,包括:
查找系统符号表,校验所述补丁自带的符号表于所述系统符号表是否一致;
如果一致,对重定义节区做重定义操作。
6.根据权利要求1所述的方法,其特征在于,所述运行所述补丁的初始化函数,包括:
将所述补丁加入补丁列表;
运行所述补丁的初始化函数,并清理临时内存。
7.一种补丁的内核加载装置,其特征在于,包括:
获取单元,用于通过共享内存区获取来自用户态程序的补丁;
校验单元,用于对所述补丁进行校验;
申请单元,用于在校验成功后,在内核内存区内为所述补丁申请内存;
重定义单元,用于根据所述补丁自带的符号表和内核符号表,对内核符号进行重定义;
执行单元,用于刷新已申请的内存,并运行所述补丁的初始化函数,使得所述补丁加载到所述已申请的内存中。
8.根据权利要求7所述的装置,其特征在于,所述校验单元,用于根据所述补丁的标识,检测所述补丁是否已经加载;当检测出所述补丁未加载时,对所述补丁进行签名校验;在签名校验成功后,对所述补丁进行解密,获取所述补丁自带的符号表;根据所述符号表,验证所述补丁内核的MD5和内核中值是否一致,其中,若一致,则执行加载,反之,则结束加载。
9.一种内核加载引擎,其特征在于,包括:存储器和处理器,其中,存储其中存储有一个或者多个程序指令,所述处理器执行所述程序指令以实现如权利要求1至6任一项所述的方法步骤。
10.一种计算机可读存储介质,所述可读存储介质上存储有程序,其特征在于,所述程序被处理器执行时实现如权利要求1至6任一项所述方法步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司,未经北京奇虎科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711311849.0/1.html,转载请声明来源钻瓜专利网。





