[发明专利]一种应用程序数据监控方法、装置、设备及储存介质有效
申请号: | 201911182555.1 | 申请日: | 2019-11-27 |
公开(公告)号: | CN110908869B | 公开(公告)日: | 2023-06-30 |
发明(设计)人: | 袁耀辉;程秋实 | 申请(专利权)人: | 北京博睿宏远数据科技股份有限公司 |
主分类号: | G06F11/30 | 分类号: | G06F11/30 |
代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 孟金喆 |
地址: | 100027 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 应用程序 数据 监控 方法 装置 设备 储存 介质 | ||
本发明实施例公开了一种应用程序数据监控方法、装置、设备及储存介质,该方法包括:当预设函数被调用时,查询对应的方法,调用对应的自实现函数;其中,所述预设函数的原IMP指针由所述自实现函数的指针替换;执行所述自实现函数的插码逻辑,获取所述方法的预设数据;获取所述原IMP指针并执行所述原IMP指针指向的原代码逻辑,传入原IMP函数的参数。本发明实施例的技术方案可实现在满足Hook插码要求的前提下,能最大程度的保护原应用程序中代码执行逻辑的稳定性与完整性。
技术领域
本发明实施例涉及数据采集技术,尤其涉及一种应用程序数据监控方法、装置、设备及储存介质。
背景技术
在iOS系统应用程序的开发过程当中,开发人员可以利用IDE提供的调试工具对应用的各项指标进行调试,并针对问题做排查与修复。而当应用程序安装入用户的设备当中后,想要获取到调试工具可以提供的数据指标就十分困难。这个时候就需要在应用程序运行时进行相关数据指标的监控。
监控的一个主要的手段就是使用AOP编程范式,前置的针对各目标函数与方法进行Hook插码,获取到关注的数据指标后进行聚合与处理,从而协助开发人员有依据的对应用的性能进行监控,及时的发现问题并进行排查与修复工作。目前已知的iOS系统中AOP编程实践均是以Objective-C的Runtime特性,重新声明并实现一个方法,依据方法的SEL指针查询到IMP函数指针,交换目标方法的IMP指针,以此来达到Hook方法的目的。
在上述的Hook方式中,所有的查询与方法交换均是在Objective-C层面完成,在交换的过程中实际生成了新的方法名SEL指针。在方法执行完插入代码,需要回调到原本的代码实现中时,方法实际的SEL指针已经被篡改。如果原代码实现中针对方法名称有做判断逻辑,则有可能因为方法名被篡改而出现非预期的执行结果,影响宿主App的程序行为,严重的有可能导致业务逻辑混乱、应用崩溃等异常情况。
发明内容
本发明实施例提供一种应用程序数据监控方法、装置、设备及储存介质,以实现在满足Hook插码要求的前提下,能最大程度的保护原应用程序中代码执行逻辑的稳定性与完整性。
第一方面,本发明实施例提供了一种应用程序数据监控方法,包括:
当预设函数被调用时,查询对应的方法,调用对应的自实现函数;其中,所述预设函数的原IMP指针由所述自实现函数的指针替换;
执行所述自实现函数的插码逻辑,获取所述方法的预设数据;
获取所述原IMP指针并执行所述原IMP指针指向的原代码逻辑,传入原IMP函数的参数。
第二方面,本发明实施例还提供了一种应用程序数据监控装置,包括:
自实现函数调用模块,用于当预设函数被调用时,查询对应的方法,调用对应的自实现函数;其中,所述预设函数的原IMP指针由所述自实现函数的指针替换;
预设数据获取模块,用于执行所述自实现函数的插码逻辑,获取所述方法的预设数据;
原IMP函数参数传入模块,用于获取所述原IMP指针并执行所述原IMP指针指向的原代码逻辑,传入原IMP函数的参数。
第三方面,本发明实施例还提供了一种设备,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任意实施例所提供的应用程序数据监控方法。
第四方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如本发明任意实施例所提供的应用程序数据监控方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京博睿宏远数据科技股份有限公司,未经北京博睿宏远数据科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911182555.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种管道机器人传动驱动装置
- 下一篇:一种脓毒血症的预警装置、设备及存储介质
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置