[发明专利]一种数据处理方法、装置、电子设备及存储介质在审
申请号: | 202110745564.8 | 申请日: | 2021-06-30 |
公开(公告)号: | CN113590091A | 公开(公告)日: | 2021-11-02 |
发明(设计)人: | 邓竹立;彭飞 | 申请(专利权)人: | 五八有限公司 |
主分类号: | G06F8/30 | 分类号: | G06F8/30;G06F8/38 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 吕俊秀 |
地址: | 300450 天津市滨海新区经济技术开*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据处理 方法 装置 电子设备 存储 介质 | ||
1.一种数据处理方法,其特征在于,所述方法包括:
在应用程序的开发环境中创建用于继承基类的子类,所述基类为在所述开发环境中已开发的类;
在所述子类中设置所述基类的类名、所述基类中的需要被替换的原函数的函数名以及用于替换所述原函数的目标函数的函数地址;
在根据所述开发环境中已开发的所述应用程序的源代码生成所述应用程序的可执行文件的过程中,根据所述原函数的函数名获取所述原函数的函数地址;
在所述可执行文件中生成所述子类的重写函数表,所述重写函数表包括所述原函数的函数地址、所述基类的类名以及所述目标函数的函数地址。
2.一种数据处理方法,其特征在于,所述方法包括:
获取应用程序的可执行文件中的子类的重写函数表,所述子类继承所述可执行文件中的基类,所述重写函数表中包括所述基类中的需要被替换的原函数的函数地址、所述基类的类名以及用于替换所述原函数的目标函数的函数地址;其中,所述重写函数表是根据在所述应用程序的开发环境中的所述子类中设置的所述基类的类名、所述原函数的函数名以及所述目标函数的函数地址生成的;所述原函数的函数地址是根据所述原函数的函数名得到的;所述子类用于继承所述基类;
根据所述基类的类名获取所述基类的虚函数表,所述虚函数表中包括所述基类中的函数的函数地址;
在所述虚函数表中查找所述原函数的函数地址;
使用所述目标函数的函数地址替换所述虚函数表中的所述原函数的函数地址。
3.根据权利要求2所述的方法,其特征在于,所述获取应用程序的可执行文件中的子类的重写函数表,包括:
获取所述可执行文件中的所述子类的内存地址;
获取所述子类的重写函数表在所述内存地址中的偏移量;
根据所述偏移量获取所述重写函数表。
4.根据权利要求3所述的方法,其特征在于,所述获取所述子类的重写函数表在所述内存地址中的偏移量,包括:
获取所述子类中的特定标志位的值;
根据所述特定标志位的值确定所述子类的结构体;
根据所述子类的结构体确定所述偏移量。
5.一种数据处理装置,其特征在于,所述装置包括:
创建模块,用于在应用程序的开发环境中创建用于继承基类的子类,所述基类为在所述开发环境中已开发的类;
设置模块,用于在所述子类中设置所述基类的类名、所述基类中的需要被替换的原函数的函数名以及用于替换所述原函数的目标函数的函数地址;
第一获取模块,用于在根据所述开发环境中已开发的所述应用程序的源代码生成所述应用程序的可执行文件的过程中,根据所述原函数的函数名获取所述原函数的函数地址;
生成模块,用于在所述可执行文件中生成所述子类的重写函数表,所述重写函数表包括所述原函数的函数地址、所述基类的类名以及所述目标函数的函数地址。
6.一种数据处理装置,其特征在于,所述装置包括:
第二获取模块,用于获取应用程序的可执行文件中的子类的重写函数表,所述子类继承所述可执行文件中的基类,所述重写函数表中包括所述基类中的需要被替换的原函数的函数地址、所述基类的类名以及用于替换所述原函数的目标函数的函数地址;其中,所述重写函数表是根据在所述应用程序的开发环境中的所述子类中设置的所述基类的类名、所述原函数的函数名以及所述目标函数的函数地址生成的;所述原函数的函数地址是根据所述原函数的函数名得到的;所述子类用于继承所述基类;
第三获取模块,用于根据所述基类的类名获取所述基类的虚函数表,所述虚函数表中包括所述基类中的函数的函数地址;
查找模块,用于在所述虚函数表中查找所述原函数的函数地址;
替换模块,用于使用所述目标函数的函数地址替换所述虚函数表中的所述原函数的函数地址。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于五八有限公司,未经五八有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110745564.8/1.html,转载请声明来源钻瓜专利网。