欢迎来到利索能及~ 联系电话:18621327849
利索能及
我要发布
收藏
专利号: 201611058655X
申请人: 武汉斗鱼网络科技有限公司
专利类型:发明专利
专利状态:已下证
专利领域: 计算;推算;计数
更新日期:2024-09-26
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种实现PC客户端软件实时修复的方法,其特征在于,该方法包括以下步骤:步骤S1:服务器端获取PC客户端软件中出现错误的功能模块文件,将该功能模块文件与服务器端保存的相应的功能模块文件进行对比,找出差异数据并记录;

步骤S2:服务器端根据找出的差异数据,生成配置文件;

步骤S3:服务器端将生成的配置文件下发至PC客户端;

步骤S4:PC客户端根据服务器端发来的配置文件,动态修改PC客户端软件中相应功能模块的内存数据;

步骤S1具体包括以下流程:

步骤S101:服务器端获取PC客户端软件中出现错误的功能模块文件;

步骤S102:通过二进制文件对比工具将该功能模块文件与服务器端保存的相应的功能模块文件进行对比,查找出两个文件的差异数据;

步骤S103:记录下差异数据的文件偏移地址;并记录下服务器端保存的相应的功能模块文件中的差异数据和差异数据长度;

步骤S2具体包括以下流程:

步骤S201:服务器端通过将记录的差异数据的文件偏移地址转换为功能模块的内存偏移,得到差异数据的内存偏移;

步骤S202:根据得到的差异数据的内存偏移以及步骤S103中记录的差异数据、差异数据长度,生成PC客户端需要的配置文件,该配置文件的内容包括:功能模块的文件名、差异数据的内存偏移、差异数据长度和差异数据。

2.如权利要求1所述的实现PC客户端软件实时修复的方法,其特征在于:步骤S201中,服务器端通过将记录的差异数据的文件偏移地址转换为功能模块的内存偏移,得到差异数据的内存偏移的具体过程为:找到文件偏移所属功能模块的段的相对内存地址;

根据内存偏移=文件偏移所属功能模块的段的相对内存地址+(差异数据的文件偏移地址-文件偏移在该文件的段的偏移),得到差异数据的内存偏移。

3.如权利要求1所述的实现PC客户端软件实时修复的方法,其特征在于,步骤S4具体包括以下流程:步骤S401:PC客户端收到服务器端发来的配置文件后,解析出配置文件中的字段;并通过调用Windows的API函数HMODULE=GetModuleHandle(“功能模块的文件名”),获取到需要修改的功能模块的内存地址;

步骤S402:根据实际需要修改的内存地址=需要修改的功能模块的内存地址+差异数据的内存偏移,得到实际需要修改的内存地址;

步骤S403:通过调用Windows的API函数VirtualProtect,将实际需要修改的内存地址的内存属性设置为可改写;

步骤S404:将服务器下发的差异数据拷贝到实际需要修改的内存地址处;

步骤S405:再次调用Windows的API函数VirtualProtect,将设置的内存属性改回原来的内存属性值,结束。

4.一种实现PC客户端软件实时修复的装置,其特征在于:包括设置于服务器端的功能模块文件对比单元、配置文件生成单元、配置文件下发单元;以及设置于PC客户端的内存数据修改单元;

所述功能模块文件对比单元用于:获取PC客户端软件中出现错误的功能模块文件,将该功能模块文件与服务器端保存的相应的功能模块文件进行对比,找出差异数据并记录;

所述配置文件生成单元用于:根据功能模块文件对比单元找出的差异数据,生成配置文件;

所述配置文件下发单元用于:将生成的配置文件下发至PC客户端;

所述内存数据修改单元用于:根据服务器端发来的配置文件,动态修改PC客户端软件中相应功能模块的内存数据;

所述功能模块文件对比单元进行对比操作的具体流程为:获取PC客户端软件中出现错误的功能模块文件;通过二进制文件对比工具将该功能模块文件与服务器端保存的相应的功能模块文件进行对比,查找出两个文件的差异数据;记录下差异数据的文件偏移地址,并记录下服务器端保存的相应的功能模块文件中的差异数据和差异数据长度;

所述配置文件生成单元生成配置文件的具体流程为:将功能模块文件对比单元记录的差异数据的文件偏移地址转换为功能模块的内存偏移,得到差异数据的内存偏移;根据得到的差异数据的内存偏移以及功能模块文件对比单元记录的差异数据、差异数据长度,生成PC客户端需要的配置文件,该配置文件的内容包括:功能模块的文件名、差异数据的内存偏移、差异数据长度和差异数据。

5.如权利要求4所述的实现PC客户端软件实时修复的装置,其特征在于,所述配置文件生成单元得到差异数据的内存偏移的具体流程为:找到文件偏移所属功能模块的段的相对内存地址;根据内存偏移=文件偏移所属功能模块的段的相对内存地址+(差异数据的文件偏移地址-文件偏移在该文件的段的偏移),得到差异数据的内存偏移。

6.如权利要求4所述的实现PC客户端软件实时修复的装置,其特征在于,所述内存数据修改单元修改内存数据的具体流程为:所述内存数据修改单元收到服务器端发来的配置文件后,解析出配置文件中的字段;并通过调用Windows的API函数HMODULE=GetModuleHandle(“功能模块的文件名”),获取到需要修改的功能模块的内存地址;根据实际需要修改的内存地址=需要修改的功能模块的内存地址+差异数据的内存偏移,得到实际需要修改的内存地址;通过调用Windows的API函数VirtualProtect,将实际需要修改的内存地址的内存属性设置为可改写;将服务器下发的差异数据拷贝到实际需要修改的内存地址处;再次调用Windows的API函数VirtualProtect,将设置的内存属性改回原来的内存属性值。