【摘 要】
:
Android操作系统已经成为了我们生活中不可或缺的一部分,从智能手机到智能电视、以及物联网下的各种智能设备,都与Android系统息息相关。Android系统的开源性以及应用分发渠道的不完善,导致各种恶意软件及破解软件泛滥,应用的二次打包、恶意广告植入、代码的窃取等屡见不鲜。Android应用的代码分为两个部分,第一部分是由Java或Kotlin编译生成的运行于Art或Dalvik虚拟机环境下的
论文部分内容阅读
Android操作系统已经成为了我们生活中不可或缺的一部分,从智能手机到智能电视、以及物联网下的各种智能设备,都与Android系统息息相关。Android系统的开源性以及应用分发渠道的不完善,导致各种恶意软件及破解软件泛滥,应用的二次打包、恶意广告植入、代码的窃取等屡见不鲜。Android应用的代码分为两个部分,第一部分是由Java或Kotlin编译生成的运行于Art或Dalvik虚拟机环境下的字节码,对于字节码的保护已经有较为广泛的研究。另一部分是由C/C++编译生成的.SO动态链接库文件,直接运行在移动端处理器环境中,一般称为Native层代码或本地代码,对本地代码保护的研究却略为不足。本文在研究业内相关开源保护方案的基础上,结合移动端处理器的特性,针对代码的控制流和指令及数据展开混淆研究。控制流混淆方面,本文给出了3种方法:1)打乱基本块之间的前后顺序,将所有的基本块排布于并列的结构中,通过统一的块调度分发器来决定下一个将要执行的基本块。并列的基本块通过常量得到连接,利用简易神经网络对常量展开混淆,使得块调度的衔接过程得到隐藏,从而无法静态逆向分析程序的原始逻辑。2)研究各种不透明谓词构造的特点后,提出等价不透明谓词的概念,并使用等价不透明谓词在分支和循环结构中构造虚假控制流,增强了不透明谓词的插入效果。3)提出了一种适合Native层代码并结合整型神经网络模糊控制流的方法,将控制分支结构转换成分类模型,模糊混淆后控制流的分支条件和边界被隐藏,从而无法静态分析出程序的控制逻辑。数据混淆方面,本文给出了2种方法:1)提出了使用logistics混沌映射混淆本地代码中的字符串,防止通过字符串快速定位到关键代码,字符串秘钥只与初始二元组有关,从而防止秘钥信息暴露,因此更加安全。2)研究和实现了整型变量N倍拆分和N倍组合的混淆方案,在编译过程中替换变量和操作变量的代码,极具膨胀效果。实验结果表明,混淆后的代码复杂度提升近5倍,可以有效的提高逆向工程攻击的难度,同时混淆带来的平均时间开销约2倍,在可接受的范围内,可以有效地保护代码。
其他文献
经营林下经济是个古老而新兴的朝阳产业。大力发展林下经济,具有挖掘林业潜力,提高土地利用率,培育农村经济新的增长点,促进农民收入“倍增计划”的新途径。本文就如何发挥三江县
<正>目的探讨腹腔灌洗引流在急性坏死性胰腺炎(ANP)非手术治疗中的作用。方法 104例 ANP 患者随机分为治疗组和对照组,治疗组给予腹腔灌洗引流结合非手术治疗,对照组非手术治
印第安人问题是拉美国家的普遍问题。随着拉美公民社会的发展,公民意识逐渐增强。在以新制宪主义为理论根据的拉美宪法改革中,对印第安人的权利保障是重要组成部分。这是印第
推进“一带一路”建设是党中央作出的重大战略决策。今年8月17日,习近平总书记在推进“一带一路”建设工作座谈会上提出,要聚焦携手打造绿色丝绸之路、健康丝绸之路、智力丝
目的探讨Bax、Bak等凋亡分子的小分子干扰RNA(siRNA)可否抑制人颗粒细胞凋亡。方法(1)用Western blotting检测Bax-siRNA、Bak-siRNA;(2)将Bax-siRNA、Bak-siRNA分别或同时转
光谱学是研究光与物质相互作用的科学,而原子激发态光谱,消除了谱线多普勒展宽,分辨率极高,在基础研究和实际应用中有极重要的价值,能够用于激光稳频、探测里德堡原子能级结
目的:探讨痉挛性斜颈(ST)多排螺旋CT (MSCT)的检查方法及其对痉挛责任肌群的定位诊断价值。方法:回顾性分析25例ST患者临床及CT资料,临床分型:旋转型14例,侧屈型11例;另选取年龄
水环境污染与水体富营养化问题已经成为全球问题,并已成为限制国民经济增长与社会可持续发展的瓶颈问题。控制和治理氮磷污染是解决水环境污染与水体富营养化的根本措施。针对
移动通信已成为当今人们生活不可或缺的一部分,随着用户对各种多媒体业务需求的增加,3GPP提出了 LTE系统,与之前的移动通信系统相比,LTE在降低系统时延以及提高数据传输速率
目的:建立动物实验模型观察放射性心脏损伤(radiation induced heart damage,RIHD)的早期表现及其发生机制,以及慢性间歇性低压低氧(chronic intermittent hypobaric hypoxia