基于机器学习的Android本地层代码混淆分析研究

来源 :西北大学 | 被引量 : 0次 | 上传用户:psobb045
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
在Android app源代码加固与保护领域,相较于Android Java层代码混淆保护,针对Android本地层(Android Native)代码的混淆保护是一种应用范围更广、分析难度更大的防护方式。Android本地层自身可用的混淆器和混淆方法的多样性,导致了安全分析人员逆向分析的难度和开销的增加。因此,如何能够从Android本地层混淆样本中正确识别出所使用的混淆器和混淆方法,既能更好地辅助安全分析人员逆向工作的开展,有利于逆向工具的裁剪和优化,也能促进混淆算法的更新,并进一步提升混淆算法的有效性和安全性。目前已有的各种利用机器学习针对Android app的反混淆主要针对于易分析的Java层,对于逆向难度更高、恶意负载聚集得更多的Android本地层,由于混淆变换的复杂性,相关的分析和研究还并不够多。本文以Android本地层原生程序为切入点,通过逆向工程对Android本地层中的混淆技术进行研究,并借鉴一些经典的机器学习算法,结合Android本地层的特殊性进行考虑,提出了一种Android本地层混淆程序识别方法ANRec来识别出其中所使用的混淆器和混淆方法。该方法主要包括以下几个方面:(1)针对Android本地层混淆样本的难获得问题,本文并不采用传统的样本获取思路,即先爬取大量apk,再逆向分析判别所用的混淆器和混淆方法的方式,而是采用本文所设计的Android本地层混淆样本生成器直接有目的性地生成不同混淆样本来进行研究。(2)为了更好地对Android本地层混淆程序所使用的混淆器和混淆方法进行分类和识别,本文首先通过逆向工程对不同混淆器和不同混淆方法所生成的样本进行处理,以求了解其内部工作原理,并寻得一些具有信息性的特征。(3)对于不同混淆器的分类和识别研究,本文根据之前逆向工程所研究出的混淆器相关工作原理,设计了一种基于图神经网络的Android本地层混淆程序的混淆器分类与识别方法。(4)对于不同混淆方法的分类和识别研究,提出了文本化的特征提取方法,分别从静态和动态反汇编文件中提取相应的词频逆文本频率特征,并使用经典的机器学习算法进行分类器训练。(5)设计并实现了基于ANRec方法的原型系统,并通过实验进行分析评估。实验结果表明两种不同的分类模型对Android本地层混淆样本都具有较好的识别效果,并基本上能够准确预测和识别出所使用的混淆器和混淆方法。
其他文献
为确保已建金山顶高铁隧道衬砌结构的安全,有必要在救援通道爆破施工过程中对其开展爆破振动监测。采用TC-4850N无线网络爆破测振仪进行监测,监测结果表明:既有隧道迎爆侧的衬
本文旨在分析城市热岛的空间异质性,并探究城市热岛与生态环境质量之间的关系。以具有明显城市热岛效应的重庆市为研究靶区,以Landsat8遥感影像为数据基础。首先,基于半变异
体育课程是学校课程体系的重要组成部分,旨在通过有效的身体练习而促进学生身心全面发展。“健康第一,以人为本”的现代教育理念对体育课程的改革提出了更高更新的要求。剖析
药用鼠尾草作为一种古老的药用植物,具有重要食用、药用价值,其主要活性成分为精油和酚类物质。本论文对其挥发性成分——精油的提取和非挥发性成分——酚类物质的提取、纯化
火箭多点调平系统的主要功能是调整箭体的倾角和各支臂载荷,以满足火箭发射对箭体姿态的要求,确保支臂对箭体的可靠支撑。目前系统在调平过程中,仅实现了倾角自动调整,各支臂载荷调整主要依赖人工经验,调平效率和可靠性较低。针对此问题,本课题以某新型运载火箭十二点调平系统为研究对象,对调平系统的特性进行了分析,对多点调平的倾角调整和载荷调整控制策略开展了研究。主要完成了以下工作:(1)阐述了课题的来源和意义,
Seminar教学法是开展研究性学习的有效途径,是融知识传授、能力培养和素质提高为一体的创新教学模式。本文以临床免疫学与检验的教学实践为依据,从教学实施方式、内容、教学