CN110378118A - 高效准确的安卓应用第三方库检测方法 - Google Patents
高效准确的安卓应用第三方库检测方法 Download PDFInfo
- Publication number
- CN110378118A CN110378118A CN201910561124.XA CN201910561124A CN110378118A CN 110378118 A CN110378118 A CN 110378118A CN 201910561124 A CN201910561124 A CN 201910561124A CN 110378118 A CN110378118 A CN 110378118A
- Authority
- CN
- China
- Prior art keywords
- lib
- packet
- class
- tpl
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种高效准确的安卓应用第三方库检测方法,包括以下步骤:步骤1,对于一个应用程序APK,通过分析包依赖性和包同质性,将应用程序中的所有包分为主模块和非主模块两类;步骤2,对于LIB数据库中的每个LIB,分别生成所有类的签名并计算每个类和包的权重值;步骤3,基于相似度分数确定TPL候选者列表;步骤4,对TPL候选者列表进行过滤。
Description
技术领域
本发明涉及一种电数字数据处理技术,特别是一种Android应用程序安全性分析技术中的高效准确的安卓应用第三方库检测方法。
背景技术
第三方库(TPL)检测是安卓安全领域相对基础且重要的研究热点之一,对Android应用程序安全性分析的准确性也有重大影响。第三方库作为一种重要的可重用软件构件,越来越受到应用开发人员的重视,在移动平台上的应用中得到越来越广泛的应用。然而,最近的研究表明,TPL对移动用户的隐私构成了威胁。TPL可用来侵犯用户隐私,例如收集用户的电子邮件地址、读取联系人信息等。在当前的Android权限模型中,TPL与主机应用程序具有相同的功能,这意味着一旦主机应用程序请求了相应的敏感权限,TPL就可以执行一些敏感的操作。因此,在没有用户授权的情况下,TPL可以泄露用户的隐私数据。因此,第三方库检测对Android应用程序安全性分析有重大作用。
现有的大部分第三方库检测研究工作可以大致分为三类:基于白名单的方法、基于机器学习的方法和基于签名比较的方法。基于白名单的方法有三个主要缺点(L.Li,J.Klein,Y.Le Traon et al.,“An investigation into the use of common librariesin android apps,”in 2016IEEE 23rd International Conference on SoftwareAnalysis,Evolution,and Reengineering(SANER),vol.1.IEEE,2016,pp.403–414)。首先,它不能处理诸如标识符重命名之类的模糊技术。第二,它需要不断保持白名单更新。第三,它只能检测白名单中的TPL。机器学习方法通常提取多个级别的库特征,形成特征向量,并在特征向量上应用机器学习算法检测TPL(LibD:Scalable and Precise Third-PartyLibrary Detection in Android Markets[C]//2017IEEE/ACM 39th InternationalConference on Software Engineering(ICSE).IEEE Computer Society,2017;Libradar:Fast and accurate detection ofthird-party libraries in android apps.In ICSE’16.ACM,2016)。与基于白名单的方法相比,基于机器学习方法的优点是其可以在应用程序被模糊处理的情况下识别出TPL,但是不能识别出被修改代码后的TPL或不太流行的TPL。近年来比较新的方法是基于签名的方法,通过成对比较LIB数据库和应用程序之间的签名,从应用程序中识别TPL。这种方法可以很好地处理应用程序被模糊化的情况,即使程序中的标识符被混淆处理,也能被准确地识别出来。但是这类方法忽略了LIB数据库中存在着大量相似的TPL的事实,从而导致检测结果有比较高的假阳性。再者,该方法必须依靠LIB数据库的完整性,而数据库越大,漏检的可能性越小,带来的弊端是检测效率越低。这些方法都无法在短时间内有效准确地检测出安卓应用中的第三方库。
发明内容
本发明的目的在于提供一种高效准确的安卓应用第三方库检测方法。
实现本发明目的的技术方案为:一种高效准确的安卓应用第三方库检测方法,其特征在于,包括以下步骤:
步骤1,对于一个应用程序APK,通过分析包依赖性和包同质性,将应用程序中的所有包分为主模块和非主模块两类;
步骤2,对于LIB数据库中的每个LIB,分别生成所有类的签名并计算每个类和包的权重值;
步骤3,基于相似度分数确定TPL候选者列表;
步骤4,对TPL候选者列表进行过滤。
进一步地,步骤1的具体过程为:
步骤1.1,给定一个待检测应用程序,P表示APK所有包,Pr表示主模块中的包;
步骤1.2,找出应用程序主入口类,该类所在的包q表示为主模块的主包,q∈Pr;
步骤1.3,遍历P中的每一个包Pi,Pi∈P,计算(Pi,q)的依赖强度dScore
dScore=w1Is+w2Cs+w3Rs
其中,Is、Cs、Rs分别表示类依赖关系、方法调用关系以及成员字段引用关系,w1、w2、w3分别是分配给Is、Cs、Rs的权重值;
步骤1.4,当dScore(Pi,q)的值超出阈值时,判断(Pi,q)是否存在父子关系或者兄弟关系,若有则Pi∈Pr。
步骤1.5,得到的非主模块包集A=P-Pr。
进一步地,步骤2的具体过程为:
步骤2.1,对于LIB中的每一个类lc的权重计算如下
weight(lc)=count(lc.m)+deg+(lc)+deg-(lc)
其中,count(lc.m)表示lc中的方法数,deg+(lc)和deg-(lc)分别表示lc依赖的类数目以及依赖于lc的类数目;
步骤2.2,计算lc的加权权重值
其中,|lp|为包中类的数目;
步骤2.3,对于LIB中的每一个包lp,计算包的权重值weight(lp)
其中,count(lp.c)表示lp中的类数目,表示lp中每个类权重值的加和;
步骤2.4,计算lp的加权权重值记为
其中,|lib|为包中类的数目。
进一步地,步骤3的具体过程为:
步骤3.1对于给定的LIB,设L为LIB中的n个包,记为L={lp1,…,lpi,…,lpn},相应的A表示APK中的m个包A={ap1,…,api,…,apm},LN和AN分别表示LIB和APK的包名,分别记为LN={lp1 N,…,lpi N,…,lpn N}、AN={ap1 N,…,api N,…,apm N};
步骤3.2,计算lpi中的每一个类lpc和api中的每一个类apc之间的相似值simc_to_c(lpc,apc)
其中,apc_member_signatures和lpc_member_signatures分别是APK和LIB数据库中LIB中的类的成员签名,
步骤3.3,根据simc_to_c(lpc,apc)对于lpi中的每一个类ci,找到api中与ci相似度最高的类apc,其最高相似值记为simc_to_p(ci,ap);
步骤3.4,根据simc_to_p(ci,ap)计算<lpi,api>的相似值simp_to_p(lp,ap)
根据simp_to_p(lp,ap)找到对于L中的每一个类lpi,A中与lpi相似度最高的包ap,其最高相似值记为simp_to_a(lpi,A)。根据该值计算出最终<lib,apk>的相似值,记为siml_to_a(L,A),计算公式如下所示:
步骤3.5,对于LN中的每一个lpN,如果都能在AN中找到包名相同的apN,则计算每一对包名相同的<lpi,api>的相似值;若最后的总体相似值siml_to_a(L,A)大于阈值,则将该LIB加入到TPL候选者列表中,步骤3结束;若包名不同,跳转到步骤3.2。
步骤3.6,若包名匹配失败,对于L中的每一个lp和A中的每一个ap,需要计算每一对<lp,ap>的相似值,找到每一个lp相似值最高的ap;若最后的总体相似值siml_to_a(L,A)大于阈值,则将该LIB加入到TPL候选者列表中,步骤3结束。
进一步地,步骤4中采用全局完美匹配过滤器、包关系过滤器和TPL版本过滤器过滤候选的TPL,具体过程为:
(1)全局完美匹配过滤器
获取每一个APK包api大于阈值的siml_to_a(L,A)最大值对应的lpg;
检查每个候选LIB中的每个匹配包对<lpi,api>,若lpi=lpg则perfectMatchScore+=weight(lpi),
根据perfectMatchScore的最终值是否超过阈值来确定候选LIB是否需要被过滤掉。
(2)从包关系角度设计的包关系过滤器
对于LIB中任意两个匹配包对<api,lpi>,<apj,lpj>,
若api和apj是父子关系的同时lpi和lpj也是父子关系,则该候选LIB保留在TPL候选者列表;若api和apj是父子关系但lpi和lpj不是父子关系,该候选LIB被排除在TPL候选者列表外;
若api和apj是兄弟关系的同时lpi和lpj也是兄弟关系,是父子关系的同时lpi和lpj也是父子关系;若api和apj是兄弟关系但lpi和lpj不是兄弟关系,该候选LIB被排除在候选TPL列表;
(3)TPL版本过滤器
在TPL候选列表中选出相似性分数和完美匹配分数总分数最高的LIB,排除其他版本的候选者,
选出TPL候选列表中除版本号外LIB名相同的所有LIB,
结合perfectMatchScore和siml_to_a(L,A)选出总分数最高的LIB作为保留TPL,排除其他不同版本的LIB。
本发明与现有技术相比,具有以下优点:(1)通过对APK进行模块解耦,排除主模块的包,可以保证在更短时间内完成APK和LIB之间的相似性比较;(2)采用完美匹配策略保证每一个APK包只对应一个LIB包,更精确地检测出APK中的TPL,不会造成高假阳性现象;(3)本发明引入了一组过滤器,包括全局完美匹配过滤器、包关系过滤器和TPL版本过滤器,提高了准确性和精度。
下面结合说明书附图对本发明作进一步描述。
附图说明
图1是APK结构示意图。
图2是APK模块解耦示意图。
图3是APK和LIB匹配流程图。
图4是候选LIB筛选流程图。
图5是方法流程示意图。
具体实施方式
本发明中,LIB数据库中的LIB库是通过https://search.maven.org/上爬下来的,是检测TPL的依据。
本发明中,LIB是library,表示库。开发apk会引入第三方库,这种库是别人开发好的,开发者直接插入第三方库后就可以直接方便的实现一些功能。
本发明中,把LIB数据库中的第三方库称为lib,把引入到apk中的第三方库称为TPL。每一个LIB都由一系列包组成,每个包由一系列类组成,所有类就是LIB中所有的类。
本发明中,TPL(thirdparty library)是第三方库,跟lib是一样的都是库。TPL候选列表是检测结果,但是这个检测结果含有假阳性,需要经过筛选才能成为最终的检测结果。这个方法的最终目的就是检测出输入的apk里被插入过哪些TPL。
结合图5,一种高效准确的安卓应用第三方库检测方法,包括以下步骤:
步骤1,通过包的依赖性和包的同质性分析,划分出属于主模块的包,最终得到非主模块的所有包,结合图1和图2,过程如下:
给定一个待检测APK,P表示用apktool工具反编译后的APK所有包,Pr表示主模块中的包,在AndroidManifest.xml中找出程序主入口类,该类所在的包q表示为主模块的主包,q∈Pr。遍历P中的每一个包Pi,Pi∈P,计算(Pi,q)的依赖强度dScore:
dScore=w1Is+w2Cs+w3Rs
其中,Is、Cs、Rs分别表示类依赖关系、方法调用关系以及成员字段引用关系,w1、w2、w3分别是分配给Is、Cs、Rs的权重值,可以分别取10、2、1。当dScore(Pi,q)的值超出阈值时,判断(Pi,q)是否有同质性关系,即包与包之间的关系,若两个包之间存在父子关系或者兄弟关系,那么两个包就存在同质性关系。若关系成立,则Pi∈Pr。重复以上过程,直到P中的每一个包都遍历完成,即完成主模块解耦部分。得到的非主模块包集A=P-Pr作为后续过程的输入。
步骤2,预处理待检测APK和LIB。对于APK和LIB数据库中的每一个LIB都需要生成各自的一系列类级别签名,通过比较类签名序列达到高效准确地匹配效果,然后以加权方式进行签名比较。APK和TPL类签名都采用32位的MD5哈希值。下面是类权重以及包权重值计算方式:
对于LIB中的每一个类,lc的权重计算如下
weight(lc)=count(lc.m)+deg+(lc)+deg-(lc)
count(lc.m)表示lc中的方法数,deg+(lc)和deg-(lc)分别表示lc依赖的类数目以及依赖于lc的类数目。lc的加权权重值记为
其中,|lp|为包中类的数目;
对于LIB中的每一个包lp,同样需要计算包的权重值,包权重计算如下所示
count(lp.c)表示lp中的类数目,表示lp中每个类权重值的加和。lpi的加权权重值记为
其中,|lib|为包中类的数目。
步骤3,基于相似度分数确定TPL候选列表。
对于给定的LIB,设L为LIB中的n个包,记为L={lp1,…,lpi,…,lpn},相应的A表示APK中的m个包A={ap1,…,api,…,apm},LN和AN分别表示LIB和APK的包名,分别记为LN={lp1 N,…,lpi N,…,lpn N},AN={ap1 N,…,api N,…,apm N}。
LIB和APK相似值siml_to_a(L,A)计算过程如下:
对于lpi中的每一个类lpc和api中的每一个类apc,计算lpc和apc之间的相似值,记为simc_to_c(lpc,apc),计算公式如下所示:
其中,apc_member_signatures和lpc_member_signatures分别是APK和LIB数据库中LIB中的类的成员签名,一个类中有方法、字段等,类的成员签名就包括方法、字段及类依赖关系签名,apk结构与库结构是一样的。
根据simc_to_c(lpc,apc)找到对于lpi中的每一个类ci,api中与ci相似度最高的类apc,其最高相似值记为simc_to_p(ci,ap)。根据该值计算<lpi,api>的相似值,记为simp_to_p(lp,ap),计算公式如下所示:
根据simp_to_p(lp,ap)找到对于L中的每一个类lpi,A中与lpi相似度最高的包ap,其最高相似值记为simp_to_a(lpi,A)。根据该值计算出最终<lib,apk>的相似值,记为siml_to_a(L,A),计算公式如下所示:
步骤3.1包名匹配,对于LN中的每一个lpN,如果都能在AN中找到包名相同的apN,那么只需要计算每一对包名相同的<lpi,api>的相似值。若最后的总体相似值siml_to_a(L,A)大于阈值,则将该LIB加入到候选者列表中。步骤3结束。若包名匹配失败,跳转到步骤3.2。
步骤3.2若包名不同(譬如包名android.support跟包名android.support匹配成功,android.support跟com.facebook匹配失败),对于L中的每一个lp,以及A中的每一个ap,需要计算每一对<lp,ap>的相似值,找到每一个lp相似值最高的ap。若最后的总体相似值siml_to_a(L,A)大于阈值,则将该LIB加入到候选者列表中。步骤3结束。
在上述匹配过程中为每个api找到相似度最高的lpg将其定义为该api的完美匹配者,记为<api,lpg>。
步骤4,TPL候选者过滤。在获得候选TPL清单之后,设计三种过滤器,包括全局完美匹配过滤器、包关系过滤器和TPL版本过滤器来过滤候选TPL,并确定在Android应用程序中使用的TPL的特定版本,对于不满足任意一过滤器过滤条件的候选TPL均被过滤掉。步骤如下:
步骤4.1,全局完美匹配过滤器,计算每个候选LIB的完美匹配分数,对于每一个APK包api都有对应的完美匹配LIB包lpg,检查每个候选LIB中的每个匹配包对<lpi,api>,若lpi=lpg则perfectMatchScore+=weight(lpi)。根据perfectMatchScore的最终值是否超过阈值来确定候选LIB是否需要被过滤掉,如果一个候选lib的perfectMatchScore低于阈值0.05就会被过滤掉。
所述完美匹配由包相似性分数决定,一个api可能在lib数据库中找到一系列与api相似性分数超过阈值的lp。但是每个api实际上只能由一个lib包引入,根据相似性分数的大小,决定分数最高的lp为api的完美匹配者。
步骤4.2,从包关系角度设计的包关系过滤器,以提高精度。这里,我们考虑两种类型的包关系:父子关系和兄弟关系。对于LIB中任意两个匹配包对<api,lpi>,<apj,lpj>,若api和apj是父子关系,那么lpi和lpj也应该是父子关系,否则该候选LIB被排除在TPL候选者列表外;若api和apj是兄弟关系,那么lpi和lpj也应该是兄弟关系,否则该候选LIB被排除在候选TPL列表。
步骤4.3,TPL版本过滤器结合相似性分数和完美匹配分数在TPL候选列表中选出总分数最高的LIB,排除其他版本的候选者。选出TPL候选列表中除版本号外LIB名相同的所有LIB,结合perfectMatchScore和siml_to_a(L,A)选出分数最高的LIB作为保留TPL,排除其他不同版本的LIB。譬如lib的全名为play-services-flags-15.0.1,play-services-flags是lib名,15.0.1是版本号。
Claims (5)
1.一种高效准确的安卓应用第三方库检测方法,其特征在于,包括以下步骤:
步骤1,对于一个应用程序APK,通过分析包依赖性和包同质性,将应用程序中的所有包分为主模块和非主模块两类;
步骤2,对于LIB数据库中的每个LIB,分别生成所有类的签名并计算每个类和包的权重值;
步骤3,基于相似度分数确定TPL候选者列表;
步骤4,对TPL候选者列表进行过滤。
2.根据权利要求1所述的方法,其特征在于,步骤1的具体过程为:
步骤1.1,给定一个待检测应用程序,P表示APK所有包,Pr表示主模块中的包;
步骤1.2,找出应用程序主入口类,该类所在的包q表示为主模块的主包,q∈Pr;
步骤1.3,遍历P中的每一个包Pi,Pi∈P,计算(Pi,q)的依赖强度dScore
dScore=w1Is+w2Cs+w3Rs
其中,Is、Cs、Rs分别表示类依赖关系、方法调用关系以及成员字段引用关系,w1、w2、w3分别是分配给Is、Cs、Rs的权重值;
步骤1.4,当dScore(Pi,q)的值超出阈值时,判断(Pi,q)是否存在父子关系或者兄弟关系,若有则Pi∈Pr。
步骤1.5,得到的非主模块包集A=P-Pr。
3.根据权利要求1所述的方法,其特征在于,步骤2的具体过程为:
步骤2.1,对于LIB中的每一个类lc的权重计算如下
weight(lc)=count(lc.m)+deg+(lc)+deg-(lc)
其中,count(lc.m)表示lc中的方法数,deg+(lc)和deg-(lc)分别表示lc依赖的类数目以及依赖于lc的类数目;
步骤2.2,计算lc的加权权重值
其中,|lp|为包中类的数目;
步骤2.3,对于LIB中的每一个包lp,计算包的权重值weight(lp)
其中,count(lp.c)表示lp中的类数目,表示lp中每个类权重值的加和;
步骤2.4,计算lp的加权权重值记为
其中,|lib|为包中类的数目。
4.根据权利要求1所述的方法,其特征在于,步骤3的具体过程为:
步骤3.1对于给定的LIB,设L为LIB中的n个包,记为L={lp1,…,lpi,…,lpn},相应的A表示APK中的m个包A={ap1,…,api,…,apm},LN和AN分别表示LIB和APK的包名,分别记为LN={lp1 N,…,lpi N,…,lpn N}、AN={ap1 N,…,api N,…,apm N};
步骤3.2,计算lpi中的每一个类lpc和api中的每一个类apc之间的相似值simc_to_c(lpc,apc)
其中,apc_member_signatures和lpc_member_signatures分别是APK和LIB数据库中LIB中的类的成员签名,
步骤3.3,根据simc_to_c(lpc,apc)对于lpi中的每一个类ci,找到api中与ci相似度最高的类apc,其最高相似值记为simc_to_p(ci,ap);
步骤3.4,根据simc_to_p(ci,ap)计算<lpi,api>的相似值simp_to_p(lp,ap)
根据simp_to_p(lp,ap)找到对于L中的每一个类lpi,A中与lpi相似度最高的包ap,其最高相似值记为simp_to_a(lpi,A)。根据该值计算出最终<lib,apk>的相似值,记为siml_to_a(L,A),计算公式如下所示:
步骤3.5,对于LN中的每一个lpN,如果都能在AN中找到包名相同的apN,则计算每一对包名相同的<lpi,api>的相似值;若最后的总体相似值siml_to_a(L,A)大于阈值,则将该LIB加入到TPL候选者列表中,步骤3结束;若包名不同,跳转到步骤3.2。
步骤3.6,若包名匹配失败,对于L中的每一个lp和A中的每一个ap,需要计算每一对<lp,ap>的相似值,找到每一个lp相似值最高的ap;若最后的总体相似值siml_to_a(L,A)大于阈值,则将该LIB加入到TPL候选者列表中,步骤3结束。
5.根据权利要求4所述的方法,其特征在于,步骤4中采用全局完美匹配过滤器、包关系过滤器和TPL版本过滤器过滤候选的TPL,具体过程为:
(1)全局完美匹配过滤器
获取每一个APK包api大于阈值的siml_to_a(L,A)最大值对应的lpg;
检查每个候选LIB中的每个匹配包对<lpi,api>,若lpi=lpg则perfectMatchScore+=weight(lpi),
根据perfectMatchScore的最终值是否超过阈值来确定候选LIB是否需要被过滤掉。
(2)从包关系角度设计的包关系过滤器
对于LIB中任意两个匹配包对<api,lpi>,<apj,lpj>,
若api和apj是父子关系的同时lpi和lpj也是父子关系,则该候选LIB保留在TPL候选者列表;若api和apj是父子关系但lpi和lpj不是父子关系,该候选LIB被排除在TPL候选者列表外;
若api和apj是兄弟关系的同时lpi和lpj也是兄弟关系,是父子关系的同时lpi和lpj也是父子关系;若api和apj是兄弟关系但lpi和lpj不是兄弟关系,该候选LIB被排除在候选TPL列表;
(3)TPL版本过滤器
在TPL候选列表中选出相似性分数和完美匹配分数总分数最高的LIB,排除其他版本的候选者,
选出TPL候选列表中除版本号外LIB名相同的所有LIB,
结合perfectMatchScore和siml_to_a(L,A)选出总分数最高的LIB作为保留TPL,排除其他不同版本的LIB。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910561124.XA CN110378118B (zh) | 2019-06-26 | 2019-06-26 | 高效准确的安卓应用第三方库检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910561124.XA CN110378118B (zh) | 2019-06-26 | 2019-06-26 | 高效准确的安卓应用第三方库检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110378118A true CN110378118A (zh) | 2019-10-25 |
CN110378118B CN110378118B (zh) | 2022-11-25 |
Family
ID=68249510
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910561124.XA Active CN110378118B (zh) | 2019-06-26 | 2019-06-26 | 高效准确的安卓应用第三方库检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110378118B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111190641A (zh) * | 2020-01-23 | 2020-05-22 | 复旦大学 | 基于API分析的Java第三方库版本统一推荐方法 |
CN114491553A (zh) * | 2022-01-02 | 2022-05-13 | 西安电子科技大学 | 基于多粒度匹配的Android第三方功能库检测方法 |
CN115879098A (zh) * | 2023-02-20 | 2023-03-31 | 北京麟卓信息科技有限公司 | 一种基于原子事务操作的安卓应用安装优化方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103473346A (zh) * | 2013-09-24 | 2013-12-25 | 北京大学 | 一种基于应用程序编程接口的安卓重打包应用检测方法 |
CN104636665A (zh) * | 2015-02-03 | 2015-05-20 | 南京理工大学 | 一种Android应用程序的描述和匹配方法 |
-
2019
- 2019-06-26 CN CN201910561124.XA patent/CN110378118B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103473346A (zh) * | 2013-09-24 | 2013-12-25 | 北京大学 | 一种基于应用程序编程接口的安卓重打包应用检测方法 |
CN104636665A (zh) * | 2015-02-03 | 2015-05-20 | 南京理工大学 | 一种Android应用程序的描述和匹配方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111190641A (zh) * | 2020-01-23 | 2020-05-22 | 复旦大学 | 基于API分析的Java第三方库版本统一推荐方法 |
CN114491553A (zh) * | 2022-01-02 | 2022-05-13 | 西安电子科技大学 | 基于多粒度匹配的Android第三方功能库检测方法 |
CN114491553B (zh) * | 2022-01-02 | 2024-05-14 | 西安电子科技大学 | 基于多粒度匹配的Android第三方功能库检测方法 |
CN115879098A (zh) * | 2023-02-20 | 2023-03-31 | 北京麟卓信息科技有限公司 | 一种基于原子事务操作的安卓应用安装优化方法 |
CN115879098B (zh) * | 2023-02-20 | 2023-05-05 | 北京麟卓信息科技有限公司 | 一种基于原子事务操作的安卓应用安装优化方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110378118B (zh) | 2022-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110378118A (zh) | 高效准确的安卓应用第三方库检测方法 | |
WO2019051946A1 (zh) | 节点任务数据显示方法、装置、存储介质和计算机设备 | |
CN104700033A (zh) | 病毒检测的方法及装置 | |
CN110474900B (zh) | 一种游戏协议测试方法及装置 | |
US8904352B2 (en) | Systems and methods for processing source code during debugging operations | |
CN101192931A (zh) | 认证系统、认证装置及认证方法 | |
CN107247902A (zh) | 恶意软件分类系统及方法 | |
RU2012156434A (ru) | Система и способ выбора оптимального типа антивирусной проверки при доступе к файлу | |
CN102867038A (zh) | 文件类型的确定方法和装置 | |
US20150213272A1 (en) | Conjoint vulnerability identifiers | |
CN106709336A (zh) | 识别恶意软件的方法和装置 | |
CN113221032A (zh) | 链接风险检测方法、装置以及存储介质 | |
KR20150124020A (ko) | 악성코드 식별 태그 설정 시스템 및 방법, 및 악성코드 식별 태그를 이용한 악성코드 검색 시스템 | |
JP5495934B2 (ja) | 画像処理装置、その処理方法及びプログラム | |
JP6437892B2 (ja) | ソフトウェア解析システム、ソフトウェア解析方法およびソフトウェア解析プログラム | |
WO2023035362A1 (zh) | 用于模型训练的污染样本数据的检测方法及装置 | |
CN108388513B (zh) | 一种自动化测试方法及装置 | |
CN112698861A (zh) | 源代码克隆识别方法及系统 | |
CN109002441A (zh) | 应用名称相似度的确定方法、异常应用检测方法及系统 | |
CN115185980B (zh) | 医院病案数据检索方法、装置、设备及存储介质 | |
CN107786529A (zh) | 网站的检测方法、装置及系统 | |
CN111324892A (zh) | 生成脚本文件的软件基因和脚本检测的方法、装置及介质 | |
CN104794397A (zh) | 病毒检测方法和装置 | |
Missier et al. | Managing information quality in e-science: the qurator workbench | |
EP3108400A1 (en) | Virus signature matching method and apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |