[发明专利]一种识别APP程序中第三方库的方法有效
申请号: | 201810361862.5 | 申请日: | 2018-04-20 |
公开(公告)号: | CN108710492B | 公开(公告)日: | 2021-09-07 |
发明(设计)人: | 闫晓艳;刘亮;张耀 | 申请(专利权)人: | 四川普思科创信息技术有限公司 |
主分类号: | G06F8/53 | 分类号: | G06F8/53;G06F21/56 |
代理公司: | 成都顶峰专利事务所(普通合伙) 51224 | 代理人: | 陈钱 |
地址: | 610000 四川省成都市高新*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 识别 app 程序 第三 方法 | ||
1.一种识别APP程序中第三方库的方法,其特征在于,包括如下步骤:
S101.收集已知的第三方库;
S102.针对各个第三方库,通过预处理获取对应第三方库中的所有函数,并根据函数调用关系确定该第三方库的特征函数;
S103.针对各个第三方库的特征函数,确定第一函数特征值;
S104.针对目标APP程序,通过预处理获取目标APP程序中的所有函数;
S105.针对目标APP程序中的各个函数,按照与步骤S103一致的方法,确定第二函数特征值;
S106.遍历目标APP程序中各个函数的第二函数特征值,若与其中一个第三方库的第一函数特征值相同,则确定在目标APP程序中使用了该第三方库;
在所述步骤S103中,按照如下步骤确定第一函数特征值:
S201.获取特征函数的返回值类型,若该返回值类型为系统类型,则将该返回值类型作为第一特征字段,否则获取该返回值类型与参考类的相对路径,并将经匿名化处理的该相对路径作为第一特征字段;
S202.获取特征函数的所有参数类型,并针对每个参数类型,若该参数类型为系统类型,则将该参数类型作为第二特征字段,否则获取该参数类型与参考类的相对路径,将经匿名化处理的该相对路径作为第二特征字段;
S203.判断原始的特征函数是否拥有直接调用的被调用函数,若有则将被调用函数视为特征函数,获取各个被调用函数的函数特征值,并按照与步骤S201至S202一致的方法获取被调用函数对应的第一特征字段和第二特征字段,然后依次拼接被调用函数对应的第一特征字段、被调用函数对应的所有第二特征字段和按字母顺序排序的所有被调用函数的函数特征值,得到特征函数的特征字符串;
S204.对特征函数的特征字符串进行哈希算法处理,获取第一函数特征值。
2.如权利要求1所述的一种识别APP程序中第三方库的方法,其特征在于,在所述步骤S203中,若判断原始的特征函数没有直接调用的被调用函数,则依次拼接第一特征字段和所有的第二特征字段,得到特征函数的特征字符串。
3.如权利要求1所述的一种识别APP程序中第三方库的方法,其特征在于,在所述步骤S204中,对特征字符串进行哈希算法处理的哈希算法为MD5算法。
4.如权利要求1所述的一种识别APP程序中第三方库的方法,其特征在于,在所述步骤S201和所述步骤S202中,对相对路径进行匿名化处理的方式为:将相对路径中的所有字符串替换为特定字符。
5.如权利要求1所述的一种识别APP程序中第三方库的方法,其特征在于,在所述步骤S102中,具体包括如下步骤:
S401.对第三方库进行预处理,获取Dalvik字节码;
S402.根据Dalvik字节码获取第三方库中的所有函数,并按照如下方式生成表征函数调用关系的函数调用图:每个节点表示一个函数,每个单向箭头指向被调用函数;
S403.针对函数调用图中的各个函数,以其为起点得到对应的函数调用子图;
S404.按照函数调用子图中的节点个数进行排序,取节点个数最多的函数调用子图所在的起点函数为特征函数。
6.如权利要求1所述的一种识别APP程序中第三方库的方法,其特征在于,所述目标APP程序为安卓程序。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川普思科创信息技术有限公司,未经四川普思科创信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810361862.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于C/S架构的软件管理系统及方法
- 下一篇:软件清理方法及装置