[发明专利]隐藏API调用的检测方法、装置及计算机存储介质在审
| 申请号: | 201811638267.8 | 申请日: | 2018-12-29 |
| 公开(公告)号: | CN109739509A | 公开(公告)日: | 2019-05-10 |
| 发明(设计)人: | 甘甜 | 申请(专利权)人: | 北京奇虎科技有限公司 |
| 主分类号: | G06F8/41 | 分类号: | G06F8/41 |
| 代理公司: | 北京华沛德权律师事务所 11302 | 代理人: | 房德权 |
| 地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 目标应用程序 调用信息 计算机存储介质 抽象语法树 调用 语法树分析 安卓系统 程序代码 运行过程 检测 转化 开发 | ||
1.一种隐藏API调用的检测方法,其特征在于,包括:
获得安卓系统的隐藏API列表;
将目标应用程序的程序代码转化为抽象语法树,其中,所述目标应用程序安装在所述安卓系统中;
基于所述隐藏API列表,对所述抽象语法树进行语法树分析,获得所述目标应用程序对隐藏API的调用信息。
2.如权利要求1所述的方法,其特征在于,所述基于所述隐藏API列表,对所述抽象语法树进行语法树分析,获得所述目标应用程序对隐藏API的调用信息,包括:
对所述抽象语法树的节点进行扫描,获得每个节点调用的方法名称;
基于所述每个节点调用的方法名称,确定所述目标应用程序采用直接调用方式调用隐藏API的第一信息,以及确定所述目标应用程序采用反射调用方式调用隐藏API的第二信息;
将所述第一信息和所述第二信息作为所述调用信息。
3.如权利要求2所述的方法,其特征在于,所述确定所述目标应用程序采用直接调用方式调用隐藏API的第一信息,包括:
如果扫描到的节点调用的方法名称与预设直接调用方法名称匹配,确定该节点采用直接调用方式调用隐藏API;
获得所述抽象语法树中采用直接调用方式调用隐藏API的节点个数;
将所述抽象语法树中采用直接调用方式调用隐藏API的节点个数作为所述目标应用程序采用直接调用方式调用隐藏API的次数;
确定所述第一信息包括所述目标应用程序采用直接调用方式调用隐藏API的次数。
4.如权利要求2所述的方法,其特征在于,确定所述目标应用程序采用反射调用方式调用隐藏API的第二信息,包括:
如果扫描到的节点调用的方法名称与预设反射调用方法名称匹配,且该节点调用的方法中传入的字符与所述API列表中的预设字符匹配,确定该节点采用反射调用方式调用隐藏API;
获得所述抽象语法树中采用反射调用方式调用隐藏API的节点个数;
将所述抽象语法树中采用反射调用方式调用隐藏API的节点个数作为所述目标应用程序采用反射调用方式调用隐藏API的次数;
确定所述第二信息包括所述目标应用程序采用反射调用方式调用隐藏API的次数。
5.如权利要求3或4所述的方法,其特征在于,在所述获得安卓系统的隐藏API列表之前,所述方法还包括:
编译AOSP源码;
在识别到所述AOSP源码中的预设隐藏标识符时,获得与所述预设隐藏标识符对应的目标字符;
基于获得的目标字符,确定所述隐藏API列表。
6.如权利要求5所述的方法,其特征在于,所述基于获得的目标字符,确定所述隐藏API列表,包括:
确定所述目标字符的类型;
将所述目标字符添加至与所述目标字符的类型匹配的隐藏API子列表中,其中,所述隐藏API列表包括一个或多个预设类型的隐藏API子列表。
7.如权利要求6所述的方法,其特征在于,所述确定所述目标应用程序采用直接调用方式调用隐藏API的第一信息,包括:
在所述如果扫描到的节点调用的方法名称与预设直接调用方法名称匹配之后,确定该节点调用的方法的类型为第一类型以及该节点调用的方法对应的第一字符;
确定与所述第一类型对应的第一隐藏API子列表;
将所述第一字符与所述第一隐藏API子列表中的目标字符进行匹配,获得匹配成功的第一目标字符;
获得所述第一目标字符对应的第一属性信息,确实所述扫描到的节点采用直接调用方式调用的隐藏API的相关信息包括所述第一属性信息;
确定所述第一信息包括每个采用直接调用方式调用隐藏API的节点调用的隐藏API的相关信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司,未经北京奇虎科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811638267.8/1.html,转载请声明来源钻瓜专利网。





