基于防逆向篡改的安卓应用软件保护系统的研究和实现
发布时间:2021-07-30 16:34
安卓系统平台的成功基于它的开源和Linux内核的可移植性,安卓的开源为它的成功提供了助力,也导致安卓成为移动终端系统中最容易被攻击的操作系统。攻击者可以利用一系列攻击手段对安卓应用程序进行分析和篡改。随着篡改和病毒数量的增加,安卓平台应用软件的保护受到越来越多的关注。近年来无论是研究机构还是科技公司,都投入了一定的资源致力于安卓平台软件保护的研究。本文在分析现有软件保护技术的基础上结合自己所学知识,设计和实现了一套基于防逆向篡改技术的安卓应用软件保护系统。本文的主要工作有以下内容:(1)dex文件的保护本文通过分析dex文件的结构和加载方式,结合常用的软件保护方法,实现了一种通过代码集替换之后再进行加密的dex文件保护解决方案。该方案可以有效抵抗反编译和静态分析,程序不运行就不恢复原始的dex文件,即使攻击者解压或者反编译apk都获取不到原始文件,能够很好地保护dex文件。(2)SO文件的保护当程序员把关键逻辑代码编写到SO库文件,攻击也随之转移到了SO文件。本文在分析安卓调用jni代码执行的流程之后发现,SO文件加载过程中真正将文件载入内存之前可以进行预处理,开发者可以在预处理函数中加入自定义逻辑。运用这一发现实现了对SO文件头字段进行替换再加密SO库文件的保护方案,该方案可以有效杜绝攻击者对SO文件的静态分析。(3)远程保护关键信息现有保护方案都将密钥信息经过加密或者变形存放于本地文件中,这种方法的缺陷是密钥信息无论是编写在SO文件中还是加密或变形之后单独存放于apk文件的其它位置,都有被破解和找到的可能。本文将Axis2提供远程服务的功能加入到保护系统中,通过这个方法可以实现密钥信息和其他需要保护的关键信息和程序完全解耦,能进一步提高软件的安全性。(4)防止动态调试防动态分析与防静态分析是相辅相成的,一个安卓软件保护系统既要考虑防静态分析的保护,还需要加入抵抗动态调试的功能。本文在分析动态调试运行机制之后,发现调试器调试安卓设备必须与android_server连接才能进行,并且二者是利用面向连接的TCP协议进行连接的。根据这两个特点,实现了一个基于android_server连接资源占用的反动态调试解决方案,该方案通过被保护应用软件与android_server进行TCP连接阻止调试器的连接,进而阻止动态调试的进行,该方案比目前使用的反调试解决方案更高效且状态更持久。
【学位授予单位】:中北大学
【学位级别】:硕士
【学位授予年份】:2017
【分类号】:TP316;TP309;TP311.5
本文编号:2141005
【学位授予单位】:中北大学
【学位级别】:硕士
【学位授予年份】:2017
【分类号】:TP316;TP309;TP311.5
文章目录
摘要
Abstract
1 引言
1.1 研究背景及意义
1.2 国内外发展动态
1.3 论文主要工作
1.4 论文结构
2 安卓结构体系
2.1 Android体系架构介绍
2.2 安卓安全状况简介
2.3 Dalvik虚拟机介绍
2.3.1 Dalvik虚拟机概述
2.3.2 Dalvik虚拟机与Java虚拟机的区别
2.4 本章小结
3 防逆向篡改关键技术研究
3.1 dex文件的保护方案
3.1.1 dex文件结构简介
3.1.2 dex保护方案的实现
3.2 动态链接库的保护方案
3.2.1 SO文件加载过程分析
3.2.2 SO文件保护方案的实现
3.3 抵制动态调试实现方案
3.3.1 常用反调试技术实现
3.3.2 基于抢占连接的反调试方案的实现
3.4 本章小结
4 安卓软件保护系统的设计与实现
4.1 系统设计
4.2 PC加固系统的实现
4.2.1 系统设计
4.2.2 系统实现
4.3 终端校验系统的实现
4.3.1 脱壳模块的实现
4.3.2 防动态调试模块
4.4 远程服务系统的实现
4.4.1 Axis2引擎
4.4.2 远程服务的实现
4.4.3 Axis2安全访问的实现
4.5 本章小结
5 系统测试与结果分析
5.1 系统运行测试
5.2 系统可用性测试
5.3 系统处理结果分析
5.4 系统执行效率分析
5.5 本章小结
6 总结与展望
6.1 工作总结
6.2 工作展望
参考文献
攻读硕士学位期间所获得的研究成果
致谢
【参考文献】
相关期刊论文 前10条
1 张建新;;一种基于远程校验的安卓软件保护方案[J];计算机时代;2017年05期
2 左玉丹;丁滟;魏立峰;;Linux内核提权攻击研究[J];计算机工程与科学;2016年11期
3 李文唐;江帆;孙伟;;Android应用程序恶意代码静态注入方法及实现[J];信息安全研究;2016年07期
4 万一;朱志祥;吴晨;马文;;一种基于数据加密技术的安卓软件保护方案[J];电子科技;2016年02期
5 卿斯汉;;Android安全研究进展[J];软件学报;2016年01期
6 张译恬;王纯;;基于安卓系统JNI机制的SO库加固方案设计[J];电信技术;2014年10期
7 余超君;李春强;尚云海;张培勇;;基于Trace合并和寄存器分配的Dalvik优化[J];计算机工程;2014年10期
8 叶乃溪;王晰巍;崔凤玲;刘凤娟;;基于信息生态链的企业绿色信息协同模式研究[J];情报科学;2013年07期
9 王畅;薛素静;;劫持Linux系统调用封杀Core Dump漏洞攻击[J];计算机安全;2009年06期
10 岳昆,王晓玲,周傲英;Web服务核心支撑技术:研究综述[J];软件学报;2004年03期
本文编号:2141005
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/2141005.html