[发明专利]应用程序native层实时修复方法、设备及系统在审
申请号: | 201910493115.1 | 申请日: | 2019-06-06 |
公开(公告)号: | CN110321141A | 公开(公告)日: | 2019-10-11 |
发明(设计)人: | 周志刚 | 申请(专利权)人: | 武汉斗鱼鱼乐网络科技有限公司 |
主分类号: | G06F8/65 | 分类号: | G06F8/65 |
代理公司: | 武汉智权专利代理事务所(特殊普通合伙) 42225 | 代理人: | 沈林华 |
地址: | 430000 湖北省武汉市东湖新技术开发区软件园东路*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 修复模块 应用程序 修复数据 字段 修复 内存属性 获知 设备及系统 存储介质 服务器端 功能修复 软件开发 设备接收 实时在线 协议类型 修复位置 原有数据 对设备 可执行 偏移 可读 可写 解析 内存 替换 | ||
1.一种应用程序native层实时修复方法,其特征在于,包括以下步骤:
运行应用程序的设备接收服务器端定义的bugfix类型协议,所述协议中包括用于对应用程序待修复模块进行修复的修复数据字段;
对接收协议进行解析,得到修复数据,同时获知修复数据所对应的待修复模块名称;
基于获知的待修复模块名称,获取应用程序位于内存中的待修复模块;
修改内存属性为可写且可读,将获取的待修复模块的修复位置处的原有数据替换成修复数据,然后将内存属性修改为可执行。
2.如权利要求1所述的一种应用程序native层实时修复方法,其特征在于:所述协议具体包括修复数据字段、待修复模块名称字段、待修复模块的偏移字段和协议类型字段。
3.如权利要求2所述的一种应用程序native层实时修复方法,其特征在于,所述对接收协议进行解析,得到修复数据,同时获知修复数据所对应的待修复模块名称,具体步骤为:
设备接收协议后,创建一消息解析类型的实例对象;
使用创建的实例对象对协议进行解析,得到修复数据、待修复模块名称、待修复模块的偏移和协议类型;
基于得到的修复数据、待修复模块名称、待修复模块的偏移和协议类型,创建包括修复数据、待修复模块名称、待修复模块的偏移和协议类型的修复网络协议。
4.如权利要求2所述的一种应用程序native层实时修复方法,其特征在于,所述基于获知的待修复模块名称,获取应用程序位于内存中的待修复模块,具体步骤包括:
获取内存布局信息,所述内存布局信息中包括应用程序的所有模块在内存中的起始地址和大小;
循环读取所述内存布局信息的每一行内容,判断当前行内容中是否含有待修复模块名称,若是,则从当前行内容中获取待修复模块在内存中的起始地址,若否,则读取下一行内容。
5.如权利要求4所述的一种应用程序native层实时修复方法,其特征在于,所述将获取的待修复模块的修复位置处的原有数据替换成修复数据,具体步骤包括:
计算出待修复模块修复位置的内存地址,所述内存地址的计算方式是待修复模块在内存中的起始地址加上待修复模块的偏移;
将计算出的内存地址处的数据替换成修复数据,完成修复。
6.如权利要求5所述的一种应用程序native层实时修复方法,其特征在于:
所述修改内存属性为可写且可读,以及将内存属性修改为可执行,具体为使用API函数mprotect对内存的属性进行修改,函数mprotect的原型为
int mprotect(void*addr,size_t len,int prot)
其中,int为一种数据类型,表示整型变量,void*表示无类型指针,addr待修复的内存地址,size_t len表示从addr开始需要修改的内存大小,int prot表示修改后的内存属性结果,内存属性结果包括PROT_READ、PROT_WRITE、PROT_EXEC和PROT_NONE,PROT_READ表示可读,PROT_WRITE表示可写,PROT_EXEC表示可执行,PROT_NONE表示不可访问;
所述修改内存属性为可写且可读,具体执行函数为
mprotect((void*)PAGE_START(addr),PAGE_SIZE,PROT_READ|PROT_WRITE)
其中,PAGE_SIZE表示修改的内存大小,PAGE_START(addr)表示从待修复模块修复位置的内存地址处开始修改;
所述将内存属性修改为可执行,具体执行函数为
mprotect((void*)PAGE_START(addr),PAGE_SIZE,PROT_EXEC)。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉斗鱼鱼乐网络科技有限公司,未经武汉斗鱼鱼乐网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910493115.1/1.html,转载请声明来源钻瓜专利网。