论文研究-基于Android反编译数字序列的广告插件检测方法 .pdf

所需积分/C币:5 2019-08-16 14:57:50 427KB .PDF

基于Android反编译数字序列的广告插件检测方法,陈伟平,郭燕慧,随着Android移动智能终端的普及,使得更多开发人员加入应用开发的行列,并通过向应用嵌入广告并通过广告分成获得收益,而一些移动��
山国武花论文在丝 的语义特征也不能涵盖广告插件所有特征,如在检测推送广告吋效果不佳,因为推送广告常 使用的如 并没有涵盖在内:一些广告插件在使用权限方 面不规范,所以将权限作为一个亘要的特征可能导致结果不准确。考虑到程序本身是由单个 的词组成,函数的调用、程序具体功能的实现等具体的程序行为都是由调用实现,而 不同的调用其实就是不同词的使用,程序代码中不同词的词数大小在一定程度代表了 稈序的复杂度也表征了程序的整体话义特征。所以本文考虑通过获取广告插件模块的词数信 息作为特征实现广告插件的检测,这种方法不仅能很好的保留广告插件模块整体特征,还能 省去语义分析的具体过程。并且通过实骏验证,证明了该方法的可行性。 整体检测流程 如图所示为检测方法的整体流程。本文首先遍历所有反编泽之后得到文件然后 统计每个文件的词数信息并得到整个应用的词数特征,并借鉴 方法中的模块分解 的思想对模块进行拆解,最后用机器学习的方法对应用进行分类,最后得到含有广告插件的 应用与不含广告插件的应用。这种方法不分析具体语义特征,从而避免了语义分析层面的不 足,也避免了特征在使用上的不足,保留了广告插件特征的整体性。然后通过机器学习的方 法利用以上特征对广告插件模块进行二分类检测。 不含宀告插件 应用 反编译)!,ja文件)词数统计)(词特征)机器学习)含广告插件应用 Android app(. apk) 图1广告插件检测流程 根据以上检测流程,卜面分别从反编译工具、词数统计具伓流程介绍以上检测流程的具 体上作。 反编译工具 反编译工作是检测工作的基础,所以反编译工具的选取也尤为重要,并且由于反编译 工具的特性直接决定了反编译代码的效果及词数统计的效果,所以通过对比常见的反编译工 只的特点,从中挑选出合适的反编译工只 针对个 应用包的反编译,主要指的是对其中的文件反编译及资源文件解 码,而本文需要提取的特征主要包含在文件中,故对文件反编译技术进行介绍。如 图,为主要的 应用反编译工具。 山国武技论文在丝 图2dex反编译工具 )是一种对包整体反编译的工具,也是 官方提供的 编译工具,反编译之后可以得到中间代码 代码 是一款专门针对文件反 编译的工具,可以将文件反编译为包,即的字节码文件文什,再通过 反编译工具即可得到可读的代码 是目前主流的静态反汇编分析工具,从 版本开始,提供了对 的静态分析功能。 可以得到文件的整体结构,并 且可以得到代码; 是一种常用的人工反编译分析应用的工具,通过该工具 不仅可以对文件进行反编译,还能获取应用的各种信息,包括应用名称、包名、签名等 信息;还可以对资源文件进行解码,最后可以得到各个关键类的相关关系,对」分析程序之 间的关联具有很好的参考 是款知名的十六进制编辑工具,利用该⊥具可以耷 看文件的详纽结构,直接读取文件的二进制信息;除此之外,还有些集成的反编 译工具,但是基本都是基于以上几个工具的原理进行优化的产物 都是针对包整体反编译的工具,而本文只需对进行反编译, 可能影响反编译效率,并且这些工具得到都是中间代码,而中间代码中含有一些声明 之类的与代码逻辑无关的代码,会影响刭统计词数的结果。所以本文选取了 作为 反编译的工具,可以百接将反编译成文件,并通过得到对应的文件 代码中包含的是应用中最直接的代码逻辑,所以本文选取了 作为反编译工只 词数统计 如图所示,为系统提取应用反编译数字序列的整体流程,描述了从应用中荻取反编译 数字序列的过程。首先对文件解压得到其中文什,再利用上文选取的反编译T具 对文件进行反编译处珥,得到文件,利用反编译工具反编译得到 文件,对得到的文件进行词数统计,这里的词数统计指的是统计每个文件中不重复的 词的数日,遍历得到每个文件对应的词数,并将词数信息依次记录,最后可以得到整 个文件的词数序列,也就是一个序列代表一个应用。 山国武花论文在丝 Apk应用 Dex反编译 ex反编译 是叫件词数*<不文 成功 统计 逼力完成 是得到词数信息结束 图3反编译数字序列提取过程 根据上文介纽的步骤,通过实际应用( )展 示具体词数序列的提取过程。如图()为应用反编译之后的包文件结构,通过词数信息 的统计可以得到如图()中的中间文件 ex2ar\cn domo\ android\a: 1 cex2]ar\cn\domo\androida\b$1:43 e21ax\ cn\ domo\ androi丑a\ osasa!∠8 cex2jar\cn\ domo\android\a\bAsk cex2-ar\cn\ doob\android\a\basc 28 dex2]ar\cn\ doob \android\a\bsa 138 出 cn, demob, android 二x27Ax1 cn\ demob、ana21Ha2:325 二e况1x\Gn1dam□上Bmxi丑da1 日cam 二e况21\ cn\ demob\ andr彐ad\a2 t admob. android. ads ex]ar\cn\ demob android\ads\as3 飞damb\ enRol彐 ads \as adsmogo ex2]ar\cn\doob \androi\ads\a$4: cn\ domo\android'ads\asa 中- feedback 色x2a\cn1 demob\andro型ad\aSb 中中 iceberg x27ax\cn1 somol、andr1 ads\asc导1:3 E-E job Utah.bUsh 二e况2]x\ cn\ demob androi丑adBb;59 t-t mobclick android 二x1x\cnam、Bndx21=adg】:" #]E suizong mobile adsite cear\cn\\\\ demob\android\ads\sa cex27ar\cn\ domo\ androiiadg\c 205 中 cex2yar\cn\domo\ androi=\ads\dsa: 28 dex21aY\cn\dmb\ enrol彐adg\d:4斗 图4a应用包结构(左图);(b)反编译文什的词数信息(右图) 如图()为反编泽每个应用并统计词数得到的中间文件,通过对其中文件路径进行 分析,可以将应用整体分解为如表2所示的个模块,并得到对应的词数序列。最终一个应 用的词数信息将被拆分为如表所示模块词数序列,并最终以这种形式作为检测广告模块的 特征 表2应用模块对应的词数序列 模块 词数序列 1481502630 112312034842363057245267 487029463 3719814236278371221627437 555929119 ..4510113142 351584078985037443233951.3176356147 103142345118 2477.186312728 6640623836663746296161136 33315853 山国武花论文在丝 实验过程 实验环境 实验环境在 搭建,包括 ,机器学习 模块 上的模块均有 语言实现。 数据来源 本文共收集了个样本,其中个样本中含有广告插件这些样本主要来自 官方商城及国内第三方商城如豌豆荚、应用宝、移动商城等。 参数选取 本文通过对样本进行折交叉验证数据集被随机分成等份,其中份被保留作为 验证分类模型的数据,其它份用来训练,交叉验证次,每份验证次,修改实验过 程中的参数,使用分类效果最佳时的参数作为实验参数 结果分析 为了评价本文选取特征的效果,选取了几个机器学习分类算法常用的评价指标,主要包 括 (误报率)。 的值可以得出被判为广告插件 模块的准确率,而 的值得岀广告插件被检测出来的准确率,由于数据集可能不均衡 所以还引入 来综合 与 的结果对算法的效果进行评佔。同时,为了 了解算法的误报率,还引入来评价算法的效果。 )被模型预测为正的正样本,可以称作判断为真的正确率;( )被模型预测为负的负样本,可以称作判断为假的正确率:( )被 模型预测为正的负样木,可以称作误报率;( )被模型预测为负的正样木, 可以称作漏报率。 本预测正确结果数被判为正样本数 (正样本预测正确结果数样本实际数: 计算公式: 在 等提出的方法中,采用了 算法作为分类算法,为了对比本文的特征 与其特征的优劣,实验中采用与其相同的分类算法算法,通过上述参数选取的方式当 惩罚因子为与 中的取值为时, 分类器可以达到最佳的分类效果, 得到的结果如表所示。在使用 作为评价标准的前提下,本论 文在检测广告插件模块上所使用的特征在具有更好的检测效果。 山国武花论文在丝 表3结果对比 特征 前人方法特征 本文方法特征 本文在与前人工作对比的同时,还选取其他机器学习算法进行实验。其中( )参数选取 中默认参数;( )参数选取 中默 认参数 )算法中主要的参数就是的取值,通过实验最终确定 当时(其他参数选取默认值),分类的效果最好。如表所示,当采用算法时, 使用该特征对广告插件进行检测时,能达到的精准率并且错误仪为 的检测 效果,并且使用其他机器学习的算法的情况下,也得到了较髙的准确率,说明该特征在针对 广告插件的检测中取得了较好的效果。 表机器学习算法结果比较 山于在统计词数的过程中,统计的是文件中唯一的词数的信息,所以对于一个文件来说, 唯一的词数是有限的,根据实际的统计的情况来看,词数最大值小于并且绝大多数的 文件词数都小于,所以难以避免的是,非广告插件与广告插件在某些词数序列上出现了 部分相同的序列,导致了误判 结论 本文给出了一种基于反编译数字序列的 广告插件的检测方法,通过将应用反编 译后提取应用的数字序列,并将这些数字序列作为特征,利用机器学习的分类算法完成对广 告插件的检测。该检测方法完全基于反编译过程,只有很好的抗混淆性。通过对比实验,发 现以该特征检测广告插件只有较高的准确率,能够实现广告插件的检测。 特征提取过程中要保证提取过程中使用的反编译上具·致,由于不同的反编译上具具有 不同的特性,反编译的效果不同,可能导致反编译之后统计的词数信息不同,产生误差,将 影响检测结果。 由于一些广告插件开始使用开发技术,将一些关键的代码逻辑写入了 层 针对这种情况,本文的检测方法将失效,因为该方法只针对文件反编译出的词数信息统 计,无法获取到 层的特征,所以为了更加精确的对广告插件模块进行检测,需要进 步添加 层的相关特征,使广告插件的檢测更加准确而完善 参考文献 山国武技论文在丝

...展开详情
img

关注 私信 TA的资源

上传资源赚积分,得勋章
最新资源