[发明专利]程序修改方法及装置有效
申请号: | 201710269568.7 | 申请日: | 2017-04-24 |
公开(公告)号: | CN107423084B | 公开(公告)日: | 2021-02-02 |
发明(设计)人: | 周志刚;陈少杰;张文明 | 申请(专利权)人: | 武汉斗鱼网络科技有限公司 |
主分类号: | G06F8/654 | 分类号: | G06F8/654 |
代理公司: | 北京超凡志成知识产权代理事务所(普通合伙) 11371 | 代理人: | 郭新娟 |
地址: | 430000 湖北省武汉市东湖新技术*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 程序 修改 方法 装置 | ||
本发明提供一种程序修改方法及装置,所述方法包括:执行预设的程序修改脚本,获取目标程序文件;通过所述程序修改脚本中的正则表达式查找所述目标程序文件中被定义为预设位数的第一表达形式的目标指针,其中,所述预设位数小于所述目标程序在被目标操作系统执行时,所述目标操作系统赋予给所述目标指针的实际位数;将所述目标指针的表达形式替换为支持目标操作系统的第二表达形式。如此,实现了目标程序文件的自动修改,提高了程序修改的效率,并降低了程序修改的错误率。
技术领域
本发明涉及数据处理技术领域,具体而言,涉及一种程序修改方法及装置。
背景技术
随着电子终端硬件技术的发展,CPU处理器的能力的越来越强,更高位数的CPU被更多地应用到电子设备中。但是对于一些以较低位数(如32位)系统为标准开发的应用程序,其中的代码都固化的认为存储一个内存地址是一个较低的位数(如32位),并且分配内存地址空间时,分配的内存地址也是较低位数的(如32位)。这些程序在较高位数(如64位)的系统中运行时,系统将分配一个的较高位数(如64位)内存地址,那么程序就会产生错误,导致数据截取,使得高位的数据丢失,从而产生内存访问异常。这时需要对程序文件中的数据进行修改,对于程序代码非常多、量级很大的程序文件,如果手工去修改代码中所有的内存访问代码,将会非常耗时耗力,而且手工修改容易失误产生修改错误,影响程序的正常运行。
发明内容
为了克服现有技术中的上述不足,本发明的目的在于提供一种程序修改方法,所述方法包括:
执行预设的程序修改脚本,获取目标程序文件;
通过所述程序修改脚本中的正则表达式查找所述目标程序文件中被定义为预设位数的第一表达形式的目标指针,其中,所述预设位数小于所述目标程序在被目标操作系统执行时,所述目标操作系统赋予给所述目标指针的实际位数;
将所述目标指针的表达形式替换为支持目标操作系统的第二表达形式。
进一步地,在上述方法中,所述通过所述程序修改脚本中的正则表达式查找所述目标程序文件中被定义为预设位数的第一表达形式的目标指针的步骤,包括:
遍历所述目标程序文件中的每一行代码;
针对所述目标程序中的每一行代码,通过所述正则表达式查找该行代码中被定义为预设位数的第一表达形式的目标指针。
进一步地,在上述方法中,所述通过所述程序修改脚本中的正则表达式查找所述目标程序文件中被定义为预设位数的第一表达形式的目标指针的步骤,包括:
执行所述程序修改脚本中的while函数,在while函数中循环执行getline函数获取所述目标程序文件中的每行代码;
针对获取到的每一行代码,通过所述正则表达式查找定义为预设位数的目标指针。
进一步地,在上述方法中,所述将所述目标指针的表达形式替换为支持目标操作系统的第二表达形式的步骤,包括:
将所述目标指针中高于所述预设位数的数据作为高位数据,将所述目标指针中预设位数以内的数据作为低位数据;
将所述目标指针的表达形式替换为由所述高位数据与所述低位数据拼接而成的第二表达形式。
进一步地,在上述方法中,所述将所述目标指针的表达形式替换为由所述高位数据与所述低位数据拼接而成的第二表达形式的步骤,包括:
将所述目标指针的表达形式替换为由所述高位数据与所述低位数据相或的第二表达形式。
进一步地,在上述方法中,所述预设位数为32位,所述目标操作系统为64位的操作系统;所述将所述目标指针的表达形式替换为支持目标操作系统的第二表达形式的步骤,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉斗鱼网络科技有限公司,未经武汉斗鱼网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710269568.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种预安装应用的安装方法及装置
- 下一篇:用于部署应用的方法和装置