CN108401253B - 一种应用信息识别方法、装置以及系统 - Google Patents

一种应用信息识别方法、装置以及系统 Download PDF

Info

Publication number
CN108401253B
CN108401253B CN201710068095.4A CN201710068095A CN108401253B CN 108401253 B CN108401253 B CN 108401253B CN 201710068095 A CN201710068095 A CN 201710068095A CN 108401253 B CN108401253 B CN 108401253B
Authority
CN
China
Prior art keywords
api
target
information
application
target application
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.)
Active
Application number
CN201710068095.4A
Other languages
English (en)
Other versions
CN108401253A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201710068095.4A priority Critical patent/CN108401253B/zh
Publication of CN108401253A publication Critical patent/CN108401253A/zh
Application granted granted Critical
Publication of CN108401253B publication Critical patent/CN108401253B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/12Detection or prevention of fraud
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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 ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/30Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Technology Law (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

本发明实施例公开了一种应用信息识别方法、装置以及系统,其中的一种应用信息识别方法包括:获取目标应用加载的API文件;在所述API文件中提取至少一个目标API的函数字节码;将所述至少一个目标API的函数字节码中的操作码组成所述目标应用的API操作码序列;根据所述目标应用的API操作码序列判断所述目标应用的应用信息是否存在篡改风险。采用本发明,可有效识别应用调用的API信息是否被篡改。

Description

一种应用信息识别方法、装置以及系统
技术领域
本发明涉及互联网技术领域,尤其涉及一种应用信息识别方法、装置以及系统。
背景技术
随着移动互联网进入飞速发展的时代后,海量资本不断涌入移动App(Application,应用)市场,从而产生了巨大的获利空间,而在以用户流量为赢的App市场中,尤其是在移动互联网应用渠道推广阶段,出现了各种方式伪造用户流量以不当获利,其中的一种方式就是通过篡改App所在终端硬件参数实现伪造App产生的不同用户流量,例如通过修改操作系统的源码,劫持硬件参数相关的API(Application ProgrammingInterface,应用程序编程接口)来伪造虚假用户流量。
发明内容
有鉴于此,本发明实施例提供一种应用信息识别方法、装置以及系统,可有效识别应用调用的API信息是否被篡改。
为了解决上述技术问题,本发明实施例提供了一种应用信息识别方法,所述方法包括:
获取目标应用加载的API文件;
在所述API文件中提取至少一个目标API的函数字节码;
将所述至少一个目标API的函数字节码中的操作码组成所述目标应用的API操作码序列;
根据所述目标应用的API操作码序列判断所述目标应用的应用信息是否存在篡改风险。
相应地,本发明实施例还提供了一种应用信息识别方法,所述方法包括:
接收应用信息识别装置上报的目标应用的API操作码序列,所述目标应用的API操作码序列是所述应用终端根据所述目标应用加载的API文件中至少一个目标API的函数字节码中的操作码组成的;
根据所述目标应用的API操作码序列判断所述目标应用的应用信息是否存在篡改风险。
相应地,本发明实施例还提供了一种应用信息识别装置,所述装置包括:
API文件获取模块,用于获取目标应用加载的API文件;
字节码提取模块,用于在所述API文件中提取至少一个目标API的函数字节码;
码序列获取模块,用于将所述至少一个目标API的函数字节码中的操作码组成所述目标应用的API操作码序列;
应用信息识别模块,用于根据所述目标应用的API操作码序列判断所述目标应用的应用信息是否存在篡改风险。
相应地,本发明实施例还提供了一种应用信息识别系统,所述应用信息识别系统包括特征分析服务器和至少一个应用信息识别装置,其中:
所述应用信息识别装置用于获取目标应用加载的API文件,在所述API文件中提取至少一个目标API的函数字节码;将所述至少一个目标API的函数字节码中的操作码组成所述目标应用的API操作码序列,并将目标应用的API操作码序列上报至所述特征分析服务器;
所述特征分析服务器用于接收所述应用信息识别装置上报的目标应用的API操作码序列,并根据所述目标应用的API操作码序列判断所述目标应用的应用信息是否存在篡改风险。
本发明实施例中的应用信息识别装置通过获取在目标应用在运行时加载的API文件中指定API的操作码序列,进而根据该API的操作码序列判断目标应用的应用信息是否存在篡改风险,在确定目标应用的应用信息存在被篡改的风险后,可以据此标记该目标应用产生的用户流量等网络行为数据,从而有效识别出通过篡改终端API信息产生的虚假网络行为数据。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中的一种应用信息识别方法的流程示意图;
图2是本发明另一实施例中的应用信息识别方法的流程示意图;
图3是本发明实施例中OAT文件结构示意图;
图4是本发明实施例中的DEX文件结构示意图;
图5是本发明实施例中的class_def_item结构示意图;
图6是本发明实施例中的的一种应用信息识别装置的结构示意图;
图7是本发明实施例中应用信息识别装置的码序列获取模块的结构示意图;
图8是本发明实施例中应用信息识别装置的应用信息识别模块的结构示意图;
图9是本发明另一实施例中的应用信息识别装置的结构示意图;
图10是本发明实施例中的一种特征分析服务器的结构示意图;
图11是本发明实施例中特征分析服务器的应用信息识别模块的结构示意图;
图12是本发明实施例中的一种应用信息识别系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明实施例中的一种应用信息识别方法的流程示意图,本实施例中的应用信息识别方法由应用信息识别装置执行实施,如图所示包括以下流程:
S101,应用信息识别装置获取目标应用加载的API文件。
具体实现中,所述应用信息识别装置可以内嵌在所述目标应用中,例如以so库文件的形式嵌入所述目标应用的jar包中,并在。在其他可选实施例中,所述应用信息识别装置也可以为独立于所述目标应用的进程,例如嵌入浏览器、应用市场或系统进程等进程中,也可以为第三方插件或独立进程的形式运行于所述目标应用所在终端。
所述API文件可以是所述目标应用所在终端提供的,可以为jar(Java Archive,Java归档)形式或dex(一种可执行文件的类型)形式存放在终端的指定目录下,例如在/system/framework/下,所述目标应用在运行时会将API文件加载到内存中以便需要时调用系统的相应API,本发明实施例中的应用信息识别装置可以在内存中扫描得到目标应用加载的API文件(jar文件或dex文件),在其他可选实施例中的应用信息识别装置也可以在当前终端的非易失性存储介质中扫描得到所述目标应用的API文件。
在可选实施例中,应用信息识别装置可以通过读取/proc/self/maps文件内容,通常内容如下:
Figure BDA0001221059880000041
第一列为映射文件对应的内存地址,最后一列为原始文件名,本例中,API文件Android Framework映射到内存的地址范围为583bc000-58563000。
进而通过匹配文件关键字的形式,提取API文件Android Framework的内存映射地址,查找方式如下:
(1)Dalvik模式:
在/data/dalvik-cache/system中匹配关键字:@framework、@framework.jar以及@classes.dex
在/system/framework/中匹配关键字:@framework.odex
(2)ART模式:
在/system/中匹配关键字:@framework和@boot.oat
Dalvik(一种虚拟机模式)模式下,Android Framework直接以DEX格式存在与内存中,因此可以直接在内存中扫描dex文件,但是在ART(另一种虚拟机模式)模式下,DEX文件被打包到OAT(ART模式下的一种文件格式)文件内,因此,针对ART模式,需要在OAT文件中再进一步解释出DEX文件在内存中地址。通常情况下,DEX文件存在于OAT文件结构的尾部,OAT文件结构中dex_file_pointer指针储存了DEX文件的内存映射地址,通过读取OAT文件中的dex_file_pointer指针可以得出DEX文件的内存地址(如图3所示)。
S102,应用信息识别装置在所述API文件中提取至少一个目标API的函数字节码。
具体实现中,Java层所有类信息、接口信息、函数方法、函数字节码都存在所述API文件中,如果一个函数方法有所修改,一定会影响到对应的函数字节码。因此,根据这一特性,应用信息识别装置可以对内存中的API文件进行扫描,提取其中的目标API的函数字节码用以进行识别。并且,由于API文件已经映射到内存中,随机提取并不会带来太大开销。所述目标API可以包括读取终端IMEI(International Mobile Equipment Identity,国际移动设备身份码)的API,读取终端IMSI(International Mobile SubscriberIdentification Number,国际移动用户识别码)的API、获取终端Android ID的API、获取终端mac(Media Access Control,媒体访问控制)地址的API等。
在可选实施例中,所述应用信息识别装置为了在所述API文件中提取目标函数字节码,首先可以根据至少一个目标API的所属类标识在所述API文件中查找至少一个目标API的所属类信息,然后根据所述目标API的所属类信息,提取所述目标API的函数字节码。
示例性的,DEX文件中包含了Framework所有类信息,要定位到目标API的字节码,应用信息识别装置首先可以定位到目标所属类的信息,具体可以通过DEX文件结构,获取到类信息储存的内存地址范围。在如图4所示的DEX文件结构示意中,DEX的类定义在class_defs区中,通过DEX Header中的class_defs_off(class_defs区域内存偏移地址)和class_defs_size(class_defs区域内存大小)获取出class_defs区域的地址和大小。class_defs区中的类信息以class_def_item结构储存,在所述API文件中获取class_def中的类描述信息descriptor,然后在所述API文件的descriptor中查找分别与所述至少一个目标API的所属类标识匹配的类描述符,从而将根据所述类描述符定位得到的类信息作为与该类描述符匹配的目标API的所属类信息。class_defs区域类排序是按照接口、超类归类排序,寻找类之间的归类关系排序,因此直接使用线性查找消耗较小,在内存查找的情况下通常在10ms时间可实现命中。
进而在找到目标API的所属类信息后,应用信息识别装置可以通过所属类的结构层层深入获取到API函数字节码地址。在如图5所示的class_def_item结构中,class_data_off属性指向class_data_item(类信息数据)的地址,class_data_item记录了类的静态字段、实例字段以及函数列表。通过在所述目标API的所属类信息中查找与所述目标API的函数名称匹配的编码方法encoded_method结构,根据所述encoded_method结构定位所述目标API的函数字节码,具体可以为encoded_method结构的code_off指向了函数字节码结构信息code_item,code_item的insns指针指向字节码内存开始地址,insns_size描述了字节码在内存的长度(单位:字节),从而应用信息识别装置可以提取所述目标API的函数字节码。
在得到函数字节码所在的内存地址及长度后,可以直接将函数字节码16进制数据读取出来,以android/telephony/TelephonyManager#getDeviceId API为例,从Android2.2原生ROM上提取的函数字节码如下所示:
Figure BDA0001221059880000061
从Android 4.2原生ROM上提取到的android/telephony/TelephonyManager#getDeviceId API的函数字节码如下所示:
Figure BDA0001221059880000062
S103,应用信息识别装置将所述至少一个目标API的函数字节码中的操作码组成所述目标应用的API操作码序列。
同样的调用,即使是相同系统版本,不同的ROM都可能会产生不同的函数字节码。但是,上述函数字节码由操作码和操作数(参数)组成,不同的ROM之间不同的函数字节码主要是操作数(参数)的不同,而操作码通常不会存在很大的不同。以两个系统中第一句字节码为例,变化的只是操作数(2.2版本为02,4.2版本为01),而操作码12是一致的。
Figure BDA0001221059880000071
在语句相似,逻辑相似的情况下,操作码序列必定存在相似性。因此,应用信息识别装置抽取所有目标API的函数字节码中的操作码组成所述目标应用的API操作码序列用以甄别目标应用的API文件是否经过篡改。
S104,应用信息识别装置根据所述目标应用的API操作码序列判断所述目标应用的应用信息是否存在篡改风险。
具体实现中,应用信息识别装置可以将目标应用的API操作码序列与预设的至少一个已知API信息的操作码序列之间的相似度,判断所述目标应用的应用信息是否存在篡改风险,例如应用信息识别装置预设有多个原生ROM的API操作码序列或多个确定为合法版本的ROM的API操作码序列,若目标应用的API操作码序列与上述合法版本的API操作码序列之间的相似度达到预设阈值,则可以判断目标应用的应用信息是正常的未经篡改,反之则可以认为目标应用有被篡改的风险。另一种判断逻辑为,应用信息识别装置预设有多个确定为经过篡改的非法版本的ROM的API操作码序列,若目标应用的API操作码序列与上述合法版本的API操作码序列之间的相似度达到预设阈值,则可以判断目标应用的应用信息有被篡改的风险。实际应用可以使用上述两种逻辑中的任意一种或两种的结合判断所述目标应用的应用信息是否存在篡改风险。
在可选实施例中,应用信息识别装置可以根据所述目标应用的API操作码序列以及至少一个预设的特征函数获取所述目标应用的API信息的最小哈希签名,进而根据所述目标应用的API信息的最小哈希签名判断所述目标应用的应用信息是否存在篡改风险。
以前文获取到的android/telephony/TelephonyManager#getDeviceId API的操作码序列为例,序列A为Android 2.2上操作码序列,A={12,70,0c,72,11,0d,07,28};序列B为Android 4.2上的操作码序列,B={12,70,0c,72,11,0d,28}。序列可以如下表示:
行号 元素 A B 类别
0 00 0 0 Z
1 01 0 0 Z
2 02 0 0 Z
7 07 1 0 Y
12 0c 1 1 X
13 0d 1 1 X
17 11 1 1 X
18 12 1 1 X
40 28 1 1 X
112 70 1 1 X
113 71 0 0 Z
114 72 1 1 X
255 FF 0 0 Z
表1
表1中,列表示序列,行表示元素,本实施例中表示操作码。值1表示元素在特定序列中,举例如,操作码07在序列A中,故对应7行A列的值为1;反之,值0表示元素不在特定序列中。类别X表示两个序列都具有某个元素,举例如,序列A、B都具有操作码12这一元素,故此元素属于类别X;类别Y表示某元素存在于某个序列,且不在另一个序列;类别Z表示元素不在任何一个序列。由于类别Z对两个序列的相似度判断无贡献,因此本发明实施例忽略类别Z的操作码,从而两个序列中的操作码的相似程度可以用类别X的出现概率Jac(A,B)=|X|/(|X|+|Y|)表示。
示例性的,所述预设的特征函数可以为针对行号的Hash函数,如H1(x)=(x+1)mod256以及H2(x)=(9x+79)mod 256,mod为求余运算符号,可以对行号进行上述Hash后得到下表2中的新行号:
Figure BDA0001221059880000091
表2
进而基于新行号可计算最小哈希签名矩阵,即根据H1(x)和H2(x)确定的新行号查找序列A、B中的最小的非0元素行号,例如根据H1(x)确定的新行号,在序列A中最小的非0元素行号是8,在序列B中最小的非0元素的行号是13,而根据H2(x)确定的新行号,在序列A中最小的非0元素行号是63,在序列B中最小的非0元素的行号是也是63,从而得到的最小哈希签名矩阵如表3所示。
A B
H1(x) 8 13
H2(x) 63 63
Hk(x)
表3
当k=2时,操作码序列A的最小哈希签名为(8,63),操作码序列B的最小哈希签名为(13,63),两个序列的相似度为sim(A,B)=Jac(A,B)=|X∩Y|/|X∪Y|=1/3。
显然,通过增加特征函数的数量,可以扩展为更高维的最小哈希签名矩阵。
需要说明的是,上述表征两个操作码序列之间相似程度的方式,以及所采用的特征函数都仅为示例,本领域技术人员根据本发明上述实施例可以得到更多的实施例,均应属于本发明的思想范畴,应被认为在本发明权利要求所请求保护的范围。
从而,根据目标应用的API操作码序列以及至少一个预设的特征函数可以获取所述目标应用的API信息的最小哈希签名,进而应用信息识别装置可以根据所述目标应用的API信息与预设的至少一个已知API信息的最小哈希签名之间的相似度,判断所述目标应用的应用信息是否存在篡改风险。例如应用信息识别装置预设有多个原生ROM的API操作码序列或多个确定为合法版本的ROM的API操作码序列,若目标应用的API信息的最小哈希签名与上述合法版本的API信息的最小哈希签名之间的相似度达到预设阈值,则可以判断目标应用的应用信息是正常的未经篡改,反之则可以认为目标应用有被篡改的风险。另一种判断逻辑为,应用信息识别装置预设有多个确定为经过篡改的非法版本的ROM的API操作码序列,若目标应用的API信息的最小哈希签名与上述合法版本的API信息的最小哈希签名之间的相似度达到预设阈值,则可以判断目标应用的应用信息有被篡改的风险。实际应用可以使用上述两种逻辑中的任意一种或两种的结合判断所述目标应用的应用信息是否存在篡改风险。
在另一可选实施例中,应用信息识别装置在获取到不同应用或不同终端的应用信息后,可以将这些不同的应用信息按照相互之间的相似度进行聚类,由此可以得到多个应用信息聚类序列,只需要对某个聚类序列中的某个或几个应用信息进行判断是否存在篡改风险,即可得到该聚类序列中的其他应用信息是否存在篡改风险,进而当目标应用的应用信息被归类到该聚类序列后,也可以根据该聚类序列判断目标应用的应用信息是否存在被篡改的风险。
本发明实施例中的应用信息识别装置通过获取在目标应用在运行时加载的API文件中指定API的操作码序列,进而根据该API的操作码序列判断目标应用的应用信息是否存在篡改风险,在确定目标应用的应用信息存在被篡改的风险后,应用信息识别装置可以据此标记该目标应用产生的用户流量等网络行为数据,或向网络流量服务器上报该目标应用的应用信息存在被篡改风险的结果,由网络流量服务器据此标记该目标应用产生的用户流量等网络行为数据,从而有效识别出通过篡改终端API信息产生的虚假网络行为数据。
图2是本发明另一实施例中的应用信息识别方法的流程示意图,如图所示本实施例中的应用信息识别方法由应用信息识别装置和特征分析服务器共同执行实施,如图所示包括以下流程:
S201,应用信息识别装置获取目标应用加载的API文件。
S201,应用信息识别装置根据至少一个目标API的所属类标识在所述API文件中查找至少一个目标API的所属类信息。
S203,应用信息识别装置根据所述目标API的所属类信息,提取所述目标API的函数字节码。
S204,应用信息识别装置将所述至少一个目标API的函数字节码中的操作码组成所述目标应用的API操作码序列。
本实施例中的S201-S204可以参考前文实施例中的应用信息识别装置执行的S101-S103,本实施例中不再赘述。
S205,应用信息识别装置向特征分析服务器上报所述目标应用的API操作码序列。
本实施例中,应用信息识别装置在获取到目标应用加载的API文件的API操作码序列后,将API操作码序列上报至特征分析服务器,由特征分析服务器根据目标应用的API操作码序列判断目标应用的应用信息是否存在被篡改的风险。
在可选实施例中,应用信息识别装置还可以根据所述目标应用的API操作码序列以及至少一个预设的特征函数获取所述目标应用的API信息的最小哈希签名,进而将所述目标应用的API信息的最小哈希签名上报至特征分析服务器。应用信息识别装置根据所述目标应用的API操作码序列以及至少一个预设的特征函数获取所述目标应用的API信息的最小哈希签名的具体实现方式可以参考前文实施例中的S103,本实施例中不再赘述。
S206,特征分析服务器根据所述目标应用的API操作码序列以及至少一个预设的特征函数获取所述目标应用的API信息的最小哈希签名。
特征分析服务器根据所述目标应用的API操作码序列以及至少一个预设的特征函数获取所述目标应用的API信息的最小哈希签名的具体实现方式可以参考前文实施例中的S103中应用信息识别装置的具体实施方式,本实施例仅是将这部分步骤交由特征分析服务器实施,因此具体实施细节在本实施例中不再赘述。
在其他可选实施例中,若应用信息识别装置上报的是根据所述目标应用的API操作码序列以及至少一个预设的特征函数处理得到的所述目标应用的API信息的最小哈希签名,那么特征分析服务器可以不执行本步骤S206而是直接执行S207。
S207,特征分析服务器根据所述目标应用的API信息的最小哈希签名与预设的至少一个已知API信息的最小哈希签名之间的相似度,判断所述目标应用的应用信息是否存在篡改风险。
特征分析服务器在获取到所述目标应用的API信息的最小哈希签名后,可以根据所述目标应用的API信息与预设的至少一个已知API信息的最小哈希签名之间的相似度,判断所述目标应用的应用信息是否存在篡改风险。例如特征分析服务器预设有多个原生ROM的API操作码序列或多个确定为合法版本的ROM的API操作码序列,若目标应用的API信息的最小哈希签名与上述合法版本的API信息的最小哈希签名之间的相似度达到预设阈值,则可以判断目标应用的应用信息是正常的未经篡改,反之则可以认为目标应用有被篡改的风险。另一种判断逻辑为,特征分析服务器预设有多个确定为经过篡改的非法版本的ROM的API操作码序列,若目标应用的API信息的最小哈希签名与上述合法版本的API信息的最小哈希签名之间的相似度达到预设阈值,则可以判断目标应用的应用信息有被篡改的风险。实际应用可以使用上述两种逻辑中的任意一种或两种的结合判断所述目标应用的应用信息是否存在篡改风险。
在另一可选实施例中,特征分析服务器在收集到多个应用信息识别装置针对不同应用或不同终端中的应用信息后,可以将这些不同的应用信息按照相互之间的相似度进行聚类,由此可以得到多个应用信息聚类序列,进而只需要对某个聚类序列中的某个或几个应用信息进行判断是否存在篡改风险,即可得到该聚类序列中的其他应用信息是否存在篡改风险,进而当目标应用的应用信息被归类到该聚类序列后,特征分析服务器也可以根据该聚类序列判断目标应用的应用信息是否存在被篡改的风险。
本发明实施例中的应用信息识别装置通过获取在目标应用在运行时加载的API文件中指定API的操作码序列,进而交由特征分析服务器根据该API的操作码序列判断目标应用的应用信息是否存在篡改风险,在确定目标应用的应用信息存在被篡改的风险后,特征分析服务器可以据此标记该目标应用产生的用户流量等网络行为数据,或向网络流量服务器上报该目标应用的应用信息存在被篡改风险的结果,由网络流量服务器据此标记该目标应用产生的用户流量等网络行为数据,从而有效识别出通过篡改终端API信息产生的虚假网络行为数据。
图6是本发明实施例总共的一种应用信息识别装置的结构示意图,如图所示本发明实施例中的应用信息识别装置至少可以包括以下结构:
API文件获取模块610,用于获取目标应用加载的API文件。
具体实现中,所述应用信息识别装置可以内嵌在所述目标应用中,例如以so库文件的形式嵌入所述目标应用的jar包中,并在。在其他可选实施例中,所述应用信息识别装置也可以为独立于所述目标应用的进程,例如嵌入浏览器、应用市场或系统进程等进程中,也可以为第三方插件或独立进程的形式运行于所述目标应用所在终端。
所述API文件可以是所述目标应用所在终端提供的,可以为jar(Java Archive,Java归档)形式或dex(一种可执行文件的类型)形式存放在终端的指定目录下,例如在/system/framework/下,所述目标应用在运行时会将API文件加载到内存中以便需要时调用系统的相应API,本发明实施例中的API文件获取模块610可以在内存中扫描得到目标应用加载的API文件(jar文件或dex文件),在其他可选实施例中的API文件获取模块610也可以在当前终端的非易失性存储介质中扫描得到所述目标应用的API文件。
字节码提取模块620,用于在所述API文件中提取至少一个目标API的函数字节码。
具体实现中,Java层所有类信息、接口信息、函数方法、函数字节码都存在所述API文件中,如果一个函数方法有所修改,一定会影响到对应的函数字节码。因此,根据这一特性,应用信息识别装置可以对内存中的API文件进行扫描,提取其中的目标API的函数字节码用以进行识别。并且,由于API文件已经映射到内存中,随机提取并不会带来太大开销。所述目标API可以包括读取终端IMEI(International Mobile Equipment Identity,国际移动设备身份码)的API,读取终端IMSI(International Mobile SubscriberIdentification Number,国际移动用户识别码)的API、获取终端Android ID的API、获取终端mac(Media Access Control,媒体访问控制)地址的API等。
在可选实施例中,字节码提取模块620如图7所示进一步可以包括类信息获取单元621和字节码提取单元622,其中:
类信息获取单元621,用于根据至少一个目标API的所属类标识在所述API文件中查找至少一个目标API的所属类信息。
示例性的,DEX文件中包含了Framework所有类信息,要定位到目标API的字节码,类信息获取单元621首先可以定位到目标所属类的信息,具体可以通过DEX文件结构,获取到类信息储存的内存地址范围。在如图4所示的DEX文件结构示意中,DEX的类定义在class_defs区中,通过DEX Header中的class_defs_off(class_defs区域内存偏移地址)和class_defs_size(class_defs区域内存大小)获取出class_defs区域的地址和大小。class_defs区中的类信息以class_def_item结构储存,在所述API文件中获取class_def中的类描述信息descriptor,然后在所述API文件的descriptor中查找分别与所述至少一个目标API的所属类标识匹配的类描述符,从而将根据所述类描述符定位得到的类信息作为与该类描述符匹配的目标API的所属类信息。class_defs区域类排序是按照接口、超类归类排序,寻找类之间的归类关系排序,因此直接使用线性查找消耗较小,在内存查找的情况下通常在10ms时间可实现命中。
字节码提取单元622,用于根据所述目标API的所属类信息,提取所述目标API的函数字节码。
在找到目标API的所属类信息后,字节码提取单元622可以通过所属类的结构层层深入获取到API函数字节码地址。在如图5所示的class_def_item结构中,class_data_off属性指向class_data_item(类信息数据)的地址,class_data_item记录了类的静态字段、实例字段以及函数列表。通过在所述目标API的所属类信息中查找与所述目标API的函数名称匹配的编码方法encoded_method结构,根据所述encoded_method结构定位所述目标API的函数字节码,具体可以为encoded_method结构的code_off指向了函数字节码结构信息code_item,code_item的insns指针指向字节码内存开始地址,insns_size描述了字节码在内存的长度(单位:字节),从而字节码提取单元622可以提取所述目标API的函数字节码。在得到函数字节码所在的内存地址及长度后,可以直接将函数字节码16进制数据读取出来。
码序列获取模块630,用于将所述至少一个目标API的函数字节码中的操作码组成所述目标应用的API操作码序列。
在语句相似,逻辑相似的情况下,操作码序列必定存在相似性。因此,码序列获取模块630抽取所有目标API的函数字节码中的操作码组成所述目标应用的API操作码序列用以甄别目标应用的API文件是否经过篡改。
应用信息识别模块640,用于根据所述目标应用的API操作码序列判断所述目标应用的应用信息是否存在篡改风险。
具体实现中,应用信息识别模块640可以将目标应用的API操作码序列与预设的至少一个已知API信息的操作码序列之间的相似度,判断所述目标应用的应用信息是否存在篡改风险,例如应用信息识别装置预设有多个原生ROM的API操作码序列或多个确定为合法版本的ROM的API操作码序列,若目标应用的API操作码序列与上述合法版本的API操作码序列之间的相似度达到预设阈值,则可以判断目标应用的应用信息是正常的未经篡改,反之则可以认为目标应用有被篡改的风险。另一种判断逻辑为,应用信息识别装置预设有多个确定为经过篡改的非法版本的ROM的API操作码序列,若目标应用的API操作码序列与上述合法版本的API操作码序列之间的相似度达到预设阈值,则可以判断目标应用的应用信息有被篡改的风险。实际应用中应用信息识别模块640可以使用上述两种逻辑中的任意一种或两种的结合判断所述目标应用的应用信息是否存在篡改风险。
在可选实施例中,应用信息识别模块640可以根据所述目标应用的API操作码序列以及至少一个预设的特征函数获取所述目标应用的API信息的最小哈希签名,进而根据所述目标应用的API信息的最小哈希签名判断所述目标应用的应用信息是否存在篡改风险。
具体实施方式可以参考前文实施例中的S104,本实施例中不再赘述。
进而在可选实施例中,所述应用信息识别模块640具体用于:
将所述目标应用的API操作码序列上报至特征分析服务器,由所述特征分析服务器根据所述目标应用的API操作码序列判断所述目标应用的应用信息是否存在篡改风险。
进一步可选的,如图8所示,应用信息识别模块640可以包括:
哈希签名获取单元641,用于根据所述目标应用的API操作码序列以及至少一个预设的特征函数获取所述目标应用的API信息的最小哈希签名;
哈希签名上报单元642,用于将所述目标应用的API信息的最小哈希签名上报至特征分析服务器。
本发明实施例中的应用信息识别装置通过获取在目标应用在运行时加载的API文件中指定API的操作码序列,进而根据该API的操作码序列判断目标应用的应用信息是否存在篡改风险,在确定目标应用的应用信息存在被篡改的风险后,应用信息识别装置可以据此标记该目标应用产生的用户流量等网络行为数据,或向网络流量服务器上报该目标应用的应用信息存在被篡改风险的结果,由网络流量服务器据此标记该目标应用产生的用户流量等网络行为数据,从而有效识别出通过篡改终端API信息产生的虚假网络行为数据。
上述应用信息识别装置可以为PC这种电子设备,也可以是通过集群服务器构成的,为实现各单元功能而合并为一实体或各单元功能分体设置的电子设备,应用信息识别装置至少包括用于存储数据的数据库和用于数据处理的处理器,可以包括内置的存储介质或独立设置的存储介质。
其中,对于用于数据处理的处理器而言,在执行处理时,可以采用微处理器、中央处理器(CPU,Central Processing Unit)、数字信号处理器(DSP,DigitalSingnalProcessor)或可编程逻辑阵列(FPGA,Field-Programmable Gate Array)实现;对于存储介质来说,包含操作指令,该操作指令可以为计算机可执行代码,通过所述操作指令来实现上述本发明实施例如图1-2所示的应用信息识别方法流程中应用信息识别装置执行的各个步骤。
应用信息识别装置作为硬件实体的一个示例如图9所示。网页调试装置包括处理器901、存储介质902以及至少一个外部通信接口903;所述处理器901、存储介质902以及通信接口903均通过总线904连接。
应用信息识别装置中的处理器901可以调用存储介质902中的操作指令执行以下流程:
获取目标应用加载的API文件;
在所述API文件中提取至少一个目标API的函数字节码;
将所述至少一个目标API的函数字节码中的操作码组成所述目标应用的API操作码序列;
根据所述目标应用的API操作码序列判断所述目标应用的应用信息是否存在篡改风险
这里需要指出的是:本实施例中以上涉及应用信息识别装置的描述,与前文应用信息识别方法的描述是类似的,同方法的有益效果描述,不做赘述。对于本发明应用信息识别装置实施例中未披露的技术细节,请参照本发明方法实施例的描述。
图8是本发明实施例中的一种特征分析服务器的结构示意图,如图所示本发明实施例中的特征分析服务器包括以下结构:
API特征收集模块1010,用于接收应用信息识别装置上报的目标应用的API操作码序列,所述目标应用的API操作码序列是所述应用终端根据所述目标应用加载的API文件中至少一个目标API的函数字节码中的操作码组成的。
本实施例中,应用信息识别装置在获取到目标应用加载的API文件的API操作码序列后,将API操作码序列上报至特征分析服务器,由特征分析服务器根据目标应用的API操作码序列判断目标应用的应用信息是否存在被篡改的风险。
在可选实施例中,应用信息识别装置还可以根据所述目标应用的API操作码序列以及至少一个预设的特征函数获取所述目标应用的API信息的最小哈希签名,进而将所述目标应用的API信息的最小哈希签名上报至特征分析服务器。
应用信息识别模块1020,用于根据所述目标应用的API操作码序列判断所述目标应用的应用信息是否存在篡改风险。
具体实现中,应用信息识别模块1020可以将目标应用的API操作码序列与预设的至少一个已知API信息的操作码序列之间的相似度,判断所述目标应用的应用信息是否存在篡改风险,例如特征分析服务器预设有多个原生ROM的API操作码序列或多个确定为合法版本的ROM的API操作码序列,若目标应用的API操作码序列与上述合法版本的API操作码序列之间的相似度达到预设阈值,则可以判断目标应用的应用信息是正常的未经篡改,反之则可以认为目标应用有被篡改的风险。另一种判断逻辑为,特征分析服务器预设有多个确定为经过篡改的非法版本的ROM的API操作码序列,若目标应用的API操作码序列与上述合法版本的API操作码序列之间的相似度达到预设阈值,则可以判断目标应用的应用信息有被篡改的风险。实际应用中应用信息识别模块1020可以使用上述两种逻辑中的任意一种或两种的结合判断所述目标应用的应用信息是否存在篡改风险。
进而在可选实施例中,应用信息识别模块应用信息识别模块1020如图10所示进一步可以包括:
哈希签名获取单元1021,用于根据所述目标应用的API操作码序列以及至少一个预设的特征函数获取所述目标应用的API信息的最小哈希签名。
哈希签名获取单元1021根据所述目标应用的API操作码序列以及至少一个预设的特征函数获取所述目标应用的API信息的最小哈希签名的具体实现方式可以参考前文实施例中的S103中应用信息识别装置的具体实施方式,本实施例仅是将这部分功能交由特征分析服务器的哈希签名获取单元1021实施,因此具体实施细节在本实施例中不再赘述。
应用信息识别单元1022,用于根据所述目标应用的API信息的最小哈希签名判断所述目标应用的应用信息是否存在篡改风险。
在获取到所述目标应用的API信息的最小哈希签名后,应用信息识别单元1022可以根据所述目标应用的API信息与预设的至少一个已知API信息的最小哈希签名之间的相似度,判断所述目标应用的应用信息是否存在篡改风险。例如特征分析服务器预设有多个原生ROM的API操作码序列或多个确定为合法版本的ROM的API操作码序列,若目标应用的API信息的最小哈希签名与上述合法版本的API信息的最小哈希签名之间的相似度达到预设阈值,则可以判断目标应用的应用信息是正常的未经篡改,反之则可以认为目标应用有被篡改的风险。另一种判断逻辑为,特征分析服务器预设有多个确定为经过篡改的非法版本的ROM的API操作码序列,若目标应用的API信息的最小哈希签名与上述合法版本的API信息的最小哈希签名之间的相似度达到预设阈值,则可以判断目标应用的应用信息有被篡改的风险。实际应中应用信息识别单元1022用可以使用上述两种逻辑中的任意一种或两种的结合判断所述目标应用的应用信息是否存在篡改风险。
在另一可选实施例中,特征分析服务器在收集到多个应用信息识别装置针对不同应用或不同终端中的应用信息后,应用信息识别单元1022可以将这些不同的应用信息按照相互之间的相似度进行聚类,由此可以得到多个应用信息聚类序列,进而只需要对某个聚类序列中的某个或几个应用信息进行判断是否存在篡改风险,即可得到该聚类序列中的其他应用信息是否存在篡改风险,进而当目标应用的应用信息被归类到该聚类序列后,应用信息识别单元1022也可以根据该聚类序列判断目标应用的应用信息是否存在被篡改的风险。
本发明实施例中的应用信息识别装置通过获取在目标应用在运行时加载的API文件中指定API的操作码序列,进而交由特征分析服务器根据该API的操作码序列判断目标应用的应用信息是否存在篡改风险,在确定目标应用的应用信息存在被篡改的风险后,特征分析服务器可以据此标记该目标应用产生的用户流量等网络行为数据,或向网络流量服务器上报该目标应用的应用信息存在被篡改风险的结果,由网络流量服务器据此标记该目标应用产生的用户流量等网络行为数据,从而有效识别出通过篡改终端API信息产生的虚假网络行为数据。
图12是本发明实施例中的一种应用信息识别系统的结构示意图,如图所示本发明实施例中的应用信息识别系统包括应用信息识别装置1201和特征分析服务器1202,其中:
所述应用信息识别装置1201实现于如图12中所示的用户终端中,用于获取目标应用加载的API文件,在所述API文件中提取至少一个目标API的函数字节码;将所述至少一个目标API的函数字节码中的操作码组成所述目标应用的API操作码序列,并将目标应用的API操作码序列上报至所述特征分析服务器1202;
所述特征分析服务器1202用于接收所述应用信息识别装置1201上报的目标应用的API操作码序列,并根据所述目标应用的API操作码序列判断所述目标应用的应用信息是否存在篡改风险。
本实施例中的应用信息识别装置通过获取在目标应用在运行时加载的API文件中指定API的操作码序列,进而交由特征分析服务器根据该API的操作码序列判断目标应用的应用信息是否存在篡改风险,在确定目标应用的应用信息存在被篡改的风险后,特征分析服务器可以据此标记该目标应用产生的用户流量等网络行为数据,或向网络流量服务器上报该目标应用的应用信息存在被篡改风险的结果,由网络流量服务器据此标记该目标应用产生的用户流量等网络行为数据,从而有效识别出通过篡改终端API信息产生的虚假网络行为数据。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (14)

1.一种应用信息识别方法,其特征在于,所述方法包括:
获取目标应用加载到内存中的API文件,所述API文件为所述目标应用所在终端提供的;
在所述API文件中获取类描述信息;
在所述API文件的类描述信息中查找分别与至少一个目标API的所属类标识匹配的类描述符,所述目标API包括读取终端IMEI的API、读取终端IMSI的API、获取终端AndroidID的API和获取终端mac地址的API;
针对每个所述目标API,将根据所述类描述符定位得到的类信息作为与该类描述符匹配的目标API的所属类信息;在所述目标API的所属类信息中查找与所述目标API的函数名称匹配的编码方法结构;根据所述编码方法结构定位所述目标API的函数字节码,提取所述目标API的函数字节码;
将所述至少一个目标API的函数字节码中的操作码组成所述目标应用的API操作码序列;
根据所述目标应用的API操作码序列以及至少一个预设的特征函数获取所述目标应用的API信息的最小哈希签名;
根据预设的至少一个已知API信息的API操作码序列以及所述至少一个预设的特征函数获取所述至少一个已知API信息的最小哈希签名,所述已知API信息的API操作码序列为预设的原生ROM的API操作码序列或者预设的非法ROM的API操作码序列;
根据所述目标应用的API信息的最小哈希签名与所述至少一个已知API信息的最小哈希签名之间的相似度,判断所述目标应用的应用信息是否存在篡改风险,所述相似度为|X∩Y|/|X∪Y|,所述X为所述目标应用的API信息的最小哈希签名,所述Y为所述至少一个已知API信息的最小哈希签名,所述目标应用的应用信息为所述目标应用调用终端的目标API所产生的应用信息;
当存在多个不同应用的应用信息,将所述多个不同应用的应用信息按照所述最小哈希签名之间的相似度进行聚类,得到目标聚类序列,所述目标聚类序列包括所述目标应用的应用信息;
若确定所述目标应用的应用信息存在篡改风险,则确定所述目标聚类序列中包括的其他应用的应用信息存在篡改风险,并标记所述目标应用产生用户流量的网络行为数据。
2.如权利要求1所述的应用信息识别方法,其特征在于,根据所述目标应用的API操作码序列判断所述目标应用的应用信息是否存在篡改风险包括:
将所述目标应用的API操作码序列上报至特征分析服务器,由所述特征分析服务器根据所述目标应用的API操作码序列判断所述目标应用的应用信息是否存在篡改风险。
3.如权利要求2所述的应用信息识别方法,其特征在于,所述将所述目标应用的API操作码序列上报至特征分析服务器包括:
根据所述目标应用的API操作码序列以及至少一个预设的特征函数获取所述目标应用的API信息的最小哈希签名;
将所述目标应用的API信息的最小哈希签名上报至特征分析服务器。
4.如权利要求1所述的应用信息识别方法,其特征在于,所述根据所述目标应用的API操作码序列判断所述目标应用的应用信息是否存在篡改风险包括:
根据所述目标应用的API操作码序列与预设的至少一个已知API信息的API操作码序列之间的相似度,判断所述目标应用的应用信息是否存在篡改风险。
5.一种应用信息识别方法,其特征在于,所述方法包括:
接收应用信息识别装置上报的目标应用的API操作码序列,所述目标应用的API操作码序列是所述应用终端根据所述目标应用加载到内存中的API文件中至少一个目标API的函数字节码中的操作码组成的,所述API文件为所述目标应用所在终端提供的,所述目标API包括读取终端IMEI的API、读取终端IMSI的API、获取终端Android ID的API和获取终端mac地址的API;
根据所述目标应用的API操作码序列以及至少一个预设的特征函数获取所述目标应用的API信息的最小哈希签名;
根据预设的至少一个已知API信息的API操作码序列以及所述至少一个预设的特征函数获取所述至少一个已知API信息的最小哈希签名,所述已知API信息的API操作码序列为预设的原生ROM的API操作码序列或者预设的非法ROM的API操作码序列;
根据所述目标应用的API信息的最小哈希签名与所述至少一个已知API信息的最小哈希签名之间的相似度,判断所述目标应用的应用信息是否存在篡改风险,所述相似度为|X∩Y|/|X∪Y|,所述X为所述目标应用的API信息的最小哈希签名,所述Y为所述至少一个已知API信息的最小哈希签名,所述目标应用的应用信息为所述目标应用调用终端的目标API所产生的应用信息;
当存在多个不同应用的应用信息,将所述多个不同应用的应用信息按照所述最小哈希签名之间的相似度进行聚类,得到目标聚类序列,所述目标聚类序列包括所述目标应用的应用信息;
若确定所述目标应用的应用信息存在篡改风险,则确定所述目标聚类序列中包括的其他应用的应用信息存在篡改风险,并标记所述目标应用产生用户流量的网络行为数据;
所述至少一个目标API的函数字节码是所述应用终端通过如下步骤提取得到的:在所述API文件中获取类描述信息;在所述API文件的类描述信息中查找分别与至少一个目标API的所属类标识匹配的类描述符;针对每个所述目标API,将根据所述类描述符定位得到的类信息作为与该类描述符匹配的目标API的所属类信息;在所述目标API的所属类信息中查找与所述目标API的函数名称匹配的编码方法结构;根据所述编码方法结构定位所述目标API的函数字节码,提取所述目标API的函数字节码。
6.如权利要求5所述的应用信息识别方法,其特征在于,所述根据所述目标应用的API操作码序列判断所述目标应用的应用信息是否存在篡改风险包括:
根据所述目标应用的API操作码序列以及至少一个预设的特征函数获取所述目标应用的API信息的最小哈希签名;
根据所述目标应用的API信息的最小哈希签名判断所述目标应用的应用信息是否存在篡改风险。
7.一种应用信息识别装置,其特征在于,所述装置包括:
API文件获取模块,用于获取目标应用加载到内存中的API文件,所述API文件为所述目标应用所在终端提供的;
字节码提取模块,用于在所述API文件中提取至少一个目标API的函数字节码,所述目标API包括读取终端IMEI的API、读取终端IMSI的API、获取终端Android ID的API和获取终端mac地址的API;
所述字节码提取模块包括:
类信息获取单元,用于在所述API文件中获取类描述信息;在所述API文件的类描述信息中查找分别与至少一个目标API的所属类标识匹配的类描述符,将根据所述类描述符定位得到的类信息作为与该类描述符匹配的目标API的所属类信息;
字节码提取单元,用于在所述目标API的所属类信息中查找与所述目标API的函数名称匹配的编码方法结构;根据所述编码方法结构定位所述目标API的函数字节码,提取所述目标API的函数字节码;
码序列获取模块,用于将所述至少一个目标API的函数字节码中的操作码组成所述目标应用的API操作码序列;
应用信息识别模块,用于根据所述目标应用的API操作码序列以及至少一个预设的特征函数获取所述目标应用的API信息的最小哈希签名;根据预设的至少一个已知API信息的API操作码序列以及所述至少一个预设的特征函数获取所述至少一个已知API信息的最小哈希签名,所述已知API信息的API操作码序列为预设的原生ROM的API操作码序列或者预设的非法ROM的API操作码序列;根据所述目标应用的API信息的最小哈希签名与所述至少一个已知API信息的最小哈希签名之间的相似度,判断所述目标应用的应用信息是否存在篡改风险,所述相似度为|X∩Y|/|X∪Y|,所述X为所述目标应用的API信息的最小哈希签名,所述Y为所述至少一个已知API信息的最小哈希签名,所述目标应用的应用信息为所述目标应用调用终端的目标API所产生的应用信息;以及用于当存在多个不同应用的应用信息,将所述多个不同应用的应用信息按照所述最小哈希签名之间的相似度进行聚类,得到目标聚类序列,所述目标聚类序列包括所述目标应用的应用信息;若确定所述目标应用的应用信息存在篡改风险,则确定所述目标聚类序列中包括的其他应用的应用信息存在篡改风险,并标记所述目标应用产生用户流量的网络行为数据。
8.如权利要求7所述的应用信息识别装置,其特征在于,所述应用信息识别模块用于:
将所述目标应用的API操作码序列上报至特征分析服务器,由所述特征分析服务器根据所述目标应用的API操作码序列判断所述目标应用的应用信息是否存在篡改风险。
9.如权利要求8所述的应用信息识别装置,其特征在于,所述应用信息识别模块包括:
哈希签名获取单元,用于根据所述目标应用的API操作码序列以及至少一个预设的特征函数获取所述目标应用的API信息的最小哈希签名;
哈希签名上报单元,用于将所述目标应用的API信息的最小哈希签名上报至特征分析服务器。
10.如权利要求7所述的应用信息识别装置,其特征在于,所述应用信息识别模块用于:
根据所述目标应用的API操作码序列与预设的至少一个已知API信息的API操作码序列之间的相似度,判断所述目标应用的应用信息是否存在篡改风险。
11.一种特征分析服务器,其特征在于,所述特征分析服务器包括:
API特征收集模块,用于接收应用信息识别装置上报的目标应用的API操作码序列,所述目标应用的API操作码序列是所述应用终端根据所述目标应用加载到内存中的API文件中至少一个目标API的函数字节码中的操作码组成的,所述API文件为所述目标应用所在终端提供的,所述目标API包括读取终端IMEI的API、读取终端IMSI的API、获取终端AndroidID的API和获取终端mac地址的API;
所述至少一个目标API的函数字节码是所述应用终端通过如下步骤提取得到的:在所述API文件中获取类描述信息;在所述API文件的类描述信息中查找分别与至少一个目标API的所属类标识匹配的类描述符;针对每个所述目标API,将根据所述类描述符定位得到的类信息作为与该类描述符匹配的目标API的所属类信息;在所述目标API的所属类信息中查找与所述目标API的函数名称匹配的编码方法结构;根据所述编码方法结构定位所述目标API的函数字节码,提取所述目标API的函数字节码;
应用信息识别模块,用于根据所述目标应用的API操作码序列以及至少一个预设的特征函数获取所述目标应用的API信息的最小哈希签名;根据预设的至少一个已知API信息的API操作码序列以及所述至少一个预设的特征函数获取所述至少一个已知API信息的最小哈希签名,所述已知API信息的API操作码序列为预设的原生ROM的API操作码序列或者预设的非法ROM的API操作码序列;根据所述目标应用的API信息的最小哈希签名与所述至少一个已知API信息的最小哈希签名之间的相似度,判断所述目标应用的应用信息是否存在篡改风险,所述相似度为|X∩Y|/|X∪Y|,所述X为所述目标应用的API信息的最小哈希签名,所述Y为所述至少一个已知API信息的最小哈希签名,所述目标应用的应用信息为所述目标应用调用终端的目标API所产生的应用信息;以及用于当存在多个不同应用的应用信息,将所述多个不同应用的应用信息按照所述最小哈希签名之间的相似度进行聚类,得到目标聚类序列,所述目标聚类序列包括所述目标应用的应用信息;若确定所述目标应用的应用信息存在篡改风险,则确定所述目标聚类序列中包括的其他应用的应用信息存在篡改风险,并标记所述目标应用产生用户流量的网络行为数据。
12.如权利要求11所述的特征分析服务器,其特征在于,所述应用信息识别模块包括:
哈希签名获取单元,用于根据所述目标应用的API操作码序列以及至少一个预设的特征函数获取所述目标应用的API信息的最小哈希签名;
应用信息识别单元,用于根据所述目标应用的API信息的最小哈希签名判断所述目标应用的应用信息是否存在篡改风险。
13.一种应用信息识别系统,其特征在于,所述应用信息识别系统包括特征分析服务器和至少一个应用信息识别装置,其中:
所述应用信息识别装置用于获取目标应用加载到内存中的API文件,所述API文件为所述目标应用所在终端提供的,在所述API文件中获取类描述信息;在所述API文件的类描述信息中查找分别与至少一个目标API的所属类标识匹配的类描述符,所述目标API包括读取终端IMEI的API、读取终端IMSI的API、获取终端Android ID的API和获取终端mac地址的API;针对每个所述目标API,将根据所述类描述符定位得到的类信息作为与该类描述符匹配的目标API的所属类信息;在所述目标API的所属类信息中查找与所述目标API的函数名称匹配的编码方法结构;根据所述编码方法结构定位所述目标API的函数字节码,提取所述目标API的函数字节码;将所述至少一个目标API的函数字节码中的操作码组成所述目标应用的API操作码序列,并将目标应用的API操作码序列上报至所述特征分析服务器;
所述特征分析服务器用于接收所述应用信息识别装置上报的目标应用的API操作码序列,并根据所述目标应用的API操作码序列以及至少一个预设的特征函数获取所述目标应用的API信息的最小哈希签名;根据预设的至少一个已知API信息的API操作码序列以及所述至少一个预设的特征函数获取所述至少一个已知API信息的最小哈希签名,所述已知API信息的API操作码序列为预设的原生ROM的API操作码序列或者预设的非法ROM的API操作码序列;根据所述目标应用的API信息的最小哈希签名与所述至少一个已知API信息的最小哈希签名之间的相似度,判断所述目标应用的应用信息是否存在篡改风险,所述相似度为|X∩Y|/|X∪Y|,所述X为所述目标应用的API信息的最小哈希签名,所述Y为所述至少一个已知API信息的最小哈希签名,所述目标应用的应用信息为所述目标应用调用终端的目标API所产生的应用信息;以及用于当存在多个不同应用的应用信息,将所述多个不同应用的应用信息按照所述最小哈希签名之间的相似度进行聚类,得到目标聚类序列,所述目标聚类序列包括所述目标应用的应用信息;若确定所述目标应用的应用信息存在篡改风险,则确定所述目标聚类序列中包括的其他应用的应用信息存在篡改风险,并标记所述目标应用产生用户流量的网络行为数据。
14.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时,使得具有所述处理器的计算机设备执行如权利要求1-6任一项所述的方法。
CN201710068095.4A 2017-02-06 2017-02-06 一种应用信息识别方法、装置以及系统 Active CN108401253B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710068095.4A CN108401253B (zh) 2017-02-06 2017-02-06 一种应用信息识别方法、装置以及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710068095.4A CN108401253B (zh) 2017-02-06 2017-02-06 一种应用信息识别方法、装置以及系统

Publications (2)

Publication Number Publication Date
CN108401253A CN108401253A (zh) 2018-08-14
CN108401253B true CN108401253B (zh) 2022-12-27

Family

ID=63093763

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710068095.4A Active CN108401253B (zh) 2017-02-06 2017-02-06 一种应用信息识别方法、装置以及系统

Country Status (1)

Country Link
CN (1) CN108401253B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106060025A (zh) * 2016-05-24 2016-10-26 北京奇虎科技有限公司 应用程序的自动分类方法和装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101005497A (zh) * 2006-11-27 2007-07-25 科博技术有限公司 一种阻止恶意代码入侵的系统及方法
CN103761475B (zh) * 2013-12-30 2017-04-26 北京奇虎科技有限公司 检测智能终端中恶意代码的方法及装置
CN104899009A (zh) * 2014-03-03 2015-09-09 可牛网络技术(北京)有限公司 一种安卓应用的识别方法及装置
EP3113065B1 (en) * 2015-06-30 2017-07-05 Kaspersky Lab AO System and method of detecting malicious files on mobile devices
RU2606564C1 (ru) * 2015-09-30 2017-01-10 Акционерное общество "Лаборатория Касперского" Система и способ блокировки выполнения сценариев

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106060025A (zh) * 2016-05-24 2016-10-26 北京奇虎科技有限公司 应用程序的自动分类方法和装置

Also Published As

Publication number Publication date
CN108401253A (zh) 2018-08-14

Similar Documents

Publication Publication Date Title
CN109951435B (zh) 一种设备标识提供方法及装置和风险控制方法及装置
KR101337874B1 (ko) 파일 유전자 지도를 이용하여 파일의 악성코드 포함 여부를 판단하는 방법 및 시스템
US20170214704A1 (en) Method and device for feature extraction
CN106951780A (zh) 重打包恶意应用的静态检测方法和装置
KR101582601B1 (ko) 액티비티 문자열 분석에 의한 안드로이드 악성코드 검출 방법
CN108563952B (zh) 文件的病毒检测方法、装置及存储介质
CN110866258B (zh) 快速定位漏洞方法、电子装置及存储介质
CN111800404B (zh) 一种对恶意域名的识别方法、装置以及存储介质
CN111241389A (zh) 基于矩阵的敏感词过滤方法、装置、电子设备、存储介质
CN112148305A (zh) 一种应用检测方法、装置、计算机设备和可读存储介质
CN113381963A (zh) 一种域名检测方法、装置和存储介质
CN114282212A (zh) 流氓软件识别方法、装置、电子设备及存储介质
CN107688744B (zh) 基于图像特征匹配的恶意文件分类方法及装置
CN108401253B (zh) 一种应用信息识别方法、装置以及系统
CN110503504B (zh) 网络产品的信息识别方法、装置及设备
CN111488574A (zh) 恶意软件分类方法、系统、计算机设备和存储介质
CN105099996B (zh) 网站验证方法及装置
CN112395603A (zh) 基于指令执行序列特征的漏洞攻击识别方法、装置及计算机设备
CN113688240B (zh) 威胁要素提取方法、装置、设备及存储介质
CN112163217B (zh) 恶意软件变种识别方法、装置、设备及计算机存储介质
CN114510717A (zh) 一种elf文件的检测方法、装置、存储介质
CN114266045A (zh) 网络病毒的识别方法、装置、计算机设备及存储介质
CN115495737A (zh) 恶意程序失效方法、装置、设备及存储介质
CN114499911A (zh) 基于测试机的攻击用户识别方法、设备、存储介质及装置
CN112954666A (zh) 一种用户画像方法、装置、设备和存储介质

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