CN104123493A - 应用程序的安全性检测方法和装置 - Google Patents

应用程序的安全性检测方法和装置 Download PDF

Info

Publication number
CN104123493A
CN104123493A CN201410375006.7A CN201410375006A CN104123493A CN 104123493 A CN104123493 A CN 104123493A CN 201410375006 A CN201410375006 A CN 201410375006A CN 104123493 A CN104123493 A CN 104123493A
Authority
CN
China
Prior art keywords
program
performance
feature
application program
detected
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
Application number
CN201410375006.7A
Other languages
English (en)
Other versions
CN104123493B (zh
Inventor
包沉浮
夏良钊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Baidu Online Network Technology Beijing Co Ltd
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201410375006.7A priority Critical patent/CN104123493B/zh
Publication of CN104123493A publication Critical patent/CN104123493A/zh
Application granted granted Critical
Publication of CN104123493B publication Critical patent/CN104123493B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/565Static detection by checking file integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Abstract

本发明实施例提供一种应用程序的安全性检测方法和装置。该方法包括:从待检测的应用程序中获取程序特征,程序特征至少包括:代码结构特征和/或文件结构特征;将程序特征与标准程序特征进行匹配,根据匹配结果确定应用程序的安全性。本方案通过从待检测应用程序中获取程序特征,能够得到包括代码结构特征和/或文件结构特征在内的重要特征,并通过将程序特征与标准程序特征进行匹配,能够根据匹配成功、匹配失败、或特征重合度等匹配结果确定待检测的应用程序的安全性,通过匹配程序特征,能够检测代码是否被更改,或是否增加恶意代码,以及文件是否被替换等,因此通过代码结构特征和/或文件结构特征能够从根本上检测待检测应用程序是否为盗版。

Description

应用程序的安全性检测方法和装置
技术领域
[0001] 本发明实施例涉及软件安全技术,尤其涉及一种应用程序的安全性检测方法和装 置。
背景技术
[0002] 以安卓(Andorid)应用程序为例,Andorid平台是目前世界上较流行的一种以 Linux为基础的开放源码操作系统,主要应用于手机、平板电脑等移动终端。Android平台 由操作系统、中间件、用户界面和应用软件组成,Android应用程序即指Android平台下的 应用软件。Android应用程序的开放性使应用程序本身获得了快速的发展,但由于Android 操作系统本身缺乏严格的审核机制和有效的应用认证机制,带来了各种隐患,其中一大隐 患就是盗版应用程序的泛滥。
[0003] 盗版应用程序会带来各种各样的问题:大量的"去广告"版使得开发者蒙受经济损 失,让正版应用程序开发者无法从开发应用中获利;更为严重的是,大量的恶意程序伪装成 正版应用诱骗用户下载,并在其中植入了恶意代码,可以盗取用户的隐私信息或感染其手 机,使用户遭受巨大经济损失。因此,对应用程序进行安全检测的技术应运而生。
[0004] 现有的应用程序的安全性检测技术,一般是根据应用程序的包名或者应用名称的 完全匹配来进行检测。
[0005] 上述应用程序的安全性检测技术存在以下缺陷:由于盗版应用程序通过修改原始 应用程序的包名,或者取一些近似的应用名称,导致盗版应用程序的检测率低。
发明内容
[0006] 本发明实施例提供一种应用程序的安全性检测方法和装置,以检测应用程序的安 全性,提高了盗版应用程序的检测率。
[0007] 第一方面,本发明实施例提供了一种应用程序的安全性检测方法,包括:
[0008] 从待检测的应用程序中获取程序特征,所述程序特征至少包括:代码结构特征和 /或文件结构特征;
[0009] 将所述程序特征与标准程序特征进行匹配,根据匹配结果确定所述待检测的应用 程序的安全性。
[0010] 第二方面,本发明实施例还提供了一种应用程序的安全性检测装置,包括:
[0011] 程序特征获取模块,用于从待检测的应用程序中获取程序特征,所述程序特征至 少包括:代码结构特征和/或文件结构特征;
[0012] 程序安全性确定模块,用于将所述程序特征与标准程序特征进行匹配,根据匹配 结果确定所述待检测的应用程序的安全性。
[0013] 本发明实施例提供的应用程序的安全性检测方法和装置,通过从待检测的应用程 序中获取程序特征,能够得到包括代码结构特征和/或文件结构特征在内的重要特征,并 通过将程序特征与标准程序特征进行匹配,能够根据匹配成功、匹配失败、或特征重合度等 匹配结果确定待检测的应用程序的安全性。本方案通过匹配程序特征,能够检测代码是否 被更改,或是否增加恶意代码,以及文件是否被替换等,因此通过代码结构特征和/或文件 结构特征能够从根本上检测待检测应用程序是否为盗版。
附图说明
[0014] 为了更清楚地说明本发明,下面将对本发明中所需要使用的附图做一简单地介 绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来 讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0015] 图la为本发明实施例一提供的一种应用程序的安全性检测方法的流程图;
[0016] 图lb为本发明实施例一的方法适用的客户端和服务器协同工作的示意图;
[0017] 图2a为本发明实施例二提供的一种应用程序的安全性检测方法的流程图;
[0018] 图2b为本发明实施例二提供的另一种应用程序的安全性检测方法的流程图;
[0019] 图3为本发明实施例三提供的一种应用程序的安全性检测方法的流程图;
[0020] 图4为本发明实施例四提供的一种应用程序的安全性检测装置的结构示意图。
具体实施方式
[0021] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施例 中的技术方案作进一步详细描述,显然,所描述的实施例是本发明一部分实施例,而不是全 部的实施例。可以理解的是,此处所描述的具体实施例仅用于解释本发明,而非对本发明的 限定,基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得 的所有其他实施例,都属于本发明保护的范围。另外还需要说明的是,为了便于描述,附图 中仅示出了与本发明相关的部分而非全部内容。
[0022] 实施例一
[0023] 请参阅图la,为本发明实施例一提供的一种应用程序的安全性检测方法的流程 图。本发明实施例的方法可以由硬件和/或软件实现的应用程序的安全检测装置来执行, 该实现装置典型的是配置于能够提供应用程序的安全检测服务的服务器中。
[0024] 如图la所示,该方法包括:
[0025] 110、从待检测的应用程序中获取程序特征,所述程序特征至少包括:代码结构特 征和/或文件结构特征;
[0026] 本操作具体是获取待检测的应用程序的程序特征。具体地,可以只获取待检测的 应用程序的代码结构特征,也可以只获取待检测的应用程序的文件结构特征,还可以获取 待检测的应用程序的代码结构特征以及文件结构特征。
[0027] 以Andorid应用程序为例进行说明。在Android系统中,一个可以安装、运行的 应用,需要打包成Android系统的APK(Android application package file)文件格式,即 Android安装包。Android系统中检测一个应用的安全性是通过APK文件的特征进行检测 的。
[0028] 120、将所述程序特征与标准程序特征进行匹配,根据匹配结果确定所述待检测的 应用程序的安全性。
[0029] 本操作具体是将待检测的应用程序的程序特征与正版应用的标准程序特征进行 匹配,并基于匹配结果确定待检测的应用程序的安全性。
[0030] 下面对代码结构特征和文件结构特征进行解释。代码结构特征和文件结构特征, 即不仅体现代码和文件本身的特征,还体现代码和文件集合的结构属性,则在进行应用程 序安全性检测时,能够综合考虑程序的整体属性特点。
[0031] 优选地,所述代码结构特征包括程序的单元属性集合。
[0032] 进一步地,所述单元为代码类;所述单元属性集合为所述应用程序中全部单元的 属性集合或全部单元属性集合的设定子集合;所述单元属性为唯一标识所述单元的属性。
[0033] 具体地,所述单元为代码类时,所述代码类属性包括类名称、类代码和类代码哈希 值的至少一项。其中,哈希算法将任意长度的二进制值映射为固定长度的较小二进制值,该 较小的二进制值称为哈希值。
[0034] Android应用通常是用Java语言开发的,用Android开发工具编译之后形成二进 制的字节码,这些字节码被打包成classes, dex文件,换言之,Android应用的代码主体为 classes, dex文件所包含的Java类。通过解析classes, dex文件,反编译其字节码,就可以 得到应用程序所要执行的代码。
[0035] 具体地,可以从待检测的应用程序中获取包含有代码主体的classes, dex文件; 统计classes, dex文件中所包含的所有Java类,并确定Java类对应的属性,所述Java类 对应的属性可以包括Java类的名称、Java类所包含的代码和/或Java类代码的哈希值; 而后将至少一个Java类对应的属性作为待检测的应用程序的代码结构特征,通常是多个 Java类的属性构成一个属性集合。
[0036] 当全部代码类的属性构成集合时,可能检测的数据量过大,则可以通过检测设定 子集合的方式来实现。设定子集合,即按照设定的相同规则对待检测的应用程序和标准应 用程序的单元属性集合进行提炼,得到子集合。例如,设定提取规则可以为在单元属性排序 后,提取单数个单元属性;还可以为,将所有单元属性按照设定函数进行处理,得到子集合 等。这样可以将单元属性集合的部分属性进行重合度比对,减少了比对的数据量,当代码类 的量较大时,也能一定程度上保证比对的准确性。
[0037] 优选地,所述文件结构特征包括程序的单元属性集合。
[0038] 进一步地,所述单元为文件;所述单元属性集合为所述应用程序中全部单元的属 性集合或全部单元属性集合的设定子集合;所述单元属性为唯一标识所述单元的属性。设 定子集合的处理方式参见前述解释。
[0039] 具体地,所述单元为文件时,所述文件属性包括文件名称和/或文件名称哈希值。
[0040] Android应用程序的APK文件实际上为一个符合固定格式规范的zip文件。通过 Unzip等工具解压可以看到其内部的文件结构。APK文件包括:classes, dex文件、assets 目录、res目录、libs目录以及AndroidManifest. xml文件等文件或目录。
[0041] 所述单元为文件时,既可以包括APK文件中的广义的文件,也可以包括APK文件中 狭义的目录。
[0042] 其中,res目录包括Android应用程序所使用的图片以及文件等资源文件; assets目录包括Android应用程序所使用的其他资源文件;libs目录包括运行Android 应用程序所需的库文件;AndroidManifest. xml是每个APK文件所必需的全局描述文件, 其中列出了 Android安装包中应用的每个模块的入口信息,在Android系统中,只有在 AndroidManifest. xml文件中列出了的模块,才能够被系统调用。
[0043] 具体地,可以从待检测的应用程序中获取待检测的应用程序所包含的文件,并确 定文件对应的属性,所述属性包括:文件的文件名称和/或文件名称的哈希值;而后将至少 一个文件对应的属性确定为待检测的应用程序的文件结构特征,构成属性集合,通常由多 个文件的属性构成此属性集合。
[0044] 在所述代码结构特征或文件结构特征包括程序的单元属性集合时,操作120具体 是将所述单元属性集合与标准程序中对应的单元属性集合进行匹配,将集合中单元的重合 度作为匹配结果,并根据匹配结果确定所述待检测的应用程序的安全性。
[0045] 目前盗版应用通常的制作手段是在正版应用的基础上做篡改(例如,修改 classes, dex文件中的某些代码或增加恶意代码,或者替换某些资源文件),因此代码结构 特征和文件结构特征通常在正版应用和盗版应用中保持相似性,因此通过将待检测应用程 序的程序特征与正版应用的标准程序特征进行匹配,根据特征的相似度或单元的重合度, 能够检测待检测的应用程序是否安全。另外,可以根据程序特征与正版应用的标准程序特 征为完全匹配还是不完全匹配,检测待检测的应用程序的安全性。
[0046] 示例性地,待检测的应用程序中的classes, dex文件包括m个Java类,分别为札, Μ2,Μ3, •••,Μυ,并且采用各Java类的代码作为属性,正版应用程序中的classes, dex文件包 括η个Java类,分别为即N2, N3,…,Nn,并且采用各Java类的代码作为标准属性,并根据 预设策略,选取待检测的应用程序的classes, dex文件中的全部Java类的代码集合与正版 应用中对应的Java类的代码集合进行匹配。
[0047] 当m等于n,m个Java类中的代码与η个Java类中的代码完全一致时,检测结果 为待检测的应用程序安全,之后,可以在客户端提示用户"安全"或"可以安装"等。
[0048] 当m大于n,以m等于6, η等于4为例,Mp M2和M3的代码与Np N2和N3的代码相 同,但M4的代码与N4的代码不完全相同,且检测到M 5和M6为新增代码,则可以确定集合中 Java类的代码的重合度,如果该重合度高于预设第一门限值(例如,80% ),则检测结果为 待检测的应用程序为盗版,之后,可以在客户端提示用户"当前应用为盗版"等;如果该重合 度低于预设第二门限值(例如,15% ),则检测结果为待检测的应用程序的安全性未知,相 应地,可以在客户端提示用户"当前应用的安全性未知"或"当前应用的安全性未知,请谨慎 安装"等。
[0049] 需要说明的是,检测的特征越多(例如既检测代码结构特征,又检测文件结构特 征,又如,检测应用程序中全部单元的属性集合,再如,检测多个属性),检测到的安全性 结果越准确,但检测耗时较长;检测的特征越少(例如,只检测代码结构特征,或只检测文 件结构特征,又如,检测应用程序的全部单元属性集合的设定子集合,再如,只检测一个属 性),检测耗时较短,但检测到的安全性结果的准确度较低。
[0050] 本实施例的技术方案,通过从待检测的应用程序中获取程序特征,能够得到包括 代码结构特征和/或文件结构特征在内的重要特征,并通过将程序特征与标准程序特征进 行匹配,能够根据匹配成功、匹配失败、或特征相似度等匹配结果确定待检测的应用程序的 安全性。
[0051] 需要说明的是,除了获取代码结构特征和/或文件结构特征之外,还可以获取应 用程序的包名、应用程序的名称、应用程序的图标或应用程序的版本号,作为程序特征。
[0052] 其中,Android操作系统通过APK的包名(package name)对各个安装的APK文件 进行管理。例如某个Android安装包的包名是com. qihoo360. mobilesafe。Android系统 要求每个应用都声明一个唯一的包名。Android平台下的盗版应用也需要声明一个包名,因 此,包名就可以作为识别盗版软件的一个重要特征。
[0053] 现有的应用程序的安全性检测技术,一般是根据应用程序的包名或者应用名称的 完全匹配来进行检测。但由于应用的包名可以随意指定或者修改,因此现在越来越多的盗 版应用程序都修改了原始应用程序的包名以逃避检查。另外,采用应用程序的名称的完全 匹配作为特征也存在不足,因为盗版程序可以取一些与正版应用近似的名字来误导用户。 例如根据正版应用"愤怒的小鸟"取名为"愤怒的小鸟升级版",或者根据正版应用"招商银 行"取名"招行网银"等等。
[0054] 因此,通过匹配代码结构特征和/或文件结构特征,能够检测代码是否被更改,或 是否增加恶意代码,以及文件是否被替换等,因此通过代码结构特征和/或文件结构特征 能够从根本上检测待检测应用程序是否为盗版,也即能够从根本上提高待检测的应用程序 的安全性的识别率,此外,通过应用程序的包名、应用程序的名称、应用程序的图标或应用 程序的版本号作为辅助识别特征,能够进一步提高待检测的应用程序的安全性的识别率。
[0055] 针对大量用现有检测手段无法查出的盗版应用,比如某个应用的名称为"阿狸", 包名和图标也无法匹配到任何已知的正版应用,但是通过本方案可以检测该应用实际上就 是"百度贴吧"的一个盗版。
[0056] 需要说明的是,所述"和/或"是指从Android安装包中可以单独提取出其中任意 一项特征信息用作安全检测,也可以提取出多项特征信息的组合用作安全检测。其中,同时 提取多项特征进行检测的效果要优于单项特征,提取多项特征进行检测,可以提高待检测 的应用程序的安全性的识别率。
[0057] 上述辅助识别特征数量的选取,对安全性检测结果准确度和检测耗时的影响,与 代码结构特征和/或文件结构特征,以及全部属性集合或全部单元属性集合的设定子集 合,以及属性数量对安全性检测结果准确度和检测耗时的影响类似,此处不再赘述。
[0058] 此外,还需要说明的是,虽然以Andorid应用程序为例对本实施例的技术方案进 行说明,但本实施例提供的应用程序的安全性检测方法并不以此为限,本实施例的技术方 案同样适用于现有的其他操作平台。
[0059] 上述方法,可以由服务器来执行,从客户端接收待检测应用程序的程序特征,执行 匹配和安全性检测操作后,再将安全性检测结果推送给客户端。或者,可以由客户端执行匹 配和安全性检测操作。或者,也可以由客户端与服务器配合,由客户端获取待检测应用程序 的程序特征,由服务器获取标准应用的程序特征,并执行匹配和安全性检测操作。
[0060] 下面结合图lb说明客户端和服务器协同工作的过程。
[0061] 由于Android客户端的资源有限,为了能够容纳多达上百万款的正版应用的程序 特征,服务器需要维护一个定期更新的正版应用程序的特征库,进行安全性检测时,客户端 只负责从待检测的应用程序中提取程序特征并将所述程序特征发往服务器,服务器基于所 述特征库执行匹配和安全性检测操作,服务器再将安全性检测结果推送给客户端。该协同 工作模式避免了客户端因为资源有限无法保存大量特征的问题,同时也使得正版应用的特 征库的更新更加及时和灵活。
[0062] 本发明实施例以Android操作系统下的应用程序为例进行说明,但本领域技术人 员可以理解,只要应用程序具有诸如类、文件等多个单元个体,能够以单元集合形式来比对 其结构特征,均可采用本发明实施例的技术方案进行安全性检测。
[0063] 实施例二
[0064] 请参阅图2a,为本发明实施例二提供的一种应用程序的安全性检测方法的流程 图。
[0065] 如图2a所示,该方法包括:
[0066] 210、从客户端接收从待检测的应用程序中获取程序特征,其中,所述程序特征为 所述客户端基于设定摘要算法计算的摘要数据;
[0067] 在本操作中,所述程序特征至少包括:代码结构特征和/或文件结构特征。
[0068] 本操作具体是获取待检测的应用程序的代码结构特征的摘要数据和/或文件结 构特征的摘要数据。
[0069] 其中,摘要算法是根据任意长度的二进制输入产生固定长度的较小二进制输出的 算法。例如,待检测的应用程序的程序特征为S,基于设定摘要算法计算的程序特征的摘要 数据D可以采用下式表示:
[0070] D = Digest (S)
[0071] 式中,Digest为设定摘要算法,如Simhash算法。
[0072] 需要说明的是,程序特征的摘要数据保留了原始数据的相似度特性,也即保留了 原始程序特征的相似度特性。程序特征与程序特征的摘要数据的区别在于:程序特征的数 据量远远大于程序特征的摘要数据的数据量,对于很大的程序特征,该特征的摘要数据只 需要很少字节就可以表示的该特征的特性。
[0073] 代码结构特征的摘要数据可以包括应用程序中全部代码类名称的摘要数据的集 合,或全部代码类名称的摘要数据的集合中的设定子集合,也可以包括应用程序中全部代 码类的代码的摘要数据的集合,或全部代码类的代码的摘要数据的集合中的设定子集合, 还可以包括应用程序中全部代码类的代码哈希值的摘要数据的集合,或全部代码类的代码 哈希值的摘要数据的集合中的设定子集合。
[0074] 文件结构特征的摘要数据可以包括应用程序中全部文件名称的摘要数据的集合, 或全部文件名称的摘要数据的集合中的设定子集合,也可以包括应用程序中全部文件的文 件名称哈希值的摘要数据的集合,或全部文件的文件名称哈希值的摘要数据的集合中的设 定子集合。
[0075] 220、基于所述设定摘要算法将所述程序特征进行还原,与标准程序特征进行匹 配,并根据匹配结果确定所述待检测的应用程序的安全性。
[0076] 本操作具体是利用设定摘要算法将程序特征的摘要数据还原为程序特征本身,而 后将还原得到的程序特征与正版应用的标准程序特征进行匹配,然后根据匹配结果确定待 检测的应用程序的安全性,检测结果可以包括待检测的应用程序为正版应用、为盗版应用 或安全性未知。
[0077] 需要说明的是,进行还原操作所采用的设定摘要算法与客户端根据程序特征得到 程序特征的摘要数据所采用的设定摘要算法的相关联。换言之,待检测的应用程序的程序 特征为S,与客户端基于设定摘要算法计算的程序特征的摘要数据D之间的关系如下式所 示:
[0078] D = Digest (S)
[0079] 而操作220中根据程序特征的摘要数据D获得原始程序特征S的还原操作所采用 的设定摘要算法为摘要算法Digest的逆算法。
[0080] 本实施例的技术方案,通过从客户端接收待检测应用程序的程序特征的摘要数 据,并将所述摘要数据进行还原,能够得到待检测的应用程序的程序特征,通过将还原得到 的程序特征与正版应用的标准程序特征进行匹配,基于匹配结果能够确定待检测的应用程 序的安全性。
[0081] 本方案通过匹配程序特征,能够检测代码是否被更改,或是否增加恶意代码,以及 文件是否被替换等,因此通过代码结构特征和/或文件结构特征能够从根本上检测待检测 应用程序是否为盗版。
[0082] 请参阅图2b,作为本实施例的一种优选的实施方式,该优选方法包括:
[0083] 210、从客户端接收从待检测的应用程序中获取程序特征,其中,所述程序特征为 所述客户端基于设定摘要算法计算的摘要数据;
[0084] 在本操作中,所述程序特征至少包括:代码结构特征和/或文件结构特征。
[0085] 230、将所述程序特征与标准程序特征进行匹配,根据匹配结果确定所述待检测的 应用程序的安全性,其中,所述标准程序特征为基于设定摘要算法计算的摘要数据。
[0086] 本操作具体是将待检测应用程序的程序特征的摘要数据与正版应用的标准程序 特征的摘要数据进行匹配,并基于匹配结果确定待检测的应用程序的安全性。
[0087] 其中,根据待检测应用程序的程序特征得到对应的摘要数据所采用的摘要算法, 与根据标准程序特征得到对应的摘要数据所采用的摘要算法相同。
[0088] 需要说明的是,无论是代码结构特征还是文件结构特征都将是一个非常大的集 合,集合中的元素少则几十,多则几千甚至几万。一方面,如果将这些元素都保存下来,会 产生很多问题:如果针对每一个标准应用都要维护这样的集合,服务器需要保存大量的数 据;而且需要获取待检测应用程序的相应数据在服务器中进行匹配,会消耗非常大的网络 流量;此外由于需要匹配的特征所包含的数据量很大,导致匹配过程耗时长,从而导致安全 性的检测效率降低。
[0089] 本优选的实施方式利用摘要算法分别将原本很复杂的待检测应用程序和标准应 用的代码结构特征和/或文件结构特征所包含的数据转化为用很少字节就可以表示的摘 要数据,该摘要数据保留了原始特征的相似度特性,因此将待检测应用程序的程序特征的 摘要数据D与标准应用的程序特征的摘要数据D'进行匹配,等价于将待检测应用程序的程 序特征S与标准应用的程序特征S'进行匹配。因此,只需要将待检测应用程序的程序特征 的摘要数据D而不是程序特征S发往服务器进行匹配,服务器也只需为每个标准应用保存 特征程序特征的摘要数据D'而不是标准应用程序特征S',基于此能够大大增加匹配的效 率,并减少所需要的网络和存储资源。
[0090] 上述方法,可以由服务器来执行,从客户端接收待检测应用程序的程序特征的摘 要数据,执行匹配和安全性检测操作后,再将安全性检测结果推送给客户端。或者,可以由 客户端执行匹配和安全性检测操作。或者,也可以由客户端与服务器配合,由客户端获取待 检测应用程序的程序特征的摘要数据,由服务器获取标准应用的程序特征的摘要数据,并 完成执行匹配和安全性检测操作。
[0091] 实施例三
[0092] 请参阅图3,为本发明实施例三提供的一种应用程序的安全性检测方法的流程图。 该方法包括:
[0093] 310、将所述待检测的应用程序的安全证书在预设正版安装证书列表中进行匹配, 如果匹配到所述安全证书,则执行操作311,如果没有匹配到所述安全证书,则执行操作 320 ;
[0094] 本操作具体是判断预设正版安装证书列表中是否存在待检测的应用程序的安全 证书。
[0095] 由于安装证书的公钥特性,使得盗版应用程序的安装证书和正版应用程序的安装 证书不同,因此通过检测安全证书,能够检测待检测应用程序是否为正版应用。如果安装证 书不在正版证书列表中,则可能表示这不是一个已知的正版程序。既可能是一个与所有正 版应用程序完全不同的、新开发的程序,也可能是某个已知应用程序的盗版。所以需通过特 征检测进一步识别其是否为盗版程序。
[0096] 由于一个应用程序可能会有一个或多个合法的证书,因此预设正版安装证书列表 中包括现有正版应用的全部证书。
[0097] 311、将待检测的应用程序为正版应用的结果作为检测结果,流程结束;
[0098] 本操作具体是根据操作310的匹配结果,并且当匹配到所述安装证书时,确定检 测结果。
[0099] 320、从待检测的应用程序中获取程序特征,所述程序特征至少包括:代码结构特 征和/或文件结构特征,而后执行操作330 ;
[0100] 本操作具体是根据操作310的匹配结果,并且当没有匹配到所述安装证书时,触 发执行从待检测的应用程序中获取程序特征的操作。
[0101] 330、将所述程序特征与标准程序特征进行匹配,根据匹配结果确定所述待检测的 应用程序的安全性,流程结束。
[0102] 本操作具体是在预设正版安装证书列表中没有匹配到待检测的应用程序的安装 证书时,通过匹配程序特征,从而确定检测结果。
[0103] 示例性地,当待检测的应用程序的安装证书不符合正版应用的合法证书,但待检 测的应用程序的程序特征与一个已知的正版应用的程序特征的相似度高于第一设定门限 值时,则可以确定该待检测的应用程序为盗版应用。
[0104] 示例性地,当待检测的应用程序的安装证书不符合正版应用的合法证书,但待检 测的应用程序的程序特征与已知的正版应用的程序特征的相似度低于第二设定门限值时, 则可以确定该待检测的应用程序的安全性为未知。
[0105] 需要说明的是,服务器中维护一个定期更新的正版应用程序特征库,可能由于更 新不及时,导致待检测的应用程序的程序特征与已知的正版应用的程序特征的相似度低于 第二设定门限值。
[0106] 本实施例的技术方案,通过将待检测的应用程序的安全证书在预设正版安装证书 列表中进行匹配,且如果匹配到所述安全证书,则确定待检测的应用程序为正版应用;如果 没有匹配到所述安装证书,则将待检测应用程序的程序特征与标准程序特征进行匹配,并 根据匹配结果确定待检测的应用程序的安全性。
[0107] 本方案通过安装证书的匹配结果能够检测应用为正版应用,避免了直接通过程序 特征的完全匹配而检测应用为正版应用,提升了检测效率;在安装证书匹配失败之后,通过 匹配程序特征,能够检测代码是否被更改,或是否增加恶意代码,以及文件是否被替换等, 因此通过代码结构特征和/或文件结构特征能够从根本上检测待检测应用程序是否为盗 版。
[0108] 实施例四
[0109] 请参阅图4,为本发明实施例四提供的一种应用程序的安全性检测装置的结构示 意图。该装置包括:程序特征获取模块410和程序安全性确定模块420。
[0110] 其中,程序特征获取模块410用于从待检测的应用程序中获取程序特征,所述程 序特征至少包括:代码结构特征和/或文件结构特征;程序安全性确定模块420用于将所 述程序特征与标准程序特征进行匹配,根据匹配结果确定所述待检测的应用程序的安全 性。
[0111] 本实施例的技术方案,通过从待检测的应用程序中获取程序特征,能够得到包括 代码结构特征和/或文件结构特征在内的重要特征,并通过将程序特征与标准程序特征进 行匹配,能够根据匹配成功、匹配失败、或特征相似度等匹配结果确定待检测的应用程序的 安全性。
[0112] 本方案通过匹配程序特征,能够检测代码是否被更改,或是否增加恶意代码,以及 文件是否被替换等,因此通过代码结构特征和/或文件结构特征能够从根本上检测待检测 应用程序是否为盗版。
[0113] 在上述方案中,所述代码结构特征或文件结构特征包括程序的单元属性集合,则 程序安全性确定模块420具体用于:将所述单元属性集合与标准程序中对应的单元属性集 合进行匹配,将集合中单元的重合度作为匹配结果;或,将所述程序特征与标准程序特征进 行匹配,其中,所述标准程序特征为基于设定摘要算法计算的摘要数据。
[0114] 在上述方案中,所述单元为代码类或文件;
[0115] 所述单元属性集合为所述应用程序中全部单元的属性集合或全部单元属性集合 的设定子集合;
[0116] 所述单元属性为唯一标识所述单元的属性。
[0117] 进一步地,所述单元为代码类时,所述代码类属性包括类名称、类代码和类代码哈 希值的至少一项;所述单元为文件时,所述文件属性包括文件名称和/或文件名称哈希值。
[0118] 作为本实施例的一种实施方式,程序特征获取模块410具体用于:从客户端接收 从待检测的应用程序中获取程序特征,其中,所述程序特征为所述客户端基于设定摘要算 法计算的摘要数据;则程序安全性确定模块420具体用于:基于所述设定摘要算法将所述 程序特征进行还原,并与标准程序特征进行匹配。
[0119] 作为本实施例的另一种实施方式,该装置还可以包括:安全证书匹配模块和触发 模块。
[0120] 其中,安全证书匹配模块用于在从待检测的应用程序中获取程序特征之前,将所 述待检测的应用程序的安全证书在预设正版安装证书列表中进行匹配;触发模块用于如果 没有匹配到所述安全证书,则触发执行从待检测的应用程序中获取程序特征的操作。
[0121] 本发明实施例提供的应用程序的安全性检测装置可执行本发明任意实施例所提 供的应用程序的安全性检测方法,具备执行方法相应的功能模块和有益效果。
[0122] 最后应说明的是:以上各实施例仅用于说明本发明的技术方案,而非对其进行限 制;实施例中优选的实施方式,并非对其进行限制,对于本领域技术人员而言,本发明可以 有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均 应包含在本发明的保护范围之内。

Claims (12)

1. 一种应用程序的安全性检测方法,其特征在于,包括: 从待检测的应用程序中获取程序特征,所述程序特征至少包括:代码结构特征和/或 文件结构特征; 将所述程序特征与标准程序特征进行匹配,根据匹配结果确定所述待检测的应用程序 的安全性。
2. 根据权利要求1所述的方法,其特征在于:所述代码结构特征或文件结构特征包括 程序的单元属性集合,则将所述程序特征与标准程序特征进行匹配,包括: 将所述单元属性集合与标准程序中对应的单元属性集合进行匹配,将集合中单元的重 合度作为匹配结果。
3. 根据权利要求2所述的方法,其特征在于: 所述单元为代码类或文件; 所述单元属性集合为所述应用程序中全部单元的属性集合或全部单元属性集合的设 定子集合; 所述单元属性为唯一标识所述单元的属性。
4. 根据权利要求3所述的方法,其特征在于: 所述单元为代码类时,所述代码类属性包括类名称、类代码和类代码哈希值的至少一 项; 所述单元为文件时,所述文件属性包括文件名称和/或文件名称哈希值。
5. 根据权利要求1所述的方法,其特征在于,从待检测的应用程序中获取程序特征,包 括: 从客户端接收从待检测的应用程序中获取程序特征,其中,所述程序特征为所述客户 端基于设定摘要算法计算的摘要数据; 则将所述程序特征与标准程序特征进行匹配包括: 基于所述设定摘要算法将所述程序特征进行还原,并与标准程序特征进行匹配;或 将所述程序特征与标准程序特征进行匹配,其中,所述标准程序特征为基于设定摘要 算法计算的摘要数据。
6. 根据权利要求1-5任一所述的方法,其特征在于,在从待检测的应用程序中获取程 序特征之前,还包括: 将所述待检测的应用程序的安全证书在预设正版安装证书列表中进行匹配; 如果没有匹配到所述安全证书,则触发执行从待检测的应用程序中获取程序特征的操 作。
7. -种应用程序的安全性检测装置,其特征在于,包括: 程序特征获取模块,用于从待检测的应用程序中获取程序特征,所述程序特征至少包 括:代码结构特征和/或文件结构特征; 程序安全性确定模块,用于将所述程序特征与标准程序特征进行匹配,根据匹配结果 确定所述待检测的应用程序的安全性。
8. 根据权利要求7所述的装置,其特征在于:所述代码结构特征或文件结构特征包括 程序的单元属性集合,则程序安全性确定模块具体用于: 将所述单元属性集合与标准程序中对应的单元属性集合进行匹配,将集合中单元的重 合度作为匹配结果。
9. 根据权利要求8所述的装置,其特征在于: 所述单元为代码类或文件; 所述单元属性集合为所述应用程序中全部单元的属性集合或全部单元属性集合的设 定子集合; 所述单元属性为唯一标识所述单元的属性。
10. 根据权利要求9所述的装置,其特征在于: 所述单元为代码类时,所述代码类属性包括类名称、类代码和类代码哈希值的至少一 项; 所述单元为文件时,所述文件属性包括文件名称和/或文件名称哈希值。
11. 根据权利要求7所述的装置,其特征在于,程序特征获取模块具体用于:从客户端 接收从待检测的应用程序中获取程序特征,其中,所述程序特征为所述客户端基于设定摘 要算法计算的摘要数据; 则程序安全性确定模块具体用于:基于所述设定摘要算法将所述程序特征进行还原, 并与标准程序特征进行匹配;或,将所述程序特征与标准程序特征进行匹配,其中,所述标 准程序特征为基于设定摘要算法计算的摘要数据。
12. 根据权利要求7-11任一所述的装置,其特征在于,该装置还包括: 安全证书匹配模块,用于在从待检测的应用程序中获取程序特征之前,将所述待检测 的应用程序的安全证书在预设正版安装证书列表中进行匹配; 触发模块,用于如果没有匹配到所述安全证书,则触发执行从待检测的应用程序中获 取程序特征的操作。
CN201410375006.7A 2014-07-31 2014-07-31 应用程序的安全性检测方法和装置 Active CN104123493B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410375006.7A CN104123493B (zh) 2014-07-31 2014-07-31 应用程序的安全性检测方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410375006.7A CN104123493B (zh) 2014-07-31 2014-07-31 应用程序的安全性检测方法和装置

Publications (2)

Publication Number Publication Date
CN104123493A true CN104123493A (zh) 2014-10-29
CN104123493B CN104123493B (zh) 2017-09-26

Family

ID=51768902

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410375006.7A Active CN104123493B (zh) 2014-07-31 2014-07-31 应用程序的安全性检测方法和装置

Country Status (1)

Country Link
CN (1) CN104123493B (zh)

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104657504A (zh) * 2015-03-12 2015-05-27 四川神琥科技有限公司 一种文件快速识别方法
CN104657634A (zh) * 2015-02-28 2015-05-27 百度在线网络技术(北京)有限公司 盗版应用的识别方法和装置
CN105138918A (zh) * 2015-09-01 2015-12-09 百度在线网络技术(北京)有限公司 一种安全文件的识别方法及装置
CN105975855A (zh) * 2015-08-28 2016-09-28 武汉安天信息技术有限责任公司 一种基于apk证书相似性的恶意代码检测方法及系统
CN105989251A (zh) * 2015-02-12 2016-10-05 卓望数码技术(深圳)有限公司 一种盗版安卓应用甄别方法及盗版安卓应用甄别系统
CN106096388A (zh) * 2016-05-31 2016-11-09 北京小米移动软件有限公司 一种代码安全处理方法、装置、终端设备及系统
CN106469259A (zh) * 2015-08-19 2017-03-01 北京金山安全软件有限公司 确定应用程序是否为正版应用程序的方法、装置及电子设备
CN106502879A (zh) * 2015-09-07 2017-03-15 中国移动通信集团公司 一种实现应用程序安全性检测的方法及装置
CN106599623A (zh) * 2016-12-09 2017-04-26 江苏通付盾科技有限公司 一种应用相似度计算方法及装置
CN107085684A (zh) * 2016-02-16 2017-08-22 腾讯科技(深圳)有限公司 程序特征的检测方法和装置
CN107086977A (zh) * 2016-02-15 2017-08-22 中国移动通信集团公司 应用安全处理方法及装置
CN107305522A (zh) * 2016-04-21 2017-10-31 富士通株式会社 用于对应用程序的重复崩溃进行检测的装置和方法
CN107423581A (zh) * 2017-07-31 2017-12-01 北京深思数盾科技股份有限公司 软件的保护方法和装置
CN107766726A (zh) * 2016-08-16 2018-03-06 腾讯科技(深圳)有限公司 应用安全性检测方法和装置
CN107766342A (zh) * 2016-08-15 2018-03-06 中国移动通信集团公司 一种应用的识别方法和装置
CN107770144A (zh) * 2016-08-23 2018-03-06 中国移动通信有限公司研究院 应用监测方法、开发平台、客户端及信息系统
CN108229131A (zh) * 2016-12-14 2018-06-29 中国移动通信集团设计院有限公司 仿冒app识别方法及装置
CN108573151A (zh) * 2017-03-10 2018-09-25 武汉安天信息技术有限责任公司 一种仿冒应用分析系统及方法
CN108804111A (zh) * 2018-04-02 2018-11-13 北京大学 一种建立安卓应用程序不同版本间反编译类集合映射关系的方法和装置
CN108875317A (zh) * 2017-05-08 2018-11-23 中国移动通信有限公司研究院 软件克隆检测方法及装置、检测设备及存储介质
CN112000339A (zh) * 2020-07-09 2020-11-27 北京大学 安卓apk文件依赖组件识别方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101976318A (zh) * 2010-11-15 2011-02-16 北京理工大学 一种基于数字指纹的代码相似度检测方法
CN102750482A (zh) * 2012-06-20 2012-10-24 东南大学 一种安卓市场中重包装应用的检测方法
CN102779257A (zh) * 2012-06-28 2012-11-14 奇智软件(北京)有限公司 一种Android应用程序的安全检测方法及系统
CN103336890A (zh) * 2013-06-08 2013-10-02 东南大学 一种快速计算软件相似度的方法
CN103473104A (zh) * 2013-09-24 2013-12-25 北京大学 一种基于关键词上下文频率矩阵的应用重打包辨别方法
CN103678111A (zh) * 2012-09-18 2014-03-26 株式会社日立制作所 源代码类似度评价方法以及源代码类似度评价装置
CN103778367A (zh) * 2013-12-30 2014-05-07 网秦(北京)科技有限公司 基于应用证书来检测应用安装包的安全性的方法、终端以及辅助服务器

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101976318A (zh) * 2010-11-15 2011-02-16 北京理工大学 一种基于数字指纹的代码相似度检测方法
CN102750482A (zh) * 2012-06-20 2012-10-24 东南大学 一种安卓市场中重包装应用的检测方法
CN102779257A (zh) * 2012-06-28 2012-11-14 奇智软件(北京)有限公司 一种Android应用程序的安全检测方法及系统
CN103678111A (zh) * 2012-09-18 2014-03-26 株式会社日立制作所 源代码类似度评价方法以及源代码类似度评价装置
CN103336890A (zh) * 2013-06-08 2013-10-02 东南大学 一种快速计算软件相似度的方法
CN103473104A (zh) * 2013-09-24 2013-12-25 北京大学 一种基于关键词上下文频率矩阵的应用重打包辨别方法
CN103778367A (zh) * 2013-12-30 2014-05-07 网秦(北京)科技有限公司 基于应用证书来检测应用安装包的安全性的方法、终端以及辅助服务器

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105989251B (zh) * 2015-02-12 2019-03-29 卓望数码技术(深圳)有限公司 一种盗版安卓应用甄别方法及盗版安卓应用甄别系统
CN105989251A (zh) * 2015-02-12 2016-10-05 卓望数码技术(深圳)有限公司 一种盗版安卓应用甄别方法及盗版安卓应用甄别系统
CN104657634A (zh) * 2015-02-28 2015-05-27 百度在线网络技术(北京)有限公司 盗版应用的识别方法和装置
CN104657634B (zh) * 2015-02-28 2017-11-14 百度在线网络技术(北京)有限公司 盗版应用的识别方法和装置
CN104657504A (zh) * 2015-03-12 2015-05-27 四川神琥科技有限公司 一种文件快速识别方法
CN106469259A (zh) * 2015-08-19 2017-03-01 北京金山安全软件有限公司 确定应用程序是否为正版应用程序的方法、装置及电子设备
CN106469259B (zh) * 2015-08-19 2019-07-23 北京金山安全软件有限公司 确定应用程序是否为正版应用程序的方法、装置及电子设备
CN105975855A (zh) * 2015-08-28 2016-09-28 武汉安天信息技术有限责任公司 一种基于apk证书相似性的恶意代码检测方法及系统
CN105138918A (zh) * 2015-09-01 2015-12-09 百度在线网络技术(北京)有限公司 一种安全文件的识别方法及装置
CN105138918B (zh) * 2015-09-01 2019-03-29 百度在线网络技术(北京)有限公司 一种安全文件的识别方法及装置
CN106502879A (zh) * 2015-09-07 2017-03-15 中国移动通信集团公司 一种实现应用程序安全性检测的方法及装置
CN107086977A (zh) * 2016-02-15 2017-08-22 中国移动通信集团公司 应用安全处理方法及装置
CN107085684A (zh) * 2016-02-16 2017-08-22 腾讯科技(深圳)有限公司 程序特征的检测方法和装置
CN107085684B (zh) * 2016-02-16 2020-02-07 腾讯科技(深圳)有限公司 程序特征的检测方法和装置
CN107305522A (zh) * 2016-04-21 2017-10-31 富士通株式会社 用于对应用程序的重复崩溃进行检测的装置和方法
CN106096388A (zh) * 2016-05-31 2016-11-09 北京小米移动软件有限公司 一种代码安全处理方法、装置、终端设备及系统
CN106096388B (zh) * 2016-05-31 2019-04-16 北京小米移动软件有限公司 一种代码安全处理方法、装置、终端设备及系统
CN107766342A (zh) * 2016-08-15 2018-03-06 中国移动通信集团公司 一种应用的识别方法和装置
CN107766726A (zh) * 2016-08-16 2018-03-06 腾讯科技(深圳)有限公司 应用安全性检测方法和装置
CN107770144A (zh) * 2016-08-23 2018-03-06 中国移动通信有限公司研究院 应用监测方法、开发平台、客户端及信息系统
CN106599623B (zh) * 2016-12-09 2019-10-18 江苏通付盾科技有限公司 一种应用相似度计算方法及装置
CN106599623A (zh) * 2016-12-09 2017-04-26 江苏通付盾科技有限公司 一种应用相似度计算方法及装置
CN108229131A (zh) * 2016-12-14 2018-06-29 中国移动通信集团设计院有限公司 仿冒app识别方法及装置
CN108573151A (zh) * 2017-03-10 2018-09-25 武汉安天信息技术有限责任公司 一种仿冒应用分析系统及方法
CN108875317A (zh) * 2017-05-08 2018-11-23 中国移动通信有限公司研究院 软件克隆检测方法及装置、检测设备及存储介质
CN107423581A (zh) * 2017-07-31 2017-12-01 北京深思数盾科技股份有限公司 软件的保护方法和装置
CN107423581B (zh) * 2017-07-31 2019-04-12 北京深思数盾科技股份有限公司 软件的保护方法和装置
CN108804111A (zh) * 2018-04-02 2018-11-13 北京大学 一种建立安卓应用程序不同版本间反编译类集合映射关系的方法和装置
CN112000339A (zh) * 2020-07-09 2020-11-27 北京大学 安卓apk文件依赖组件识别方法及装置

Also Published As

Publication number Publication date
CN104123493B (zh) 2017-09-26

Similar Documents

Publication Publication Date Title
CN104123493A (zh) 应用程序的安全性检测方法和装置
US8875303B2 (en) Detecting pirated applications
EP2807598B1 (en) Identifying trojanized applications for mobile environments
CN105793862B (zh) 动态程序在隔离环境中的受指导执行
US20180211140A1 (en) Dictionary Based Deduplication of Training Set Samples for Machine Learning Based Computer Threat Analysis
CN105357204B (zh) 生成终端识别信息的方法及装置
US20150244737A1 (en) Detecting malicious advertisements using source code analysis
KR20190031030A (ko) 바이너리 파일에 기초하여 오픈소스 소프트웨어 패키지를 식별하는 방법 및 시스템
RU91213U1 (ru) Система автоматического составления описания и кластеризации различных, в том числе и вредоносных, объектов
US10621349B2 (en) Detection of malware using feature hashing
CN103473104A (zh) 一种基于关键词上下文频率矩阵的应用重打包辨别方法
CN105760761A (zh) 软件行为分析方法和装置
Nguyen et al. Detecting repackaged android applications using perceptual hashing
CN106709336A (zh) 识别恶意软件的方法和装置
Akram et al. DroidMD: an efficient and scalable android malware detection approach at source code level
CN103971055B (zh) 一种基于程序切片技术的安卓恶意软件检测方法
Niu et al. Clone analysis and detection in android applications
Feichtner et al. Obfuscation-resilient code recognition in Android apps
US20190205527A1 (en) Detecting stack cookie utilization in a binary software component using binary static analysis
KR20150089664A (ko) 모바일 악성코드 탐지 시스템
KR102011725B1 (ko) 악성코드 검출을 위한 화이트리스트 구축 방법 및 이를 수행하기 위한 기록매체 및 장치
Elsabagh et al. Resilient and scalable cloned app detection using forced execution and compression trees
Akram et al. DroidSD: An Efficient Indexed Based Android Applications Similarity Detection Tool.
Xie et al. An accurate and efficient two‐phase scheme for detecting Android cloned applications
KR20200096766A (ko) 오픈소스 소프트웨어의 라이선스를 검증하는 방법 및 시스템

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant