android软件安全与逆向分析-丰生强pdf高清扫描版
分享到:
android软件安全与逆向分析2013年2月由人民邮电出版社出版发行,是国内第一本Android软件安全书。移动平台逐渐成为人们上网的主要方式。随着Android应用的普及,安全问题日益突出。出于商业利益的考虑,Android系统的所有者谷歌,一直回避公开讨论其安全性。因此国内的Android应用安全问题更加突出,安全威胁更高。小编分享的这本Android软件安全与逆向分析由浅入深、循序渐进地讲解了Android系统的软件安全、逆向分析与加密解密技术。包括Android软件逆向分析和系统安全方面的必备知识及概念、如何静态分析Android软件、如何动态调试Android软件、Android软件的破解与反破解技术的探讨,以及对典型Android病毒的全面剖析。强实践性。缺乏可操作性,是Android安全方面现有论文、白皮书、技术文章大的问题之一,很多人读到后可能对内容有了一些概念,却不知道从何下手。这本书的几乎每一个部分,都结合实际例子,一步步讲解如何操作。强时效性。作者在写作的同时,持续跟随业界新进展,刚刚发布不久的Santoku虚拟机、APIMonitor等工具,以及Androguard的新特性等,已然出现在了这本书中。Android软件安全与逆向分析适合所有Android应用开发者、Android系统开发工程师、Android系统安全工作者阅读学习。
禁用于商业用途!如果您喜欢《android软件安全与逆向分析》,请购买正版,谢谢合作。
爱学习,请到3322软件站查找资源自行下载!
1.1 Windows分析环境搭建
1.1.1 安装JDK
1.1.2 安装Android SDK
1.1.3 安装Android NDK
1.1.4 Eclipse集成开发环境
1.1.5 安装CDT、ADT插件
1.1.6 创建Android Virtual Device
1.1.7 使用到的工具
1.2 Linux分析环境搭建
1.2.1 本书的Linux环境
1.2.2 安装JDK
1.2.3 在Ubuntu上安装Android SDK
1.2.4 在Ubuntu上安装Android NDK
1.2.5 在Ubuntu上安装Eclipse集成开发环境
1.2.6 在Ubuntu上安装CDT、ADT插件
1.2.7 创建Android Virtual Device
1.2.8 使用到的工具
1.3 本章小结
第2章 如何分析Android程序
2.1 编写第一个Android程序
2.1.1 使用Eclipse创建Android工程
2.1.2 编译生成APK文件
2.2 破解第一个程序
2.2.1 如何动手?
2.2.2 反编译APK文件
2.2.3 分析APK文件
2.2.4 修改Smali文件代码
2.2.5 重新编译APK文件并签名
2.2.6 安装测试
2.3 本章小结
第3章 进入Android Dalvik虚拟机
3.1 Dalvik虚拟机的特点——掌握Android程序的运行原理
3.1.1 Dalvik虚拟机概述
3.1.2 Dalvik虚拟机与Java虚拟机的区别
3.1.3 Dalvik虚拟机是如何执行程序的
3.1.4 关于Dalvik虚拟机JIT(即时编译)
3.2 Dalvik汇编语言基础为分析Android程序做准备
3.2.1 Dalvik指令格式
3.2.2 DEX文件反汇编工具
3.2.3 了解Dalvik寄存器
3.2.4 两种不同的寄存器表示方法——v命名法与p命名法
3.2.5 Dalvik字节码的类型、方法与字段表示方法
3.3 Dalvik指令集
3.3.1 指令特点
3.3.2 空操作指令
3.3.3 数据操作指令
3.3.4 返回指令
3.3.5 数据定义指令
3.3.6 锁指令
3.3.7 实例操作指令
3.3.8 数组操作指令
3.3.9 异常指令
3.3.10 跳转指令
3.3.11 比较指令
3.3.12 字段操作指令
3.3.13 方法调用指令
3.3.14 数据转换指令
3.3.15 数据运算指令
3.4 Dalvik指令集练习——写一个Dalvik版的Hello World
3.4.1 编写smali文件
3.4.2 编译smali文件
3.4.3 测试运行
3.5 本章小结
第4章 Android可执行文件
4.1 Android程序的生成步骤
4.2 Android程序的安装流程
4.3 dex文件格式
4.3.1 dex文件中的数据结构
4.3.2 dex文件整体结构
4.3.3 dex文件结构分析
4.4 odex文件格式
4.4.1 如何生成odex文件
4.4.2 odex文件整体结构
4.4.3 odex文件结构分析
4.5 dex文件的验证与优化工具dexopt的工作过程
4.6 Android应用程序另类破解方法
4.7 本章小结
第5章 静态分析Android程序
5.1 什么是静态分析
5.2 快速定位Android程序的关键代码
5.2.1 反编译apk程序
5.2.2 程序的主Activity
5.2.3 需重点关注的Application类
5.2.4 如何定位关键代码——六种方法
5.3 smali文件格式
5.4 Android程序中的类
5.4.1 内部类
5.4.2 监听器
5.4.3 注解类
5.4.4 自动生成的类
5.5 阅读反编译的smali代码
5.5.1 循环语句
5.5.2 switch分支语句
5.5.3 try/catch语句
5.6 使用IDA Pro静态分析Android程序
5.6.1 IDA Pro对Android的支持
5.6.2 如何操作
5.6.3 定位关键代码——使用IDA Pro进行破解的实例
5.7 恶意软件分析工具包——Androguard
5.7.1 Androguard的安装与配置
5.7.2 Androguard的使用方法
5.7.3 使用Androguard配合Gephi进行静态分析
5.7.4 使用androlyze.py进行静态分析
5.8 其他静态分析工具
5.9 阅读反编译的Java代码
5.9.1 使用dex2jar生成jar文件
5.9.2 使用jd-gui查看jar文件的源码
5.10 集成分析环境——santoku
5.11 本章小结
第6章 基于Android的ARM汇编语言基础——逆向原生!
6.1 Android与ARM处理器
6.1.1 ARM处理器架构概述
6.1.2 ARM处理器家族
6.1.3 Android支持的处理器架构
6.2 原生程序与ARM汇编语言——逆向你的原生Hello ARM
6.2.1 原生程序逆向初步
6.2.2 原生程序的生成过程
6.2.3 必须了解的ARM知识
6.3 ARM汇编语言程序结构
6.3.1 完整的ARM汇编程序
6.3.2 处理器架构定义
6.3.3 段定义
6.3.4 注释与标号
6.3.5 汇编器指令
6.3.6 子程序与参数传递
6.4 ARM处理器寻址方式
6.4.1 立即寻址
6.4.2 寄存器寻址
6.4.3 寄存器移位寻址
6.4.4 寄存器间接寻址
6.4.5 基址寻址
6.4.6 多寄存器寻址
6.4.7 堆栈寻址
6.4.8 块拷贝寻址
6.4.9 相对寻址
6.5 ARM与Thumb指令集
6.5.1 指令格式
6.5.2 跳转指令
6.5.3 存储器访问指令
6.5.4 数据处理指令
6.5.5 其他指令
6.6 用于多媒体编程与浮点计算的NEON与VFP指令集
6.7 本章小结
第7章 Android NDK程序逆向分析
7.1 Android中的原生程序
7.1.1 编写一个例子程序
7.1.2 如何编译原生程序
7.2 原生程序的启动流程分析
7.2.1 原生程序的入口函数
7.2.2 main函数究竟何时被执行
7.3 原生文件格式
7.4 原生C程序逆向分析
7.4.1 原生程序的分析方法
7.4.2 for循环语句反汇编代码的特点
7.4.3 if...else分支语句反汇编代码的特点
7.4.4 while循环语句反汇编代码的特点
7.4.5 switch分支语句反汇编代码的特点
7.4.6 原生程序的编译时优化
7.5 原生C++程序逆向分析
7.5.1 C++类的逆向
7.5.2 Android NDK对C++特性的支持
7.5.3 静态链接STL与动态链接STL的代码区别
7.6 Android NDK JNI API逆向分析
7.6.1 Android NDK提供了哪些函数
7.6.2 如何静态分析Android NDK程序
7.7 本章小结
第8章 动态调试Android程序
8.1 Android动态调试支持
8.2 DDMS的使用
8.2.1 如何启动DDMS
8.2.2 使用LogCat查看调试信息
8.3 定位关键代码
8.3.1 代码注入法——让程序自己吐出注册码
8.3.2 栈跟踪法
8.3.3 Method Profiling
8.4 使用AndBug调试Android程序
8.4.1 安装AndBug
8.4.2 使用AndBug
8.5 使用IDA Pro调试Android原生程序
8.5.1 调试Android原生程序
8.5.2 调试Android原生动态链接库
8.6 使用gdb调试Android原生程序
8.6.1 编译gdb与gdbserver
8.6.2 如何调试
8.7 本章小结
第9章 Android软件的破解技术
9.1 试用版软件
9.1.1 试用版软件的种类
9.1.2 实例破解——针对授权KEY方式的破解
9.2 序列号保护
9.3 网络验证
9.3.1 网络验证保护思路
9.3.2 实例破解——针对网络验证方式的破解
9.4 In-app Billing(应用内付费)
9.4.1 In-app Billing原理
9.4.2 In-app Billing破解方法
9.5 Google Play License保护
9.5.1 Google Play License保护机制
9.5.2 实例破解——针对Google Play License方式的破解
9.6 重启验证
9.6.1 重启验证保护思路
9.6.2 实例破解——针对重启验证方式的破解
9.7 如何破解其他类型的Android程序
9.7.1 Mono for Android开发的程序及其破解方法
9.7.2 Qt for Android开发的程序及其破解方法
9.8 本章小结
第10章 Android程序的反破解技术
10.1 对抗反编译
10.1.1 如何对抗反编译工具
10.1.2 对抗dex2jar
10.2 对抗静态分析
10.2.1 代码混淆技术
10.2.2 NDK保护
10.2.3 外壳保护
10.3 对抗动态调试
10.3.1 检测调试器
10.3.2 检测模拟器
10.4 防止重编译
10.4.1 检查签名
10.4.2 校验保护
10.5 本章小结
第11章 Android系统攻击与防范
11.1 Android系统安全概述
11.2 手机ROOT带来的危害
11.2.1 为什么要ROOT手机
11.2.2 手机ROOT后带来的安全隐患
11.2.3 Android手机ROOT原理
11.3 Android权限攻击
11.3.1 Android权限检查机制
11.3.2 串谋权限攻击
11.3.3 权限攻击检测
11.4 Android组件安全
11.4.1 Activity安全及Activity劫持演示
11.4.2 Broadcast Receiver 安全
11.4.3 Service安全
11.4.4 Content Provider安全
11.5 数据安全
11.5.1 外部存储安全
11.5.2 内部存储安全
11.5.3 数据通信安全
11.6 ROM安全
11.6.1 ROM的种类
11.6.2 ROM的定制过程
11.6.3 定制ROM的安全隐患
11.6.4 如何防范
11.7 本章小结
第12章 DroidKongFu变种病毒实例分析
12.1 DroidKongFu病毒介绍
12.2 配置病毒分析环境
12.3 病毒执行状态分析
12.3.1 使用APIMonitor初步分析
12.3.2 使用DroidBox动态分析
12.3.3 其他动态分析工具
12.4 病毒代码逆向分析
12.4.1 Java层启动代码分析
12.4.2 Native层启动代码分析
12.4.3 Native层病毒核心分析
12.5 DroidKongFu病毒框架总结
12.6 病毒防治
12.7 本章小结
……
近几年,Android在国内的发展极其迅猛,这除了相关产品强大的功能与丰富的应用外,更是因为它优良的性能表现吸引着用户。2011年可谓是Android的风光年,从手机生产商到应用开发者都纷纷捧场,短短几个月的时间,Android在国内红遍了大街小巷,截止到2012年的第一个季度,Android在国内的市场份额就超过60%,将曾经风靡一时的塞班系统远远的甩在了身后,与此同时,它也带动了国内移动互联网行业的发展,创造了更多就业的岗位,国内IT人士为之雀跃欢呼。
随着Android在国内的兴起,基于Android的平台应用需求也越来越复杂。形形色色的软件壮大了Android市场,也丰富了我们的生产生活,越来越多的人从起初的尝试到享受再到依赖,沉浸在Android的神奇海洋中。事情有利也总有弊,即使Android如此优秀也会有怨声载道的时候,各种信息泄露、恶意扣费、系统被破坏的事件也屡见不鲜,Android系统的安全也逐渐成为人们所关注的话题。
如今市场上讲解Android开发的书籍已经有很多了,从应用软件开发层到系统底层的研究均丰富涵盖,其中不乏一些经典之作,然而遗憾的是,分析Android软件及系统安全的书籍却一本也没有,而且相关的中文资料也非常匮乏,这使得普通用户以及大多数Android应用开发者对系统的安全防护及软件本身没有一个全面理性的认识。因此,笔者决定将自身的实际经验整理,编写为本书。
内容导读
本书主要从软件安全和系统安全两个方面讲解Android平台存在的攻击与防范方法。
第1章和第2章主要介绍Android分析环境的搭建与Android程序的分析方法。第3章详细介绍了Dalvik VM汇编语言,它是Android平台上进行安全分析工作的基础知识,读者只有掌握了这部分内容才能顺利地学习后面的章节。
第4章介绍了Android平台的可执行文件,它是Android软件得以运行的基石,我们大多数的分析工作都是基于它,因此这部分内容必须掌握。
第5章起正式开始了对Android程序的分析,对这部分的理解与运用完全是建立在前面章节的基础之上。这一章详细讲述了Android软件的各种反汇编代码特征,以及可供使用的分析工具,如何合理搭配使用它们是这章需要学习的重点。
第6章主要讲解ARM汇编语言的基础知识,在这一章中,会对ARM汇编指令集做一个简要的介绍,为下一章的学习做铺垫。
第7章是本书的一个高级部分,主要介绍了基于ARM架构的Android原生程序的特点以及分析它们的方法,读者需要在这一章中仔细的体会并实践,鉴于此类程序目前在市场上比较流行,读者在阅读时需要多进行实践操作,多动手分析这类代码,加强自己的逆向分析能力。
第8章介绍了Android平台上软件的动态调试技术,动态调试与静态分析是逆向分析程序时的两大主要技术手段,各有着优缺点,通过动态调试可以让你看到软件运行到某一点时程序的状态,对了解程序执行流程有很大的帮助。
第9章详细介绍了Android平台软件的破解方法。主要分析了目前市场上一些常见的Android程序保护方法,分析它们的保护效果以及介绍如何对它们进行破解,通过对本章的学习,读者会对Android平台上的软件安全有一种“恍然大悟”的感觉。
第10章介绍了在面对软件可能被破解的情况下,如何加强Android平台软件的保护,内容与第9章是对立的,只有同时掌握了攻与防,才能将软件安全真正地掌握到位。
第11章从系统安全的角度出发,分析了Android系统中不同环节可能存在的安全隐患,同时介绍了面对这些安全问题时,如何做出相应的保护措施。另外,本章的部分小节还从开发人员的角度出发,讲解不安全代码对系统造成的危害,读者在掌握这部分内容后,编写代码的安全意识会明显提高。
第12章采用病毒实战分析的方式,将前面所学的知识全面展示并加以应用,让读者能彻底地掌握分析Android程序的方法。本章的内容详实、知识涵盖范围广,读者完全掌握本章内容后,以后动手分析Android程序时,便能够信手拈来。为了使读者对文中所讲述的内容有深刻的认识,并且在阅读时避免感到乏味,书中的内容不会涉及太多的基础理论知识,而更多的是采用动手实践的方式进行讲解,所以在阅读本书前假定读者已经掌握了Android程序开发所必备的基础知识,如果读者还不具备这些基础知识的话,请先打好基础后再阅读本书。
……
1、下载并解压,得出pdf文件
2、如果打不开本文件,别着急,这时候请务必在3322软件站选择一款阅读器下载哦
3、安装后,再打开解压得出的pdf文件
4、以上都完成后,接下来双击进行阅读就可以啦,朋友们开启你们的阅读之旅吧。
方法二:
1、可以在手机里下载3322软件站中的阅读器和百度网盘
2、接下来直接将pdf传输到百度网盘
3、用阅读器打开即可阅读
免责声明:
来源于网络,仅用于分享知识,学习和交流!请下载完在24小时内删除。禁用于商业用途!如果您喜欢《android软件安全与逆向分析》,请购买正版,谢谢合作。
爱学习,请到3322软件站查找资源自行下载!
作者介绍:
丰生强(网名非虫),Android软件安全专家。看雪论坛Android安全版版主;安卓巴士开发交流版版主。对Android软件与系统安全有狂热的爱好和独到的见解,对Android系统的全部源代码进行过深入地研究和分析。逆向分析实战经验丰富。在国内信息安全杂志上发表过多篇有价值的软件安全文章,目前就职于国内某Android开发企业,常年混迹于看雪论坛(ID非虫)。android软件安全与逆向分析目录:
第1章 Android程序分析环境搭建1.1 Windows分析环境搭建
1.1.1 安装JDK
1.1.2 安装Android SDK
1.1.3 安装Android NDK
1.1.4 Eclipse集成开发环境
1.1.5 安装CDT、ADT插件
1.1.6 创建Android Virtual Device
1.1.7 使用到的工具
1.2 Linux分析环境搭建
1.2.1 本书的Linux环境
1.2.2 安装JDK
1.2.3 在Ubuntu上安装Android SDK
1.2.4 在Ubuntu上安装Android NDK
1.2.5 在Ubuntu上安装Eclipse集成开发环境
1.2.6 在Ubuntu上安装CDT、ADT插件
1.2.7 创建Android Virtual Device
1.2.8 使用到的工具
1.3 本章小结
第2章 如何分析Android程序
2.1 编写第一个Android程序
2.1.1 使用Eclipse创建Android工程
2.1.2 编译生成APK文件
2.2 破解第一个程序
2.2.1 如何动手?
2.2.2 反编译APK文件
2.2.3 分析APK文件
2.2.4 修改Smali文件代码
2.2.5 重新编译APK文件并签名
2.2.6 安装测试
2.3 本章小结
第3章 进入Android Dalvik虚拟机
3.1 Dalvik虚拟机的特点——掌握Android程序的运行原理
3.1.1 Dalvik虚拟机概述
3.1.2 Dalvik虚拟机与Java虚拟机的区别
3.1.3 Dalvik虚拟机是如何执行程序的
3.1.4 关于Dalvik虚拟机JIT(即时编译)
3.2 Dalvik汇编语言基础为分析Android程序做准备
3.2.1 Dalvik指令格式
3.2.2 DEX文件反汇编工具
3.2.3 了解Dalvik寄存器
3.2.4 两种不同的寄存器表示方法——v命名法与p命名法
3.2.5 Dalvik字节码的类型、方法与字段表示方法
3.3 Dalvik指令集
3.3.1 指令特点
3.3.2 空操作指令
3.3.3 数据操作指令
3.3.4 返回指令
3.3.5 数据定义指令
3.3.6 锁指令
3.3.7 实例操作指令
3.3.8 数组操作指令
3.3.9 异常指令
3.3.10 跳转指令
3.3.11 比较指令
3.3.12 字段操作指令
3.3.13 方法调用指令
3.3.14 数据转换指令
3.3.15 数据运算指令
3.4 Dalvik指令集练习——写一个Dalvik版的Hello World
3.4.1 编写smali文件
3.4.2 编译smali文件
3.4.3 测试运行
3.5 本章小结
第4章 Android可执行文件
4.1 Android程序的生成步骤
4.2 Android程序的安装流程
4.3 dex文件格式
4.3.1 dex文件中的数据结构
4.3.2 dex文件整体结构
4.3.3 dex文件结构分析
4.4 odex文件格式
4.4.1 如何生成odex文件
4.4.2 odex文件整体结构
4.4.3 odex文件结构分析
4.5 dex文件的验证与优化工具dexopt的工作过程
4.6 Android应用程序另类破解方法
4.7 本章小结
第5章 静态分析Android程序
5.1 什么是静态分析
5.2 快速定位Android程序的关键代码
5.2.1 反编译apk程序
5.2.2 程序的主Activity
5.2.3 需重点关注的Application类
5.2.4 如何定位关键代码——六种方法
5.3 smali文件格式
5.4 Android程序中的类
5.4.1 内部类
5.4.2 监听器
5.4.3 注解类
5.4.4 自动生成的类
5.5 阅读反编译的smali代码
5.5.1 循环语句
5.5.2 switch分支语句
5.5.3 try/catch语句
5.6 使用IDA Pro静态分析Android程序
5.6.1 IDA Pro对Android的支持
5.6.2 如何操作
5.6.3 定位关键代码——使用IDA Pro进行破解的实例
5.7 恶意软件分析工具包——Androguard
5.7.1 Androguard的安装与配置
5.7.2 Androguard的使用方法
5.7.3 使用Androguard配合Gephi进行静态分析
5.7.4 使用androlyze.py进行静态分析
5.8 其他静态分析工具
5.9 阅读反编译的Java代码
5.9.1 使用dex2jar生成jar文件
5.9.2 使用jd-gui查看jar文件的源码
5.10 集成分析环境——santoku
5.11 本章小结
第6章 基于Android的ARM汇编语言基础——逆向原生!
6.1 Android与ARM处理器
6.1.1 ARM处理器架构概述
6.1.2 ARM处理器家族
6.1.3 Android支持的处理器架构
6.2 原生程序与ARM汇编语言——逆向你的原生Hello ARM
6.2.1 原生程序逆向初步
6.2.2 原生程序的生成过程
6.2.3 必须了解的ARM知识
6.3 ARM汇编语言程序结构
6.3.1 完整的ARM汇编程序
6.3.2 处理器架构定义
6.3.3 段定义
6.3.4 注释与标号
6.3.5 汇编器指令
6.3.6 子程序与参数传递
6.4 ARM处理器寻址方式
6.4.1 立即寻址
6.4.2 寄存器寻址
6.4.3 寄存器移位寻址
6.4.4 寄存器间接寻址
6.4.5 基址寻址
6.4.6 多寄存器寻址
6.4.7 堆栈寻址
6.4.8 块拷贝寻址
6.4.9 相对寻址
6.5 ARM与Thumb指令集
6.5.1 指令格式
6.5.2 跳转指令
6.5.3 存储器访问指令
6.5.4 数据处理指令
6.5.5 其他指令
6.6 用于多媒体编程与浮点计算的NEON与VFP指令集
6.7 本章小结
第7章 Android NDK程序逆向分析
7.1 Android中的原生程序
7.1.1 编写一个例子程序
7.1.2 如何编译原生程序
7.2 原生程序的启动流程分析
7.2.1 原生程序的入口函数
7.2.2 main函数究竟何时被执行
7.3 原生文件格式
7.4 原生C程序逆向分析
7.4.1 原生程序的分析方法
7.4.2 for循环语句反汇编代码的特点
7.4.3 if...else分支语句反汇编代码的特点
7.4.4 while循环语句反汇编代码的特点
7.4.5 switch分支语句反汇编代码的特点
7.4.6 原生程序的编译时优化
7.5 原生C++程序逆向分析
7.5.1 C++类的逆向
7.5.2 Android NDK对C++特性的支持
7.5.3 静态链接STL与动态链接STL的代码区别
7.6 Android NDK JNI API逆向分析
7.6.1 Android NDK提供了哪些函数
7.6.2 如何静态分析Android NDK程序
7.7 本章小结
第8章 动态调试Android程序
8.1 Android动态调试支持
8.2 DDMS的使用
8.2.1 如何启动DDMS
8.2.2 使用LogCat查看调试信息
8.3 定位关键代码
8.3.1 代码注入法——让程序自己吐出注册码
8.3.2 栈跟踪法
8.3.3 Method Profiling
8.4 使用AndBug调试Android程序
8.4.1 安装AndBug
8.4.2 使用AndBug
8.5 使用IDA Pro调试Android原生程序
8.5.1 调试Android原生程序
8.5.2 调试Android原生动态链接库
8.6 使用gdb调试Android原生程序
8.6.1 编译gdb与gdbserver
8.6.2 如何调试
8.7 本章小结
第9章 Android软件的破解技术
9.1 试用版软件
9.1.1 试用版软件的种类
9.1.2 实例破解——针对授权KEY方式的破解
9.2 序列号保护
9.3 网络验证
9.3.1 网络验证保护思路
9.3.2 实例破解——针对网络验证方式的破解
9.4 In-app Billing(应用内付费)
9.4.1 In-app Billing原理
9.4.2 In-app Billing破解方法
9.5 Google Play License保护
9.5.1 Google Play License保护机制
9.5.2 实例破解——针对Google Play License方式的破解
9.6 重启验证
9.6.1 重启验证保护思路
9.6.2 实例破解——针对重启验证方式的破解
9.7 如何破解其他类型的Android程序
9.7.1 Mono for Android开发的程序及其破解方法
9.7.2 Qt for Android开发的程序及其破解方法
9.8 本章小结
第10章 Android程序的反破解技术
10.1 对抗反编译
10.1.1 如何对抗反编译工具
10.1.2 对抗dex2jar
10.2 对抗静态分析
10.2.1 代码混淆技术
10.2.2 NDK保护
10.2.3 外壳保护
10.3 对抗动态调试
10.3.1 检测调试器
10.3.2 检测模拟器
10.4 防止重编译
10.4.1 检查签名
10.4.2 校验保护
10.5 本章小结
第11章 Android系统攻击与防范
11.1 Android系统安全概述
11.2 手机ROOT带来的危害
11.2.1 为什么要ROOT手机
11.2.2 手机ROOT后带来的安全隐患
11.2.3 Android手机ROOT原理
11.3 Android权限攻击
11.3.1 Android权限检查机制
11.3.2 串谋权限攻击
11.3.3 权限攻击检测
11.4 Android组件安全
11.4.1 Activity安全及Activity劫持演示
11.4.2 Broadcast Receiver 安全
11.4.3 Service安全
11.4.4 Content Provider安全
11.5 数据安全
11.5.1 外部存储安全
11.5.2 内部存储安全
11.5.3 数据通信安全
11.6 ROM安全
11.6.1 ROM的种类
11.6.2 ROM的定制过程
11.6.3 定制ROM的安全隐患
11.6.4 如何防范
11.7 本章小结
第12章 DroidKongFu变种病毒实例分析
12.1 DroidKongFu病毒介绍
12.2 配置病毒分析环境
12.3 病毒执行状态分析
12.3.1 使用APIMonitor初步分析
12.3.2 使用DroidBox动态分析
12.3.3 其他动态分析工具
12.4 病毒代码逆向分析
12.4.1 Java层启动代码分析
12.4.2 Native层启动代码分析
12.4.3 Native层病毒核心分析
12.5 DroidKongFu病毒框架总结
12.6 病毒防治
12.7 本章小结
……
前言:
......近几年,Android在国内的发展极其迅猛,这除了相关产品强大的功能与丰富的应用外,更是因为它优良的性能表现吸引着用户。2011年可谓是Android的风光年,从手机生产商到应用开发者都纷纷捧场,短短几个月的时间,Android在国内红遍了大街小巷,截止到2012年的第一个季度,Android在国内的市场份额就超过60%,将曾经风靡一时的塞班系统远远的甩在了身后,与此同时,它也带动了国内移动互联网行业的发展,创造了更多就业的岗位,国内IT人士为之雀跃欢呼。
随着Android在国内的兴起,基于Android的平台应用需求也越来越复杂。形形色色的软件壮大了Android市场,也丰富了我们的生产生活,越来越多的人从起初的尝试到享受再到依赖,沉浸在Android的神奇海洋中。事情有利也总有弊,即使Android如此优秀也会有怨声载道的时候,各种信息泄露、恶意扣费、系统被破坏的事件也屡见不鲜,Android系统的安全也逐渐成为人们所关注的话题。
如今市场上讲解Android开发的书籍已经有很多了,从应用软件开发层到系统底层的研究均丰富涵盖,其中不乏一些经典之作,然而遗憾的是,分析Android软件及系统安全的书籍却一本也没有,而且相关的中文资料也非常匮乏,这使得普通用户以及大多数Android应用开发者对系统的安全防护及软件本身没有一个全面理性的认识。因此,笔者决定将自身的实际经验整理,编写为本书。
内容导读
本书主要从软件安全和系统安全两个方面讲解Android平台存在的攻击与防范方法。
第1章和第2章主要介绍Android分析环境的搭建与Android程序的分析方法。第3章详细介绍了Dalvik VM汇编语言,它是Android平台上进行安全分析工作的基础知识,读者只有掌握了这部分内容才能顺利地学习后面的章节。
第4章介绍了Android平台的可执行文件,它是Android软件得以运行的基石,我们大多数的分析工作都是基于它,因此这部分内容必须掌握。
第5章起正式开始了对Android程序的分析,对这部分的理解与运用完全是建立在前面章节的基础之上。这一章详细讲述了Android软件的各种反汇编代码特征,以及可供使用的分析工具,如何合理搭配使用它们是这章需要学习的重点。
第6章主要讲解ARM汇编语言的基础知识,在这一章中,会对ARM汇编指令集做一个简要的介绍,为下一章的学习做铺垫。
第7章是本书的一个高级部分,主要介绍了基于ARM架构的Android原生程序的特点以及分析它们的方法,读者需要在这一章中仔细的体会并实践,鉴于此类程序目前在市场上比较流行,读者在阅读时需要多进行实践操作,多动手分析这类代码,加强自己的逆向分析能力。
第8章介绍了Android平台上软件的动态调试技术,动态调试与静态分析是逆向分析程序时的两大主要技术手段,各有着优缺点,通过动态调试可以让你看到软件运行到某一点时程序的状态,对了解程序执行流程有很大的帮助。
第9章详细介绍了Android平台软件的破解方法。主要分析了目前市场上一些常见的Android程序保护方法,分析它们的保护效果以及介绍如何对它们进行破解,通过对本章的学习,读者会对Android平台上的软件安全有一种“恍然大悟”的感觉。
第10章介绍了在面对软件可能被破解的情况下,如何加强Android平台软件的保护,内容与第9章是对立的,只有同时掌握了攻与防,才能将软件安全真正地掌握到位。
第11章从系统安全的角度出发,分析了Android系统中不同环节可能存在的安全隐患,同时介绍了面对这些安全问题时,如何做出相应的保护措施。另外,本章的部分小节还从开发人员的角度出发,讲解不安全代码对系统造成的危害,读者在掌握这部分内容后,编写代码的安全意识会明显提高。
第12章采用病毒实战分析的方式,将前面所学的知识全面展示并加以应用,让读者能彻底地掌握分析Android程序的方法。本章的内容详实、知识涵盖范围广,读者完全掌握本章内容后,以后动手分析Android程序时,便能够信手拈来。为了使读者对文中所讲述的内容有深刻的认识,并且在阅读时避免感到乏味,书中的内容不会涉及太多的基础理论知识,而更多的是采用动手实践的方式进行讲解,所以在阅读本书前假定读者已经掌握了Android程序开发所必备的基础知识,如果读者还不具备这些基础知识的话,请先打好基础后再阅读本书。
……
下载说明:
方法一:1、下载并解压,得出pdf文件
2、如果打不开本文件,别着急,这时候请务必在3322软件站选择一款阅读器下载哦
3、安装后,再打开解压得出的pdf文件
4、以上都完成后,接下来双击进行阅读就可以啦,朋友们开启你们的阅读之旅吧。
方法二:
1、可以在手机里下载3322软件站中的阅读器和百度网盘
2、接下来直接将pdf传输到百度网盘
3、用阅读器打开即可阅读
展开更多
android软件安全与逆向分析-丰生强pdf高清扫描版下载地址
- 需先下载高速下载器:
- 专用下载:
- 其它下载: