CN106991323A - 一种检测Android应用程序广告插件的模型和方法 - Google Patents
一种检测Android应用程序广告插件的模型和方法 Download PDFInfo
- Publication number
- CN106991323A CN106991323A CN201710139933.2A CN201710139933A CN106991323A CN 106991323 A CN106991323 A CN 106991323A CN 201710139933 A CN201710139933 A CN 201710139933A CN 106991323 A CN106991323 A CN 106991323A
- Authority
- CN
- China
- Prior art keywords
- plug
- characteristic
- android
- android application
- advertisement
- 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.)
- Withdrawn
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/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2415—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
- G06F18/24155—Bayesian classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/285—Selection of pattern recognition techniques, e.g. of classifiers in a multi-classifier system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Probability & Statistics with Applications (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种检测Android应用程序广告插件的模型和方法,属于计算机技术领域;模型包括:解析配置文件模块,广告特征信息提取模块,广告特征向量生成模块,广告特征库匹配模块和分类器预测模块;方法是指对于待测的Android应用程序,首先提取Activity、Service、Broadcast和Receiver特征信息,并与指纹库中的信息相匹配;若能匹配,说明带有广告给出广告插件的来源;否则,提取该待测Android应用程序的权限作为广告检测的特征,生成特征向量,并输入到事先训练好的高斯贝叶斯分类器进行预测,然后再通过随机森林分类器,给出最终综合判断的检测结果。本发明将机器学习引入到Android广告插件检测中,通过多次交叉验证选择分类模型,并加入正则化约束确保模型具有较高泛化学习能力。
Description
技术领域
本发明涉及计算机技术领域,具体是一种检测Android应用程序广告插件的模型和方法。
背景技术
随着互联网的普及,越来越多的人使用智能手机作为通讯和娱乐工具;Android操作系统是智能手机中最常用也是最开放的一种嵌入式系统,由于该系统开源可定制化程序高,所以越来越多的手机生产厂家采用Android系统。
伴随着Android操作系统的流行,运行在Android系统之上的应用程序越来越多;作为最流行的移动平台,许多应用程序对用户都免费,导致应用程序开发商转而使用广告作为一种盈利模式。大部分的应用程序开发者只关注于广告是否会给自己带来经济利益,不会着重考虑广告是否会对应用程序使用者造成安全隐患。
Android应用程序中的资源在使用之前,需要预先对相应权限进行授权;广告插件在展示其内容或者获取一些信息之前,需要事先在AndroidManifest.xml文件中定义,所以广告插件与权限之间必然有一定的联系。Android系统的权限审核机制比较简单,应用开发者只需在AndroidManifest.xml文件中定义使用的权限,该应用程序就可以获取相应的权限,而对使用者来说是透明的;恶意的广告插件很可能会窃取用户的信息,造成用户信息的泄漏,给用户造成安全隐患。在分析恶意的广告插件之前,精准地识别广告插件是至关重要的一步。
目前对于Android应用中的广告插件检测方法较少,仅有一些基于规则的低效率的检测方法,即人工收集常见的广告插件平台特征,基于这些特征构建广告特征库。对于待检测的应用,将其中的特征与广告特征库进行匹配给出检测结果;这种完全依赖于特征库匹配的广告检测方式准确率不高,因为很难收集到所有广告插件的特征。对于日益新增加的广告插件,需要人为的不断收集新的广告插件特征来维护与扩充特征库,这样做不仅效率很低,还耗费大量的人力和物力。
发明内容
本发明针对Android应用程序广告插件窃取用户信息,私自扣费,影响用户使用的问题,提出了一种检测Android应用程序广告插件的模型和方法,可以高效率的识别Android应用程序中是否具有广告插件。
所述的检测Android应用程序广告插件的模型包括:解析配置文件模块,广告特征信息提取模块,广告特征向量生成模块,广告特征库匹配模块和分类器预测模块;
解析配置文件模块用于提取待检测的Android应用程序中的Service,Activities,Broadcasts和Receiver等特征信息;
广告特征信息提取模块用于从待检测的Android应用程序中的AndroidManifest.xml文件中提取权限信息;
广告特征向量生成模块将广告特征信息提取模块提取到的权限信息与Google官方定义的Android系统权限相比较,使用OneHot编码得出该应用权限对应的特征向量。
广告特征库匹配模块用于将解析配置文件模块提取的特征信息与广告插件指纹库相匹配,当在广告指纹库中匹配成功,则给出该广告平台名称作为最终的检测结果;
分类器预测模块用于将广告特征向量生成模块生成的特征向量输入到广告插件分类器中进行识别;广告插件分类器包括高斯贝叶斯分类器和随机森林分类器;具体识别分类的过程为:先将特征向量通过高斯贝叶斯分类器进行分类判别,若高斯贝叶斯分类器给出无广告的结果,则输出最终无广告的检测结果;否则将该特征向量输入到随机森林分类器中进行分类检测,根据随机森林给出的最终判别结果作为最终的分类结果。
一种检测Android应用程序广告插件的方法,具体步骤如下:
步骤一、建立Android市场上主流常用的广告插件指纹库;
通过收集Android市场上主流常用的广告插件应用,并提取每个Android应用程序中的Services,Activities,Broadcasts和Receivers等特征信息,做成相应的插件指纹,形成可扩展的广告插件指纹库;
步骤二、用户在客户端上传待检测广告插件的Android应用程序并请求检测,服务器端时刻监听并将请求待检测的Android应用程序下载到本地指定目录,同时创建相应的请求检测任务存入请求队列;
步骤三、解析配置文件模块从请求队列中取出最近的请求检测任务,提取待检测Android应用程序中的特征信息;
特征信息包括Activities、Services、Receivers、Broadcasts、Permissions等相关内容。
步骤四、广告特征库匹配模块将提取到的特征信息与广告插件指纹库进行匹配;并判断是否匹配成功,如果是,给出该广告插件的平台信息,进入步骤八;否则,进入步骤五;
步骤五、广告特征信息提取模块提取该待测Android应用程序的权限信息;
步骤六、广告特征向量生成模块将提取到的Android应用权限信息以Google官方标准权限为基准通过OneHot编码方式,得到该Android应用权限对应的特征向量。
特征向量为一行135列的一维向量,每一列均为0或1,0表示该位对应的权限在待检测的Android应用程序中没有出现,1表示该位对应的权限在Android应用程序中出现。
步骤七、分类器预测模块将待测Android应用程序的特征向量输入到分类器中进行分类,得到最终的广告检测结果。
广告插件分类器包括高斯贝叶斯分类器和随机森林分类器;
分类的具体过程如下:
步骤701、将步骤六中得到的特征向量输入到高斯贝叶斯分类模型中;
步骤702、高斯贝叶斯模型利用贝叶斯公式进行分类判别,得到该待测的Android应用程序有广告插件的概率pad以及无广告插件的概率1-pad;
贝叶斯公式如下:
pad=p(Y=cad)Πip(Xi=xi|Y=cad)
其中pad代表待测的Android应用程序有广告插件的概率;Y代表输出待测Android应用程序中是否具有广告插件的随机变量,cad代表待检测的Android应用程序具有广告插件的具体值;Xi代表输入的待测Android应用程序的第i个权限的随机变量,xi代表待测Android应用程序中第i个权限的具体值;
步骤703、根据概率pad以及1-pad的值,判断高斯贝叶斯模型给出的结果是否为无广告信息,如果是,则将结果作为最终的广告检测结果,结束算法;否则,进入步骤704;
当待测的Android应用程序有广告插件的概率pad大于待测的Android应用程序无广告插件的概率1-pad时,即pad>1-pad;则判定待测的Android应用程序有广告插件;反之,pad≤1-pad,则断定待测的Android应用程序无广告插件。
步骤704、通过将训练样本集合分割为不同的子集,在每个子集上使用ID3算法生成不同的决策树,最终组合形成随机森林。
步骤705、将待检测Android应用的特征向量输入到随机森林中,通过多棵决策树给出的分类结果组合投票作为最终的判别结果。
步骤八、将给出的检测结果封装到JSON格式的数据中并返回给客户端。
本发明的优点在于:
1)、一种检测Android应用程序广告插件的方法,没有完全依赖人工构建的广告插件特征库,而是将机器学习引入到Android广告插件检测中,通过大量样本来训练广告检测分类器使其具备学习分类能力;对于新出现的广告插件也具有较高的检测能力。
2)、一种检测Android应用程序广告插件的模型,对于机器学习分类模型的选择上没有依赖于单一的模型,而是通过多次的交叉验证来选择模型,最终选定了基于高斯贝叶斯与随机森林结合的分类模型,并加入了正则化约束来确保模型具有较高泛化学习能力,对于新出现的广告插件也能给出正确的分类结果。
附图说明
图1是本发明一种检测Android应用程序广告插件的模型的整体框架图;
图2是本发明一种检测Android应用程序广告插件的方法的具体流程图;
图3是本发明分类器预测模块将特征向量输入到分类器中进行分类的流程图。
具体实施例
下面结合附图对本发明的具体实施方法进行详细说明。
随着互联网技术的发展,机器学习的应用范围越来越广泛;通过对大量Android应用程序的广告与权限之间的关系进行分析,使用机器学习的算法组建一个正确率较高的Android应用程序广告检测系统,从而达到较高的检测能力至关重要。
本发明一种Android应用程序广告插件的模型和方法,包括:解析配置文件模块,广告特征信息提取模块,广告特征向量生成模块,广告特征库匹配模块和分类器预测模块;对于待检测的Android应用程序,解析配置文件模块提取Activity、Service、Broadcast和Receiver特征信息,广告特征库匹配模块查看特征信息是否与指纹库中的广告提供商的各种指纹信息相匹配;若能匹配,说明该检测的Android应用程序带有广告,给出该广告插件的来源;若匹配不到,广告特征信息提取模块提取该待测Android应用程序的权限作为广告检测的特征,广告特征向量生成模块生成特征向量,并输入到事先训练好的基于权限的Android广告插件分类器预测模块进行预测,通过训练好的分类器:即先通过高斯贝叶斯分类器再通过随机森林分类器,给出一个最终综合判断的广告检测结果。
如图1所示,用户上传待检测的Android应用程序,广告监测服务端的Android应用程序下载模块将待检测的Android应用程序下载到指定目录,同时创建相应的请求检测任务存入请求服务队列;并发送请求检测任务给检测Android应用程序广告插件的模型;当检测Android应用程序广告插件的模型返回结果经过广告监测服务端返回给用户。
所述的检测Android应用程序广告插件的模型包括:解析配置文件模块,广告特征信息提取模块,广告特征向量生成模块,广告特征库匹配模块和分类器预测模块;
解析配置文件模块用于提取待检测的Android应用程序中的Service,Activities,Broadcasts和Receiver等特征信息;
广告特征信息提取模块用于从待检测的Android应用程序中的AndoidManifest.xml文件中提取权限信息。
AndroidManifest.xml是一种基于XML格式的文件,在实际编译好的Android应用中AndroidManifest.xml以二进制形式存在,在进行权限信息提取之前,需要使用APKTOOLS等工具对应用程序进行分编译,使用Androguard提取AndroidManifest.xml中标签<permission>与标签</permission>之间的内容,作为权限信息;
广告特征向量生成模块将广告特征信息提取模块提取到的Android应用程序的所有的权限信息与Google官方定义的Android系统权限相比较,使用OneHot编码得出该应用权限对应的特征向量。
虽然Android系统允许开发者自定义一些权限,通过调研和研究发现,广告插件为了适配不同版本的系统,不会自定义一些权限,所以对于应用程序开发者自定义的一些权限信息不会将其应用到特征向量中;
广告特征库匹配模块用于将特征信息与广告插件指纹库相匹配,当在广告指纹库中匹配成功,则给出该广告平台名称作为最终的检测结果;
分类器预测模块用于将特征向量输入到广告插件分类器中进行分类识别;广告插件分类器包括高斯贝叶斯分类器和随机森林分类器;具体识别分类的过程为:先将特征向量通过高斯贝叶斯分类器进行分类判别,若高斯贝叶斯分类器给出无广告的结果,则输出最终无广告的检测结果;否则将该特征向量输入到随机森林分类器中进行分类检测,根据随机森林给出的最终判别结果作为最终的分类结果。
一种检测Android应用程序广告插件的方法,如图2所示,具体步骤如下:
步骤一、建立Android市场上主流常用的广告插件应用的指纹库;
基于各个广告插件提供商提供带有广告的Demo程序,通过收集Android市场上主流常用的广告插件应用,使用开源的工具Androguard从应用程序的AndroidManifest.xml中,提取该Android应用程序中的Services,Activities,Broadcasts,Receivers等信息,提取具有明显特征的部分,生成一种判断规则,作为具有该广告插件应用程序的指纹;给予一个Android应用程序,可以根据指纹来识别该应用程序中是否具有广告插件;
将收集到的各种插件的指纹建立一个广告插件指纹库,作为插件识别模型的重要组成部分;该库支持后期的对各个广告插件指纹的维护。例如当某一个广告插件有更新时,可以对某一个插件添加一个指纹或者修改原来的指纹,就能正确地的匹配到该广告插件。
步骤二、用户在客户端上传待检测广告插件的Android应用程序并请求检测,服务器端时刻监并将请求待检测的Android应用程序下载到本地指定目录,同时创建相应的请求检测任务存入请求队列;
用户上传要检测的Android应用程序,广告监测服务端将待检测的Android应用程序下载到指定目录,判别该应用是否为有效的应用,并发送请求检测任务给检测Android应用程序广告插件的模型。
步骤三、解析配置文件模块从请求队列中取出最近的请求检测任务,提取待检测Android应用程序Android应用中的特征信息;
提取的特征信息包括Activities、Services、Receivers、Broadcasts和Permissions等相关内容。
步骤四、广告特征库匹配模块将提取到的特征信息与广告插件指纹库进行匹配;并判断是否匹配成功,如果匹配成功,给出该广告插件的平台信息作为最终的检测结果,进入步骤八;否则,进入步骤五;
步骤五、广告特征信息提取模块使用Androguard提取待测Android应用程序中的权限信息;
广告特征信息提取模块在应用的配置文件中提取该应用申请的权限信息。
步骤六、广告特征向量生成模块将提取到的Android应用中的权限信息与Google官方标准权限为基准通过OneHot编码方式,得到该应用权限对应的特征向量。
从带有广告的样本Android应用程序提取标准Google官方的权限;由于Android系统是一种开源并且可定制的系统,有些生产厂家可以基于开源的Android系统个性化地定制自己的系统,也可以自己定义一些系统的权限。为了防止各个厂家的权限对检测结果的影响,根据Google官方提供的权限列表,只提取Google官方定义的权限,对于系统自定义的权限或者开发者自定义的权限,直接过滤掉,不会将其添加到特征向量中。
广告插件的特征向量为一行135列的一维向量矩阵,每一列均为0或1,0表示该位对应的权限在待检测的Android应用程序中没有出现,1表示该位对应的权限在待检测的Android应用程序中出现。
例如:待检测的Android应用程序A中包含有ACCESS_MOCK_LOCATION与ACCESS_NETWORK_STATE两个权限,这两个权限在特征向量中对应的位置分别为第一位与第二位,也就是第一位和第二位为1,其他位都为0,则待检测的Android生成的特征向量抽象为x=[1,1,0,0,0,0,0…];在矩阵生成过程中,广告特征向量生成模块还会将不属于Google官方定义的权限过滤掉。
步骤七、分类器预测模块将待测Android应用程序的特征向量输入到已经训练好的分类器中进行分类,得到最终的广告检测结果。
广告插件分类器包括高斯贝叶斯分类器和随机森林分类器;
如图3所示,分类的具体过程如下:
步骤701、将步骤六中得到的特征向量输入到高斯贝叶斯分类模型中;
步骤702、高斯贝叶斯模型利用贝叶斯公式进行分类判别,得到该待测的Android应用程序有广告插件的概率pad以及无广告插件的概率1-pad;
贝叶斯公式如下:
pad=p(Y=cad)Πip(Xi=xi|Y=cad)
其中pad代表待测的Android应用程序有广告插件的概率;Y代表输出待测Android应用程序中是否具有广告插件的随机变量,cad代表待检测的Android应用程序具有广告插件的具体值;Xi代表输入的待测Android应用程序的第i个权限的随机变量,xi代表待测Android应用程序中第i个权限的具体值;
步骤703、根据概率pad以及1-pad的值,判断高斯贝叶斯模型给出的结果是否为无广告信息,如果是,则将结果作为最终的广告检测结果,结束算法;否则,进入步骤704;
当待测的Android应用程序有广告插件的概率pad大于待测的Android应用程序无广告插件的概率1-pad时,即pad>1-pad;则判定待测的Android应用程序有广告插件;反之,pad≤1-pad,则断定待测的Android应用程序无广告插件。
步骤704、通过将训练样本集合分割为不同的子集,在每个子集上使用ID3算法生成不同的决策树,最终组合形成随机森林。
步骤705、将待检测Android应用的特征向量输入到随机森林中,通过多棵决策树给出的分类结果组合投票作为最终的判别结果。
例如:在由决策树组成的随机森林中,每棵决策树输出的值为0时代表无广告;输出1时代表有广告。对于待检测的应用A对应的特征向量[1,1,0,0,0,0…]输入到由三棵决策树组成的随机森林中,得出结果中表示有广告的个数多于无广告的个数时,则判定该应用有广告插件;反之,则判定该应用中无广告插件。
步骤八、将给出的检测结果封装到JSON格式的数据中并返回给客户端。
为清楚说明本发明的技术方案,下面给出一种Android应用程序广告插件检测的实现方式。
首先,建立Android广告插件指纹库,收集大量包含Android市场上主流常用的广告插件Android应用,提取Android应用中的Services,Activities,Broadcasts和Receivers等信息,做成相应的插件指纹。插件指纹库共78条,样例如下表所示:
表1
然后,搭建一个Android广告插件检测服务端,用于实时监听等待用户上传待检测的Android应用文件;下载待检测的Android应用到本地并借助Androguard工具提取Android应用Android应用中的Activities、Services、Receivers、Broadcasts和Permissions等相关特征信息。样例如下表所示:
表2
Android应用提取样例 |
benardseethx.god0119144ric.MainLuck.Service |
benardseethx.god0119144ric.ThxWebGod |
com.google.ads.AdActivity |
android.permission.INTERNET |
android.permission.ACCESS_NETWORK_STATE |
android.permission.SET_WALLPAPER |
android.permission.MOUNT_UNMOUNT_FILESYSTEMS |
android.permission.WRITE_EXTERNAL_STORAGE |
进一步,将Android应用中提取到的Activities、Services、Receivers和Broadcasts特征信息与本地建立好的广告指纹库进行匹配,若能匹配到则给出该Android应用广告的平台信息。若是在目标Android应用中的信息没有在本地广告指纹库中匹配到,则将目标Android应用的权限信息基于Google官方的标准权限比较,生成Android应用对应的特征向量。Google官方标准权限如表3所示:
表3
最后,将生成的特征向量输送到之前训练好的基于机器学习的高斯贝叶斯与随机森林分类模型中。首先,将特征向量输入到高斯贝叶斯分类模型中,若该模型给出的是无广告的信息,则将该结果作为最终的广告检测结果;若高斯贝叶斯对于该Android应用给出的是有广告的信息,则将该广告特征向量输入到随机森林分类模型中,将随机森林给出的分类结果作为最终的判别结果。并将检测结果封装到JSON格式的数据中并返回给客户端。
本发明在各大应用市场收集带有是否含有广告标识的Android的应用程序(可能具有广告,也可能不具有广告),提取的广告插件指纹建立广告插件指纹库,验证该应用程序是否具有广告的插件,并且提取该应用程序的标准的权限保存到数据库中,作为广告检测分类器的样本特征;提取其中的权限信息作为判别该应用中是否含有广告插件的标识;指纹库的信息很可能会过期,也可能会有新的广告商出现,指纹库并不是完全覆盖所有的广告商的指纹。为了提高检测的效果,采用机器学习的算法建立预测模型,通过大量的有广告插件应用与无广告插件应用对应的权限来训练高斯贝叶斯分类器与随机森林分类器,对Android应用程序的广告情况进行预测。根据应用程序权限特征库,使用机器学习算法中的高斯贝叶斯算法和随机森林算法对应用程序权限和应用程序广告进行训练,建立预测模型。
具体为:通过2000个无广告的Android应用程序与1500个有广告的Android应用程序共3500个进行训练,并用交叉验证的方法不断的调整分类模型的参数,选出最优的分类模型;将3500个训练Android应用随机分成10份,依次将其中9份作为训练集其余1份为测试集,记录这一过程该参数对应的模型的分类正确率,然后改变机器学习模型的参数不断的重复之前的操作;通过交叉验证来选出最优的模型,最终得到广告分类检测模型的正确率达到了97%。
然后,使用评价机器学习分类算法的标准指标:正确率、召回率来评价本发明的广告插件检测的效果。
TP(True Positive)被分类模型判别为正的正样本数;对应为被本广告插件检测模型判别为无广告的样本数。
FP(False Positive)被分类模型判别为正的负样本数;对应为本广告插件检测模型将有广告的Android应用判别为无广告的样本数。
FN(False Positive)被分类模型预测为负的正样本数;对应为本广告插件检测模型将无广告的Android应用判别为有广告的样本数。
Precision(正样本预测正确结果数/被判为正样本数):
Recall(正样本预测正确结果数/正样本实际数):
模型的测试集一选择没有在训练集中出现的300个无广告的Android应用与300个含有广告的Android应用。
模型的测试集二选择没有在训练集中出现的550个无广告的Android应用与550个含有广告的Android应用。
在两个测试集上对随机森林、高斯贝叶斯、伯努利贝叶斯、多项式贝叶斯4种Android广告插件检测模型进行测试;以正确率、召回率、F1-Measure在两个测试集上的值作为衡量检测模型的标准;测试的结果如表4所示:
表4
由表4可以看出高斯贝叶斯分类模型对于无广告的Android应用判别比较准确FP值是四个模型中最低的,随机森林模型对于有无广告的综合判别比较准确正确率可以达到98.29%。
所以最终确定的Android广告插件的检测流程为先通过高斯贝叶斯模型检测,若其判别为有广告则再通过随机森林模型检测,并给出最终的检测结果。
Claims (7)
1.一种检测Android应用程序广告插件的模型,其特征在于,包括:解析配置文件模块,广告特征信息提取模块,广告特征向量生成模块,广告特征库匹配模块和分类器预测模块;
解析配置文件模块用于提取待检测的Android应用程序中的Service,Activities,Broadcasts和Receiver特征信息;
广告特征信息提取模块用于从待检测的Android应用程序中的AndroidManifest.xml文件中提取权限信息;
广告特征向量生成模块将广告特征信息提取模块提取到的权限信息与Google官方定义的Android系统权限相比较,使用OneHot编码得出该应用权限对应的特征向量;
广告特征库匹配模块用于将解析配置文件模块提取的特征信息与广告插件指纹库相匹配,当在广告指纹库中匹配成功,则给出该广告平台名称作为最终的检测结果;
分类器预测模块用于将广告特征向量生成模块生成的特征向量输入到广告插件分类器中进行识别。
2.如权利要求1所述的一种检测Android应用程序广告插件的模型,其特征在于,所述的权限信息是指,使用APKTOOLS工具对待测Android应用程序进行分编译,并使用Androguard提取AndroidManifest.xml中标签<permission>与标签</permission>之间的内容。
3.如权利要求1所述的一种检测Android应用程序广告插件的模型,其特征在于,所述的广告插件分类器包括高斯贝叶斯分类器和随机森林分类器;
具体识别分类的过程为:先将特征向量通过高斯贝叶斯分类器进行分类判别,若高斯贝叶斯分类器给出无广告的结果,则输出最终无广告的检测结果;否则将该特征向量输入到随机森林分类器中进行分类检测,根据随机森林给出的最终判别结果作为最终的分类结果。
4.应用如权利要求1所述的一种检测Android应用程序广告插件的模型进行检测Android应用程序广告插件的方法,其特征在于,具体步骤如下:
步骤一、建立Android市场上主流常用的广告插件指纹库;
步骤二、用户在客户端上传待检测广告插件的Android应用程序并请求检测,服务器端时刻监听并将请求待检测的Android应用程序下载到本地指定目录,同时创建相应的请求检测任务存入请求队列;
步骤三、解析配置文件模块从请求队列中取出最近的请求检测任务,提取待检测Android应用程序中的特征信息;
特征信息包括Activities、Services、Receivers、Broadcasts和Permissions相关内容;
步骤四、广告特征库匹配模块将提取到的特征信息与广告插件指纹库进行匹配;并判断是否匹配成功,如果是,给出该广告插件的平台信息,进入步骤八;否则,进入步骤五;
步骤五、广告特征信息提取模块提取该待测Android应用程序的权限信息;
步骤六、广告特征向量生成模块将提取到的Android应用权限信息以Google官方标准权限为基准通过OneHot编码方式,得到该Android应用权限对应的特征向量;
步骤七、分类器预测模块将待测Android应用程序的特征向量输入到分类器中进行分类,得到最终的广告检测结果;
步骤八、将给出的检测结果封装到JSON格式的数据中并返回给客户端。
5.如权利要求4所述的检测Android应用程序广告插件的方法,其特征在于,所述的步骤一具体是:通过收集Android市场上主流常用的广告插件应用,并提取每个Android应用程序中的Services,Activities,Broadcasts和Receivers特征信息,做成相应的插件指纹,形成可扩展的广告插件指纹库。
6.如权利要求4所述的检测Android应用程序广告插件的方法,其特征在于,所述的步骤六中特征向量为一行135列的一维向量,每一列均为0或1,0表示该位对应的权限在待检测的Android应用程序中没有出现,1表示该位对应的权限在Android应用程序中出现。
7.如权利要求4所述的检测Android应用程序广告插件的方法,其特征在于,所述的步骤七中,分类的具体过程如下:
步骤701、将步骤六中得到的特征向量输入到高斯贝叶斯分类模型中;
步骤702、高斯贝叶斯模型利用贝叶斯公式进行分类判别,得到该待测的Android应用程序有广告插件的概率pad以及无广告插件的概率1-pad;
贝叶斯公式如下:
pad=p(Y=cad)Πip(Xi=xi|Y=cad)
其中pad代表待测的Android应用程序有广告插件的概率;Y代表输出待测Android应用程序中是否具有广告插件的随机变量,cad代表待检测的Android应用程序具有广告插件的具体值;Xi代表输入的待测Android应用程序的第i个权限的随机变量,xi代表待测Android应用程序中第i个权限的具体值;
步骤703、根据概率pad以及1-pad的值,判断高斯贝叶斯模型给出的结果是否为无广告信息,如果是,则将结果作为最终的广告检测结果,结束算法;否则,进入步骤704;
当待测的Android应用程序有广告插件的概率pad大于待测的Android应用程序无广告插件的概率1-pad时,即pad>1-pad;则判定待测的Android应用程序有广告插件;反之,pad≤1-pad,则断定待测的Android应用程序无广告插件;
步骤704、通过将训练样本集合分割为不同的子集,在每个子集上使用ID3算法生成不同的决策树,最终组合形成随机森林;
步骤705、将待检测Android应用的特征向量输入到随机森林中,通过多棵决策树给出的分类结果组合投票作为最终的判别结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710139933.2A CN106991323A (zh) | 2017-03-10 | 2017-03-10 | 一种检测Android应用程序广告插件的模型和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710139933.2A CN106991323A (zh) | 2017-03-10 | 2017-03-10 | 一种检测Android应用程序广告插件的模型和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106991323A true CN106991323A (zh) | 2017-07-28 |
Family
ID=59413128
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710139933.2A Withdrawn CN106991323A (zh) | 2017-03-10 | 2017-03-10 | 一种检测Android应用程序广告插件的模型和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106991323A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109408795A (zh) * | 2017-08-17 | 2019-03-01 | 中国移动通信集团公司 | 一种文本识别方法、设备、计算机可读存储介质及装置 |
CN109829102A (zh) * | 2018-12-27 | 2019-05-31 | 浙江工业大学 | 一种基于随机森林的网页广告识别方法 |
CN111368076A (zh) * | 2020-02-27 | 2020-07-03 | 中国地质大学(武汉) | 一种基于随机森林的伯努利朴素贝叶斯文本分类方法 |
CN111832021A (zh) * | 2020-06-23 | 2020-10-27 | 华中科技大学 | 一种安卓应用流氓行为的识别方法及系统 |
CN112367326A (zh) * | 2020-11-13 | 2021-02-12 | 武汉虹旭信息技术有限责任公司 | 车联网流量的识别方法及装置 |
CN113407185A (zh) * | 2021-03-10 | 2021-09-17 | 天津大学 | 基于贝叶斯优化的编译器优化选项推荐方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103279709A (zh) * | 2012-12-28 | 2013-09-04 | 武汉安天信息技术有限责任公司 | 一种基于多特征的广告件综合检测方法及系统 |
US20160063244A1 (en) * | 2013-04-08 | 2016-03-03 | Beijing Qihoo Technology Company Limited | Method and system for recognizing advertisement plug-ins |
CN105512558A (zh) * | 2016-01-07 | 2016-04-20 | 北京邮电大学 | 一种基于反编译模块特征的android广告插件检测方法 |
-
2017
- 2017-03-10 CN CN201710139933.2A patent/CN106991323A/zh not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103279709A (zh) * | 2012-12-28 | 2013-09-04 | 武汉安天信息技术有限责任公司 | 一种基于多特征的广告件综合检测方法及系统 |
US20160063244A1 (en) * | 2013-04-08 | 2016-03-03 | Beijing Qihoo Technology Company Limited | Method and system for recognizing advertisement plug-ins |
CN105512558A (zh) * | 2016-01-07 | 2016-04-20 | 北京邮电大学 | 一种基于反编译模块特征的android广告插件检测方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109408795A (zh) * | 2017-08-17 | 2019-03-01 | 中国移动通信集团公司 | 一种文本识别方法、设备、计算机可读存储介质及装置 |
CN109408795B (zh) * | 2017-08-17 | 2022-04-15 | 中国移动通信集团公司 | 一种文本识别方法、设备、计算机可读存储介质及装置 |
CN109829102A (zh) * | 2018-12-27 | 2019-05-31 | 浙江工业大学 | 一种基于随机森林的网页广告识别方法 |
CN111368076A (zh) * | 2020-02-27 | 2020-07-03 | 中国地质大学(武汉) | 一种基于随机森林的伯努利朴素贝叶斯文本分类方法 |
CN111368076B (zh) * | 2020-02-27 | 2023-04-07 | 中国地质大学(武汉) | 一种基于随机森林的伯努利朴素贝叶斯文本分类方法 |
CN111832021A (zh) * | 2020-06-23 | 2020-10-27 | 华中科技大学 | 一种安卓应用流氓行为的识别方法及系统 |
CN111832021B (zh) * | 2020-06-23 | 2024-04-02 | 华中科技大学 | 一种安卓应用流氓行为的识别方法及系统 |
CN112367326A (zh) * | 2020-11-13 | 2021-02-12 | 武汉虹旭信息技术有限责任公司 | 车联网流量的识别方法及装置 |
CN112367326B (zh) * | 2020-11-13 | 2022-12-30 | 武汉虹旭信息技术有限责任公司 | 车联网流量的识别方法及装置 |
CN113407185A (zh) * | 2021-03-10 | 2021-09-17 | 天津大学 | 基于贝叶斯优化的编译器优化选项推荐方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106991323A (zh) | 一种检测Android应用程序广告插件的模型和方法 | |
CN108829597B (zh) | 软件众测方法及装置、计算机装置及可读存储介质 | |
CN110209764A (zh) | 语料标注集的生成方法及装置、电子设备、存储介质 | |
CN107533698A (zh) | 社交媒体事件的检测与验证 | |
US11507588B2 (en) | Media names matching and normalization | |
CN110598070B (zh) | 应用类型识别方法及装置、服务器及存储介质 | |
CN108985347A (zh) | 分类模型的训练方法、店铺分类的方法及装置 | |
CN108399418A (zh) | 一种用户分类方法及装置 | |
CN106934254A (zh) | 一种开源许可证的分析方法及装置 | |
CN110610193A (zh) | 标注数据的处理方法及装置 | |
CN105512558B (zh) | 一种基于反编译模块特征的android广告插件检测方法 | |
CN112860841A (zh) | 一种文本情感分析方法、装置、设备及存储介质 | |
CN106203103B (zh) | 文件的病毒检测方法及装置 | |
CN105095415A (zh) | 网络情绪的确定方法和装置 | |
CN108446659A (zh) | 用于检测人脸图像的方法和装置 | |
CN107896335A (zh) | 基于大数据技术的视频检测和评级方法 | |
CN109886016A (zh) | 用于检测异常数据的方法、设备和计算机可读存储介质 | |
CN109376534A (zh) | 用于检测应用的方法和装置 | |
CN109213758A (zh) | 数据存取方法、装置、设备及计算机可读存储介质 | |
CN108492132B (zh) | 一种利用音频特征识别的广告监播投放系统及方法 | |
CN109598110A (zh) | 一种用户身份的识别方法及装置 | |
CN106910135A (zh) | 用户推荐方法及装置 | |
CN113762973A (zh) | 数据处理方法、装置、计算机可读介质及电子设备 | |
CN108345979B (zh) | 一种业务测试方法及装置 | |
CN114398560A (zh) | 基于web平台的营销界面设置方法、装置、设备及介质 |
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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20170728 |
|
WW01 | Invention patent application withdrawn after publication |