[发明专利]一种后台任务检测方法、装置、电子设备及存储介质在审
申请号: | 202110745573.7 | 申请日: | 2021-06-30 |
公开(公告)号: | CN113591081A | 公开(公告)日: | 2021-11-02 |
发明(设计)人: | 王盟盟;彭飞;邓竹立 | 申请(专利权)人: | 五八有限公司 |
主分类号: | G06F21/56 | 分类号: | G06F21/56;G06F21/55 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 吕俊秀 |
地址: | 300450 天津市滨海新区经济技术开*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 后台 任务 检测 方法 装置 电子设备 存储 介质 | ||
本发明提供了一种后台任务检测方法、装置、电子设备及存储介质。所述方法,包括:反汇编待检测项目的符号表,并获取其中每个符号的汇编指令;针对任一目标函数,获取包含所述目标函数的地址的每个目标符号,并通过每个所述目标符号的地址信息获取每个所述目标符号所对应的类名,得到所述目标函数对应的类名列表,所述地址信息包括起始地址和偏移地址,所述目标函数包括开启后台任务的函数、结束后台任务的函数;通过对比第一类名列表和所述第二类名列表,获取差异类,以对所述差异类的代码进行检测,得到后台任务检测结果,所述第一类名列表为开启后台任务的函数对应的类名列表,所述第二类名列表为结束后台任务的函数对应的类名列表。
技术领域
本发明涉及计算机技术领域,尤其涉及一种后台任务检测方法、装置、电子设备及存储介质。
背景技术
目前分析后台任务泄露主要有以下两种方式:方式一,在Xcode中全局搜索开启后台任务的代码,然后人工分析代码中是否存在因为开启后台任务而没有结束导致的后台任务泄露;方式二,通过Hook的方式获取并收集所有开启后台任务和结束后台任务的代码是否成对出现,确定是否因为没有结束后台任务而导致的任务泄露。
但是,通过Xcode全局搜索的方式过渡依赖于人工,人工检查费时费力。且无法做到在代码中全量覆盖,例如SDK中部分.m文件并没与对外暴露,因此会存在目标函数搜索不到的情况。而通过Hook的方式比较依赖运行时状态,可能会出现漏检的情况,因此会存在覆盖不全的情况。
由此可见,相关技术方案都存在成本高,且检测结果不准确等问题。
发明内容
本发明实施例提供一种后台任务检测方法、装置、电子设备及存储介质,以解决现有的分析后台任务泄露方式成本高,且检测结果不准确的问题。
为了解决上述技术问题,本发明是这样实现的:
第一方面,本发明实施例提供了一种后台任务检测方法,包括:
反汇编待检测项目的符号表,并获取其中每个符号的汇编指令;
针对任一目标函数,获取包含所述目标函数的地址的每个目标符号,并通过每个所述目标符号的地址信息获取每个所述目标符号所对应的类名,得到所述目标函数对应的类名列表,所述地址信息包括起始地址和偏移地址,所述目标函数包括开启后台任务的函数、结束后台任务的函数;
通过对比第一类名列表和所述第二类名列表,获取差异类,以对所述差异类的代码进行检测,得到后台任务检测结果,所述第一类名列表为开启后台任务的函数对应的类名列表,所述第二类名列表为结束后台任务的函数对应的类名列表。
可选地,所述通过地址匹配的方式获取包含所述目标函数的地址的每个目标符号,并通过每个所述目标符号的地址信息获取每个所述目标符号所对应的类名,得到所述目标函数对应的类名列表的步骤,包括:
针对任一符号,通过地址匹配的方式,在所述符号的汇编指令中查找所述目标函数的地址,并获取汇编指令中存在所述目标函数的地址的所有目标符号;
针对任一所述目标符号,通过所述目标符号的起始地址和偏移地址,在所述待检测项目的字符串表中查找与所述目标符号对应的类名,得到所述目标函数对应的类名列表。
可选地,所述针对任一符号,通过地址匹配的方式,在所述符号的汇编指令中查找所述目标函数的地址,并获取汇编指令中存在所述目标函数的地址的所有目标符号的步骤,包括:
获取所述目标函数的高位地址和低位地址;
在每个符号的汇编指令中查找所述目标函数的高位地址和低位地址,并获取汇编指令中存在所述目标函数的高位地址和低位地址的所有目标符号。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于五八有限公司,未经五八有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110745573.7/2.html,转载请声明来源钻瓜专利网。