CN104424402A - 一种用于检测盗版应用程序的方法及装置 - Google Patents
一种用于检测盗版应用程序的方法及装置 Download PDFInfo
- Publication number
- CN104424402A CN104424402A CN201310382289.3A CN201310382289A CN104424402A CN 104424402 A CN104424402 A CN 104424402A CN 201310382289 A CN201310382289 A CN 201310382289A CN 104424402 A CN104424402 A CN 104424402A
- Authority
- CN
- China
- Prior art keywords
- application program
- installation kit
- program installation
- file
- similarity
- 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
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000001514 detection method Methods 0.000 claims description 12
- 238000006116 polymerization reaction Methods 0.000 claims description 8
- 238000004458 analytical method Methods 0.000 claims 2
- 238000009434 installation Methods 0.000 abstract description 14
- 239000012634 fragment Substances 0.000 description 10
- 238000010586 diagram Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012857 repacking Methods 0.000 description 3
- 238000011524 similarity measure Methods 0.000 description 2
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 229920002457 flexible plastic Polymers 0.000 description 1
- 238000005194 fractionation Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种用于检测盗版应用程序的方法,其中,方法包括:获取待检测应用程序安装包的二进制特征文件;通过对所述待检测应用程序安装包的二进制特征文件与正版应用程序安装包的二进制特征文件进行分析,以确定所述待检测应用程序安装包的二进制特征文件与正版应用程序安装包的二进制特征文件的相似度;根据所述相似度判断待检测应用程序安装包是否是盗版应用程序安装包。采用本发明的技术方案,即使盗版应用程序安装包进行了重新打包并更换包名,也可以检测出应用程序安装包是否是盗版的应用程序安装包。
Description
技术领域
本发明涉及计算机技术,尤其涉及一种用于检测盗版应用程序的方法及装置。
背景技术
随着计算机技术的不断发展,应用程序代码盗版现象越来越普遍。相对于自然语言,程序语言的语法相对规则,这一特点使应用程序代码剽窃起来更容易,一般仅通过文本编辑器进行简单的变量替换,添加冗余代码,变换程序次序等手段,就可以改变应用程序源代码的形式,而不影响源程序的正常运行。目前比较普遍的应用程序代码剽窃手段包括:完整拷贝,修改注释,重新排版,标识符重命名,代码块重排序,代码块内语句重排序,改变表达式中的操作符或者操作数顺序,改变数据类型,增加冗余的语句或者变量,用等价的控制结构替换控制结构,常量替换,表达式拆分等。
随着智能手机的普及,手机应用程序的盗版现象也越来越普遍。例如在Android操作系统中,用户如果需要安装一个新的应用程序,可以去诸如安卓市场等应用程序市场选择需要安装的应用程序,但是应用程序市场中的应用程序数量非常多,准入门槛又低,对于从应用程序市场获得的应用程序安装包是否是盗版,不能方便的判断。
应用程序安装包的包名是应用程序安装包的标识,操作系统通过应用程序安装包的包名,识别两个应用程序安装包是否为不同的应用程序安装包,应用程序安装包的包名相同,操作系统识别为同一个应用程序安装包,不能安装在同一个操作手机中。
目前,现有技术中提供一种通过签名校验的方式来判断应用程序安装包是否是盗版的方法,这种方法是将包名相同的应用程序安装包的签名与该应用程序的官方签名进行比较,与该应用程序的官方签名一致的应用程序安装包为正版的应用程序安装包,与该应用程序的官方签名不一致的应用程序安装包为盗版的应用程序安装包。但是,如果该盗版的应用程序安装包被重新打包,并更改了应用程序安装包的包名,现有技术的这种签名校验方法就不能准确判断该应用程序安装包是否是盗版的安装包。
发明内容
本发明所要解决的技术问题是提供一种用于检测盗版应用程序的方法,以解决现有技术在应用程序安装包被重新打包并更改包名的情况下,不能准确判断应用程序安装包是否为盗版的应用程序安装包的问题。
根据本发明的一个方面,提供一种用于检测盗版应用程序的方法,包括:
获取待检测应用程序安装包的二进制特征文件;
通过对所述待检测应用程序安装包的二进制特征文件与正版应用程序安装包的二进制特征文件进行分析,以确定所述待检测应用程序安装包的二进制特征文件与正版应用程序安装包的二进制特征文件的相似度;
根据所述相似度判断待检测应用程序安装包是否是盗版应用程序安装包。
根据本发明的另一个方面,还提供了一种用于检测盗版应用程序的装置,包括:
获取装置,用于获取待检测应用程序安装包的二进制特征文件;
相似度确定装置,用于通过对所述待检测应用程序安装包的二进制特征文件与正版应用程序安装包的二进制特征文件进行分析,以确定所述待检测应用程序安装包的二进制特征文件与正版应用程序安装包的二进制特征文件的相似度;
盗版判断装置,用于根据所述相似度判断待检测应用程序安装包是否是盗版应用程序安装包。
与现有技术相比,本发明具有以下优点:本发明通过将待检测应用程序安装包的二进制特征文件与正版应用程序安装包的二进制特征文件进行分析,以确定待检测应用程序安装包的二进制特征文件与正版应用程序安装包的二进制特征文件的相似度,并根据该相似度判断该待检测应用程序安装包是否是盗版的应用程序安装包。采用本发明的技术方案,即使盗版应用程序安装包进行了重新打包并更换包名,也可以检测出应用程序安装包是否是盗版的应用程序安装包。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为根据本发明一个实施例的一种用于检测盗版应用程序的方法流程图;
图2为根据本发明一个实施例的一种用于检测盗版应用程序的装置示意图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本发明作进一步详细描述。
在本发明中,网络设备包括一种能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(ASIC)、可编程门阵列(FPGA)、数字处理器(DSP)、嵌入式设备等。所述网络设备其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云;在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟超级计算机。所述用户设备其包括但不限于任何一种可与用户通过键盘、触摸板、或声控设备进行人机交互的电子产品,例如移动终端、PDA等。其中,所述移动终端指可以在移动中使用的计算机设备,包括但不限于手机、笔记本、平板电脑、车载电脑等。本领域技术人员应能理解,其他的移动终端、网络设备同样适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
在本发明中,应用程序是指为了完成某项或某几项特定任务而被开发运行于操作系统之上的计算机程序,包括但不限于计算机上使用的应用程序,移动终端上使用的应用程序等。
图1示出了根据本发明一个实施例的一种用于检测盗版应用程序的方法流程图。
如图1所示,在步骤S101中,网络设备获取待检测应用程序安装包的二进制特征文件。
具体地,网络设备首先通过对待检测应用程序安装包进行反编译,以获得该待检测应用程序安装包的反编译文件。其中,对待检测应用程序安装包进行反编译,是指通过使用应用程序安装包的编译工具将应用程序安装包文件中的源文件和资源文件反编译出来,得到源文件和资源文件。例如,基于Android操作系统的移动终端中,对于APK(Android Package,Android安装包),应用程序安装包的编译工具包括apktool,easyapk,apkdb,doapk等。
下面以两个不同的编译工具为例说明网络设备使用编译工具对APK进行反编译。
示例1:使用apktool对APK进行反编译
在cmd中使用命令行“apktool d apk文件名”,来编译APK文件,其中,“apktool d”是反编译命令,d代表decode。需要注意的是,命令行的执行目录与APK文件所在目录一致。随后,在APK文件所在命令可以获得该APK的反编译文件。
示例2:使用apkdb对APK进行反编译
安装apkdb程序,在apkdb程序安装完成后,选择待反编译的APK文件,右击鼠标,在右击鼠标出现的菜单中选择反编译选项。随后,在在APK文件所在命令可以获得该APK的反编译文件。
具体地,在获得待检测应用程序安装包的反编译文件后,网络设备将该待检测应用程序安装包的反编译文件进行聚合处理,以获得二进制特征文件。
具体地,可以采用以下方式将该待检测应用程序安装包的反编译文件进行聚合处理以获得二进制特征文件:
首先,在步骤S1011中(图中未示出),网络设备通过对待检测应用程序安装包的反编译文件去除冗余信息,来获得仅保留操作符的反编译文件,其中,该冗余信息包括但不限于:广告包,操作数,软件开发工具包等。
本领域技术人员应理解,本实施例中的冗余信息仅为举例,其他可应用于本发明的冗余信息,也应包含在本专利的保护范围之内,并以引用方式包含于此。
其次,在步骤S1012(图中未示出),网络设备根据所述仅保留操作符的反编译文件中的所述操作符的顺序,对所述仅保留操作符的反编译文件进行聚合,以获得二进制特征文件。
其中,所述聚合处理是指按照预定顺序,将反编译文件中的程序片段在去除冗余信息后获得的操作符聚集在一起。
下面以一示例来说明对仅保留操作符的反编译文件进行聚合。
示例3
待检测应用程序安装包的反编译文件中的两个程序片段:
片段1
片段2
去除冗余信息后,获得仅保留操作符的程序片段:
片段1
invoke-direct
new-instance
invoke-direct
片段2
invoke-virtual
move-result-object
check-cast
iput-object
随后,按程序片段的片段名称的字典顺序进行拼接,获得二进制特征文件中的一部分:
invoke-direct
new-instance
invoke-direct
#
invoke-virtual
move-result-object
check-cast
iput-object
本实施例通过对待检测应用程序安装包去除诸如广告包和操作数的冗余信息,来获得仅保留操作符的反编译文件,再按照操作符的顺序,对仅保留操作符的反编译文件进行聚合,来获得二进制特征文件,这样,对于采用增加冗余信息的剽窃手段的盗版应用程序安装包,可以排除冗余信息对盗版判断的影响,提高盗版判断的准确性。
在步骤S102中,网络设备通过对所述待检测应用程序安装包的二进制特征文件与正版应用程序安装包的二进制特征文件进行分析,以确定所述待检测应用程序安装包的二进制特征文件与正版应用程序安装包的二进制特征文件的相似度。
具体地,可以通过以下方式来确定所述待检测应用程序安装包的二进制特征文件与正版应用程序安装包的二进制特征文件的相似度。
首先,在步骤S1021中(图中未示出),网络设备分别对正版应用程序安装包的二进制特征文件和待检测应用程序安装包的二进制特征文件进行模糊散列计算,得到两个散列值。具体地,所述模糊散列计算可以是模糊哈希(hash)计算。
其次,在步骤S1022中(图中未示出),网络设备通过对所述两个散列值进行分析,以确定两个散列值的相似度,并将所述两个散列值的相似度作为所述正版应用程序安装包的二进制特征文件和待检测应用程序安装包的二进制特征文件的相似度。
具体地,网络设备可以基于所述两个散列值的编辑距离,来确定两个散列值的相似度。优选地,可以基于各操作符对应的预定权重,来计算所述两个散列值的基于权重的编辑距离;随后根据所计算的基于权重的编辑距离,来确定所述两个散列值的相似度。
其中,所述编辑距离,是指两个字符串之间,由一个转成另一个所需的最少编辑操作次数。其中,编辑操作包括以下任一项:
-将一个字符串中的一个字符替换成另一个字符;
-在一个字符串中插入一个字符;
-在一个字符串中删除一个字符。
例如,例如将字符串“kitten”转成字符串“sitting”,包括如下三个编辑操作:首先,将字符“k”替换成字符“s”,字符串“kitten”变成“sitten”;随后将字符“e”替换成“i”,字符串“sitten”变成“sittin”;最后,在字符串末尾插入字符“g”,字符串“sittin”变成字符串“sitting”。因此,字符串“kitten”与字符串“sitting”的编辑距离为3。
其中,带权重是指需要考虑每个操作的权重,权重是指比如操作符“add”的权重是2,操作符“sub”的权重是1等。可以根据不同的应用程序,根据经验设定各操作符的权重。
优选地,本实施例中可以采用ssdeep程序来对正版应用程序安装包的二进制特征文件和待检测应用程序安装包的二进制特征文件进行模糊散列计算,得到两个散列值,并通过对所述两个散列值进行分析,以确定两个散列值的相似度。
本实施例通过使用模糊哈希计算得到两个散列值,再通过对所述两个散列值进行分析,以确定该两个散列值的相似性,可以有效降低盗版应用程序安装包中局部的修改对应用程序安装包整体的相似性的影响程度。
可选地,还可采用欧式距离相似度,余弦相似度,Peason相似度,Jaccard相似度等来确定两个散列值的相似度。本领域技术人员应能理解以上散列值相似度的计算方式仅为例举,其他相似度计算方式如可应用于本发明,也应包含于本专利的保护范围之中,并以引用方式包含于此。
在步骤S103中,网络设备根据所述相似度判断待检测应用程序安装包是否是盗版应用程序安装包。
具体地,网络设备可以判断待检测应用程序安装包的二进制特征文件与正版应用程序安装包的二进制特征文件的相似度是否超过预定门限,如果该相似度超过预定门限,确定所述待检测应用程序安装包是盗版应用程序安装包。
与现有技术相比,本发明具有以下优点:本发明通过将待检测应用程序安装包的二进制特征文件与正版应用程序安装包的二进制特征文件进行分析,以确定待检测应用程序安装包的二进制特征文件与正版应用程序安装包的二进制特征文件的相似度,并根据该相似度判断该待检测应用程序安装包是否是盗版的应用程序安装包。采用本发明的技术方案,即使盗版应用程序安装包进行了重新打包并更换包名,也可以检测出应用程序安装包是否是盗版的应用程序安装包。
当确定所述待检测应用程序安装包是盗版应用程序安装包,网络设备可发送盗版指示信息给用户设备或直接禁止用户设备下载该盗版应用程序安装包。
图2示出了根据本发明一个实施例的一种用于检测盗版应用程序的装置示意图。
如图2所示,该装置包括获取装置201,相似度确定装置202,盗版判断装置203。
其中,获取装置201,用于获取待检测应用程序安装包的二进制特征文件。
具体地,获取装置201包括反编译模块2011,用于通过对待检测应用程序安装包进行反编译,以获得该待检测应用程序安装包的反编译文件。其中,对待检测应用程序安装包进行反编译,是指通过使用应用程序安装包的编译工具将应用程序安装包文件中的源文件和资源文件反编译出来,得到源文件和资源文件。例如,基于Android操作系统的移动终端中,对于APK(Android Package,Android安装包),应用程序安装包的编译工具包括apktool,easyapk,apkdb,doapk等。
下面以两个不同的编译工具为例说明网络设备使用编译工具对APK进行反编译。
示例4:使用apktool对APK进行反编译
在cmd中使用命令行“apktool d apk文件名”,来编译APK文件,其中,“apktool d”是反编译命令,d代表decode。需要注意的是,命令行的执行目录与APK文件所在目录一致。随后,在APK文件所在命令可以获得该APK的反编译文件。
示例5:使用apkdb对APK进行反编译
安装apkdb程序,在apkdb程序安装完成后,选择待反编译的APK文件,右击鼠标,在右击鼠标出现的菜单中选择反编译选项。随后,在在APK文件所在命令可以获得该APK的反编译文件。
具体地,获取装置201还包括二进制特征文件获取模块2012,用于将该待检测应用程序安装包的反编译文件进行聚合处理,以获得二进制特征文件。
具体地,二进制特征文件获取模块2012可以包括:冗余去除子模块20121和二进制特征文件获取子模块20122。
冗余去除子模块20121(图中未示出),用于通过对待检测应用程序安装包的反编译文件去除冗余信息,来获得仅保留操作符的反编译文件,其中,该冗余信息包括但不限于:广告包,操作数,软件开发工具包等。
本领域技术人员应理解,本实施例中的冗余信息仅为举例,其他可应用于本发明的冗余信息,也应包含在本专利的保护范围之内,并以引用方式包含于此。
二进制特征文件获取子模块20122(图中未示出),用于根据所述仅保留操作符的反编译文件中的所述操作符的顺序,对所述仅保留操作符的反编译文件进行聚合,以获得二进制特征文件。
其中,所述聚合处理是指按照预定顺序,将反编译文件中的程序片段在去除冗余信息后获得的操作符聚集在一起。
下面以一示例来说明对仅保留操作符的反编译文件进行聚合。
示例6
待检测应用程序安装包的反编译文件中的两个程序片段:
片段1
片段2
去除冗余信息后,获得仅保留操作符的程序片段:
片段1
invoke-direct
new-instance
invoke-direct
片段2
invoke-virtual
move-result-object
check-cast
iput-object
随后,按程序片段的片段名称的字典顺序进行拼接,获得二进制特征文件中的一部分:
invoke-direct
new-instance
invoke-direct
#
invoke-virtual
move-result-object
check-cast
iput-object
本实施例通过对待检测应用程序安装包去除诸如广告包和操作数的冗余信息,来获得仅保留操作符的反编译文件,再按照操作符的顺序,对仅保留操作符的反编译文件进行聚合,来获得二进制特征文件,这样,对于采用增加冗余信息的剽窃手段的盗版应用程序安装包,可以排除冗余信息对盗版判断的影响,提高盗版判断的准确性。
相似度确定装置202,用于通过对所述待检测应用程序安装包的二进制特征文件与正版应用程序安装包的二进制特征文件进行分析,以确定所述待检测应用程序安装包的二进制特征文件与正版应用程序安装包的二进制特征文件的相似度。
具体地,相似度确定装置202可以包括散列计算模块2021和相似度确定模块2022。
散列计算模块2021,用于分别对正版应用程序安装包的二进制特征文件和待检测应用程序安装包的二进制特征文件进行模糊散列计算,得到两个散列值。具体地,所述模糊散列计算可以是模糊哈希(hash)计算。
相似度确定模块2022,用于通过对所述两个散列值进行分析,以确定两个散列值的相似度,并将所述两个散列值的相似度作为所述正版应用程序安装包的二进制特征文件和待检测应用程序安装包的二进制特征文件的相似度。
其中,相似度确定模块2022可以包括第一相似度确定子模块20221(图中未示出),用于基于所述两个散列值的编辑距离,来确定两个散列值的相似度。
优选地,相似度确定模块2022可以包括编辑距离计算子模块20222和第二相似度确定子模块20223。
编辑距离计算子模块20222(图中未示出),用于基于各操作符对应的预定权重,来计算所述两个散列值的基于权重的编辑距离。
第二相似度确定子模块20223(图中未示出),用于根据所计算的基于权重的编辑距离,来确定所述两个散列值的相似度。
其中,所述编辑距离,是指两个字符串之间,由一个转成另一个所需的最少编辑操作次数。其中,编辑操作包括以下任一项:
-将一个字符串中的一个字符替换成另一个字符;
-在一个字符串中插入一个字符;
-在一个字符串中删除一个字符。
例如,例如将字符串“kitten”转成字符串“sitting”,包括如下三个编辑操作:首先,将字符“k”替换成字符“s”,字符串“kitten”变成“sitten”;随后将字符“e”替换成“i”,字符串“sitten”变成“sittin”;最后,在字符串末尾插入字符“g”,字符串“sittin”变成字符串“sitting”。因此,字符串“kitten”与字符串“sitting”的编辑距离为3。
其中,带权重是指需要考虑每个操作的权重,权重是指比如操作符“add”的权重是2,操作符“sub”的权重是1等。可以根据不同的应用程序,根据经验设定各操作符的权重。
优选地,本实施例中可以采用ssdeep程序来对正版应用程序安装包的二进制特征文件和待检测应用程序安装包的二进制特征文件进行模糊散列计算,得到两个散列值,并通过对所述两个散列值进行分析,以确定两个散列值的相似度。
本实施例通过使用模糊哈希计算得到两个散列值,再通过对所述两个散列值进行分析,以确定该两个散列值的相似性,可以有效降低盗版应用程序安装包中局部的修改对应用程序安装包整体的相似性的影响程度。
可选地,还可采用欧式距离相似度,余弦相似度,Peason相似度,Jaccard相似度等来确定两个散列值的相似度。本领域技术人员应能理解以上散列值相似度的计算方式仅为例举,其他相似度计算方式如可应用于本发明,也应包含于本专利的保护范围之中,并以引用方式包含于此。
盗版判断装置203,用于根据所述相似度判断待检测应用程序安装包是否是盗版应用程序安装包。
具体地,盗版判断装置203可以包括门限判断模块2031和盗版确定模块2032。
其中,门限判断模块2031,用于判断待检测应用程序安装包的二进制特征文件与正版应用程序安装包的二进制特征文件的相似度是否超过预定门限。
盗版确定模块2032,用于如果该相似度超过预定门限,确定所述待检测应用程序安装包是盗版应用程序安装包。
与现有技术相比,本发明具有以下优点:本发明通过将待检测应用程序安装包的二进制特征文件与正版应用程序安装包的二进制特征文件进行分析,以确定待检测应用程序安装包的二进制特征文件与正版应用程序安装包的二进制特征文件的相似度,并根据该相似度判断该待检测应用程序安装包是否是盗版的应用程序安装包。采用本发明的技术方案,即使盗版应用程序安装包进行了重新打包并更换包名,也可以检测出应用程序安装包是否是盗版的应用程序安装包。
当确定所述待检测应用程序安装包是盗版应用程序安装包,网络设备可发送盗版指示信息给用户设备或直接禁止用户设备下载该盗版应用程序安装包。
需要注意的是,本发明可在软件和/或软件与硬件的组合体中被实施,例如,本发明的各个装置可采用专用集成电路(ASIC)或任何其他类似硬件设备来实现。在一个实施例中,本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (14)
1.一种用于检测盗版应用程序的方法,其特征在于,包括:
-获取待检测应用程序安装包的二进制特征文件;
-通过对所述待检测应用程序安装包的二进制特征文件与正版应用程序安装包的二进制特征文件进行分析,以确定所述待检测应用程序安装包的二进制特征文件与正版应用程序安装包的二进制特征文件的相似度;
-根据所述相似度判断待检测应用程序安装包是否是盗版应用程序安装包。
2.根据权利要求1所述的方法,其特征在于,获取待检测应用程序安装包的二进制特征文件的步骤包括:
-通过对待检测应用程序安装包进行反编译,以获得该待检测应用程序安装包的反编译文件;
-将所述待检测应用程序安装包的反编译文件进行聚合处理,以获得二进制特征文件。
3.根据权利要求2所述的方法,其特征在于,所述将所述待检测应用程序安装包的反编译文件进行聚合处理以获得二进制特征文件的步骤包括:
-通过对待检测应用程序安装包的反编译文件去除冗余信息,来获得仅保留操作符的反编译文件,其中,该冗余信息包括广告包和操作数;
-根据所述仅保留操作符的反编译文件中的所述操作符的顺序,对所述仅保留操作符的反编译文件进行聚合,以获得二进制特征文件。
4.根据权利要求2所述的方法,其特征在于,所述确定正版应用程序安装包的二进制特征文件和待检测应用程序安装包的二进制特征文件的相似度的步骤包括:
-分别对正版应用程序安装包的二进制特征文件和待检测应用程序安装包的二进制特征文件进行模糊散列计算,得到两个散列值;
-通过对所述两个散列值进行分析,以确定两个散列值的相似度,作为所述正版应用程序安装包的二进制特征文件和待检测应用程序安装包的二进制特征文件的相似度。
5.根据权利要求4所述的方法,其特征在于,所述对两个散列值进行分析以确定两个散列值的相似度的步骤包括:
-基于所述两个散列值的编辑距离,来确定两个散列值的相似度。
6.根据权利要求4所述的方法,其特征在于,所述对两个散列值进行分析以确定两个散列值的相似度的步骤包括:
-基于各操作符对应的预定权重,来计算所述两个散列值的基于权重的编辑距离;
-根据所计算的基于权重的编辑距离,来确定两个散列值的相似度。
7.根据权利要求1至6中任一项所述的方法,其特征在于,根据所述相似度判断所述该检测应用程序安装包是否是盗版应用程序安装包的步骤包括:
-判断所述相似度是否超过预定门限;
-如果所述相似度超过预定门限,确定所述待检测应用程序安装包是盗版应用程序安装包。
8.一种用于检测盗版应用程序的装置,其特征在于,包括:
获取装置,用于获取待检测应用程序安装包的二进制特征文件;
相似度确定装置,用于通过对所述待检测应用程序安装包的二进制特征文件与正版应用程序安装包的二进制特征文件进行分析,以确定所述待检测应用程序安装包的二进制特征文件与正版应用程序安装包的二进制特征文件的相似度;
盗版判断装置,用于根据所述相似度判断待检测应用程序安装包是否是盗版应用程序安装包。
9.根据权利要求8所述的装置,其特征在于,所述获取装置包括:
反编译模块,用于通过对待检测应用程序安装包进行反编译,以获得该待检测应用程序安装包的反编译文件;
二进制特征文件获取模块,用于将所述待检测应用程序安装包的反编译文件进行聚合处理,以获得二进制特征文件。
10.根据权利要求9所述的装置,其特征在于,所述二进制特征文件获取模块包括:
冗余去除子模块,用于通过对待检测应用程序安装包的反编译文件去除冗余信息,来获得仅保留操作符的反编译文件,其中,该冗余信息包括广告包和操作数;
二进制特征文件获取子模块,用于根据所述仅保留操作符的反编译文件中的所述操作符的顺序,对所述仅保留操作符的反编译文件进行聚合,以获得二进制特征文件。
11.根据权利要求9所述的装置,其特征在于,所述相似度确定装置包括:
散列计算模块,用于分别对正版应用程序安装包的二进制特征文件和待检测应用程序安装包的二进制特征文件进行模糊散列计算,得到两个散列值;
相似度确定模块,用于通过对所述两个散列值进行分析,以确定两个散列值的相似度,作为所述正版应用程序安装包的二进制特征文件和待检测应用程序安装包的二进制特征文件的相似度。
12.根据权利要求11所述的装置,其特征在于,所述相似度确定模块包括:
第一相似度确定子模块,用于基于所述两个散列值的编辑距离,来确定两个散列值的相似度。
13.根据权利要求11所述的装置,其特征在于,所述相似度确定模块包括:
编辑距离计算子模块,用于基于各操作符对应的预定权重,来计算所述两个散列值的基于权重的编辑距离;
第二相似度确定子模块,用于根据所计算的基于权重的编辑距离,来确定两个散列值的相似度。
14.根据权利要求8至13中任一项所述的装置,其特征在于,所述盗版判断装置包括:
门限判断模块,用于判断所述相似度是否超过预定门限;
盗版确定模块,用于如果所述相似度超过预定门限,确定所述待检测应用程序安装包是盗版应用程序安装包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310382289.3A CN104424402B (zh) | 2013-08-28 | 2013-08-28 | 一种用于检测盗版应用程序的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310382289.3A CN104424402B (zh) | 2013-08-28 | 2013-08-28 | 一种用于检测盗版应用程序的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104424402A true CN104424402A (zh) | 2015-03-18 |
CN104424402B CN104424402B (zh) | 2019-03-29 |
Family
ID=52973346
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310382289.3A Active CN104424402B (zh) | 2013-08-28 | 2013-08-28 | 一种用于检测盗版应用程序的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104424402B (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104794167A (zh) * | 2015-03-27 | 2015-07-22 | 北京洋浦伟业科技发展有限公司 | 获取相似应用的方法及装置 |
CN105426706A (zh) * | 2015-11-20 | 2016-03-23 | 北京奇虎科技有限公司 | 盗版应用检测方法和装置、系统 |
CN106293779A (zh) * | 2015-05-11 | 2017-01-04 | 广州爱九游信息技术有限公司 | 一种识别应用安装包的方法及装置 |
CN106469259A (zh) * | 2015-08-19 | 2017-03-01 | 北京金山安全软件有限公司 | 确定应用程序是否为正版应用程序的方法、装置及电子设备 |
CN106502879A (zh) * | 2015-09-07 | 2017-03-15 | 中国移动通信集团公司 | 一种实现应用程序安全性检测的方法及装置 |
CN107273741A (zh) * | 2017-05-18 | 2017-10-20 | 努比亚技术有限公司 | 一种系统运行方法及终端 |
CN107423581A (zh) * | 2017-07-31 | 2017-12-01 | 北京深思数盾科技股份有限公司 | 软件的保护方法和装置 |
CN108121899A (zh) * | 2017-12-13 | 2018-06-05 | 中国科学院软件研究所 | 一种应用程序防重打包方法和系统 |
CN108229131A (zh) * | 2016-12-14 | 2018-06-29 | 中国移动通信集团设计院有限公司 | 仿冒app识别方法及装置 |
CN109800575A (zh) * | 2018-12-06 | 2019-05-24 | 成都网安科技发展有限公司 | 一种Android应用程序的安全检测方法 |
CN109858249A (zh) * | 2019-02-18 | 2019-06-07 | 暨南大学 | 移动恶意软件大数据的快速智能比对和安全检测方法 |
CN112000339A (zh) * | 2020-07-09 | 2020-11-27 | 北京大学 | 安卓apk文件依赖组件识别方法及装置 |
CN112016606A (zh) * | 2020-08-20 | 2020-12-01 | 恒安嘉新(北京)科技股份公司 | 一种应用程序app的检测方法、装置、设备及存储介质 |
CN112149101A (zh) * | 2019-06-28 | 2020-12-29 | 北京智明星通科技股份有限公司 | 虚假游戏app识别方法及系统 |
CN113496012A (zh) * | 2020-04-03 | 2021-10-12 | 北京梆梆安全科技有限公司 | 一种应用安装包的二次打包检测方法及装置 |
CN114329360A (zh) * | 2022-01-07 | 2022-04-12 | 每日互动股份有限公司 | 一种用于模糊化pkg的方法、电子设备及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1361882A (zh) * | 1999-05-05 | 2002-07-31 | 迈克尔·O·罗宾 | 保护信息的方法和设备 |
US20050246537A1 (en) * | 2004-04-30 | 2005-11-03 | Microsoft Corporation | Method and system for limiting software updates |
WO2007085308A1 (de) * | 2006-01-30 | 2007-08-02 | Siemens Enterprise Communications Gmbh & Co. Kg | Verfahren und vorrichtung zum nachweis einer raubkopie |
CN101425008A (zh) * | 2007-11-01 | 2009-05-06 | 北京航空航天大学 | 基于编辑距离的源代码相似度度量方法 |
CN102081717A (zh) * | 2011-02-25 | 2011-06-01 | 金洋 | 一种使用元数据保护正版软件的方法 |
CN102750482A (zh) * | 2012-06-20 | 2012-10-24 | 东南大学 | 一种安卓市场中重包装应用的检测方法 |
CN102811213A (zh) * | 2011-11-23 | 2012-12-05 | 北京安天电子设备有限公司 | 基于模糊哈希算法的恶意代码检测系统及方法 |
-
2013
- 2013-08-28 CN CN201310382289.3A patent/CN104424402B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1361882A (zh) * | 1999-05-05 | 2002-07-31 | 迈克尔·O·罗宾 | 保护信息的方法和设备 |
US20050246537A1 (en) * | 2004-04-30 | 2005-11-03 | Microsoft Corporation | Method and system for limiting software updates |
WO2007085308A1 (de) * | 2006-01-30 | 2007-08-02 | Siemens Enterprise Communications Gmbh & Co. Kg | Verfahren und vorrichtung zum nachweis einer raubkopie |
CN101425008A (zh) * | 2007-11-01 | 2009-05-06 | 北京航空航天大学 | 基于编辑距离的源代码相似度度量方法 |
CN102081717A (zh) * | 2011-02-25 | 2011-06-01 | 金洋 | 一种使用元数据保护正版软件的方法 |
CN102811213A (zh) * | 2011-11-23 | 2012-12-05 | 北京安天电子设备有限公司 | 基于模糊哈希算法的恶意代码检测系统及方法 |
CN102750482A (zh) * | 2012-06-20 | 2012-10-24 | 东南大学 | 一种安卓市场中重包装应用的检测方法 |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104794167A (zh) * | 2015-03-27 | 2015-07-22 | 北京洋浦伟业科技发展有限公司 | 获取相似应用的方法及装置 |
CN104794167B (zh) * | 2015-03-27 | 2018-07-24 | 北京梆梆安全科技有限公司 | 获取相似应用的方法及装置 |
CN106293779B (zh) * | 2015-05-11 | 2019-11-08 | 广州爱九游信息技术有限公司 | 一种识别应用安装包的方法及装置 |
CN106293779A (zh) * | 2015-05-11 | 2017-01-04 | 广州爱九游信息技术有限公司 | 一种识别应用安装包的方法及装置 |
CN106469259A (zh) * | 2015-08-19 | 2017-03-01 | 北京金山安全软件有限公司 | 确定应用程序是否为正版应用程序的方法、装置及电子设备 |
CN106469259B (zh) * | 2015-08-19 | 2019-07-23 | 北京金山安全软件有限公司 | 确定应用程序是否为正版应用程序的方法、装置及电子设备 |
CN106502879A (zh) * | 2015-09-07 | 2017-03-15 | 中国移动通信集团公司 | 一种实现应用程序安全性检测的方法及装置 |
CN105426706A (zh) * | 2015-11-20 | 2016-03-23 | 北京奇虎科技有限公司 | 盗版应用检测方法和装置、系统 |
CN105426706B (zh) * | 2015-11-20 | 2018-06-15 | 北京奇虎科技有限公司 | 盗版应用检测方法和装置、系统 |
CN108229131A (zh) * | 2016-12-14 | 2018-06-29 | 中国移动通信集团设计院有限公司 | 仿冒app识别方法及装置 |
CN107273741A (zh) * | 2017-05-18 | 2017-10-20 | 努比亚技术有限公司 | 一种系统运行方法及终端 |
CN107423581B (zh) * | 2017-07-31 | 2019-04-12 | 北京深思数盾科技股份有限公司 | 软件的保护方法和装置 |
CN107423581A (zh) * | 2017-07-31 | 2017-12-01 | 北京深思数盾科技股份有限公司 | 软件的保护方法和装置 |
CN108121899A (zh) * | 2017-12-13 | 2018-06-05 | 中国科学院软件研究所 | 一种应用程序防重打包方法和系统 |
CN108121899B (zh) * | 2017-12-13 | 2021-07-30 | 中国科学院软件研究所 | 一种应用程序防重打包方法和系统 |
CN109800575A (zh) * | 2018-12-06 | 2019-05-24 | 成都网安科技发展有限公司 | 一种Android应用程序的安全检测方法 |
CN109858249B (zh) * | 2019-02-18 | 2020-08-07 | 暨南大学 | 移动恶意软件大数据的快速智能比对和安全检测方法 |
CN109858249A (zh) * | 2019-02-18 | 2019-06-07 | 暨南大学 | 移动恶意软件大数据的快速智能比对和安全检测方法 |
CN112149101A (zh) * | 2019-06-28 | 2020-12-29 | 北京智明星通科技股份有限公司 | 虚假游戏app识别方法及系统 |
CN113496012A (zh) * | 2020-04-03 | 2021-10-12 | 北京梆梆安全科技有限公司 | 一种应用安装包的二次打包检测方法及装置 |
CN113496012B (zh) * | 2020-04-03 | 2023-11-03 | 北京梆梆安全科技有限公司 | 一种应用安装包的二次打包检测方法及装置 |
CN112000339A (zh) * | 2020-07-09 | 2020-11-27 | 北京大学 | 安卓apk文件依赖组件识别方法及装置 |
CN112016606A (zh) * | 2020-08-20 | 2020-12-01 | 恒安嘉新(北京)科技股份公司 | 一种应用程序app的检测方法、装置、设备及存储介质 |
CN114329360A (zh) * | 2022-01-07 | 2022-04-12 | 每日互动股份有限公司 | 一种用于模糊化pkg的方法、电子设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104424402B (zh) | 2019-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104424402A (zh) | 一种用于检测盗版应用程序的方法及装置 | |
KR101711882B1 (ko) | 악성 취약점 파일을 검출하기 위한 방법, 장치 및 단말기 | |
US10489591B2 (en) | Detection system and method thereof | |
CN105868166B (zh) | 一种正则表达式的生成方法及系统 | |
CN103761476A (zh) | 特征提取的方法及装置 | |
US9389852B2 (en) | Technique for plagiarism detection in program source code files based on design pattern | |
US9612946B2 (en) | Using linked data to determine package quality | |
KR101631242B1 (ko) | 잠재 디리클레 할당을 이용한 악성 트래픽의 시그니처의 자동화된 식별 방법 및 장치 | |
KR102006245B1 (ko) | 바이너리 파일에 기초하여 오픈소스 소프트웨어 패키지를 식별하는 방법 및 시스템 | |
CN106919624B (zh) | 提高网页加载速度的方法及装置 | |
CN105022957A (zh) | 随选检测恶意程序的方法及其电子装置和使用者界面 | |
KR102006242B1 (ko) | 바이너리 파일에 기초하여 오픈소스 소프트웨어 패키지를 식별하는 방법 및 시스템 | |
CN105653949A (zh) | 一种恶意程序检测方法及装置 | |
Gadyatskaya et al. | Evaluation of resource-based app repackaging detection in android | |
US10691791B2 (en) | Automatic unpacking of executables | |
O'Neill | Learning linux binary analysis | |
Ban et al. | B2SMatcher: fine-Grained version identification of open-Source software in binary files | |
CN105354490B (zh) | 一种处理被劫持浏览器的方法及设备 | |
US9507814B2 (en) | Bit level comparator systems and methods | |
JP2013222422A (ja) | プログラム、情報処理装置、及び情報処理方法 | |
CN114254069A (zh) | 域名相似度的检测方法、装置和存储介质 | |
CN111460448A (zh) | 一种恶意软件家族检测方法及装置 | |
CN110737588A (zh) | 一种自动埋点的方法、装置、介质和电子设备 | |
CN107704732B (zh) | 一种用于生成作品指纹的方法与设备 | |
CN113805861B (zh) | 基于机器学习的代码生成方法、代码编辑系统及存储介质 |
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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210107 Address after: 310052 room 508, 5th floor, building 4, No. 699 Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province Patentee after: Alibaba (China) Co.,Ltd. Address before: 100080 room 701-52, 7th floor, 2 Haidian East 3rd Street, Haidian District, Beijing Patentee before: ZHUOYI CHANGXIANG (BEIJING) TECHNOLOGY Co.,Ltd. |