资源名称:Android应用安全防护和逆向分析

内容简介:

本书全面介绍Android应用的安全防护方法与逆向分析技术,分为四篇:基础篇、防护篇、工具篇、操作篇,共26章。基础篇包括第1~7章,主要介绍移动应用安全的基础知识,包括Android中NDK开发知识、逆向中需要用到的命令、编译之后的apk包含的四类主要文件格式解析等。防护篇包括第8~14章,主要介绍移动应用安全防护的相关技术,包括混淆、签名校验、反调试检测等安全策略,Android应用升级权限、降低权限等,配置文件中的问题,应用签名机制,apk的加固策略,so文件的加固策略等。工具篇包括第15~19章,主要介绍逆向分析常用的工具以及使用场景,包括如何开启设备的总调试开关,反编译利器apktool、Jadx、Xposed、Cydia Substrate等。操作篇包括第20~26章,主要介绍Android中的逆向分析技巧,包括静态方式和动态方式,介绍Android中开发会遇到的系统漏洞及修复方式,最后分析了Android中一个非常经典的文件加密病毒样本。

资源目录:

对本书的赞誉

前言

基础篇

第1章 Android中锁屏密码加密算法分析 2

1.1 锁屏密码方式 2

1.2 密码算法分析 2

1.2.1 输入密码算法分析 2

1.2.2 手势密码算法分析 7

1.3 本章小结 9

第2章 Android中NDK开发 10

2.1 搭建开发环境 10

2.1.1 Eclipse环境搭建 10

2.1.2 Android Studio环境搭建 12

2.2 第一行代码:HelloWorld 14

2.3 JNIEnv类型和jobject类型 18

2.3.1 JNIEnv类型 19

2.3.2 jobject参数obj 19

2.3.3 Java类型和native中的类型映射关系 19

2.3.4 jclass类型 19

2.3.5 native中访问Java层代码 20

2.4 JNIEnv类型中方法的使用 21

2.4.1 native中获取方法的Id 22

2.4.2 Java和C++中的多态机制 24

2.5 创建Java对象及字符串的操作方法 27

2.5.1 native中创建Java对象 27

2.5.2 native中操作Java字符串 28

2.6 C/C++中操作Java中的数组 32

2.6.1 操作基本类型数组 32

2.6.2 操作对象类型数组 33

2.7 C/C++中的引用类型和ID的缓存 36

2.7.1 引用类型 36

2.7.2 缓存方法 37

2.8 本章小结 38

第3章 Android中开发与逆向常用命令

总结 39

3.1 基础命令 39

3.2 非shell命令 40

3.3 shell命令 45

3.4 操作apk命令 49

3.5 进程命令 50

3.6 本章小结 52

第4章 so文件格式解析 53

4.1 ELF文件格式 53

4.2 解析工具 54

4.3 解析ELF文件 57

4.4 验证解析结果 60

4.5 本章小结 61

第5章 AndroidManifest.xml文件格式解析 62

5.1 格式分析 62

5.2 格式解析 63

5.2.1 解析头部信息 63

5.2.2 解析String Chunk 63

5.2.3 解析ResourceId Chunk 68

5.2.4 解析Start Namespace Chunk 70

5.2.5 解析Start Tag Chunk 72

5.3 本章小结 82

第6章 resource.arsc文件格式解析 83

6.1 Android中资源文件id格式 83

6.2 数据结构定义 85

6.2.1 头部信息 85

6.2.2 资源索引表的头部信息 85

6.2.3 资源项的值字符串资源池 86

6.2.4 Package数据块 87

6.2.5 类型规范数据块 88

6.2.6 资源类型项数据块 89

6.3 解析代码 93

6.3.1 解析头部信息 93

6.3.2 解析资源字符串内容 94

6.3.3 解析包信息 96

6.3.4 解析资源类型的字符串内容 97

6.3.5 解析资源值字符串内容 98

6.3.6 解析正文内容 99

6.4 本章小结 105

第7章 dex文件格式解析 106

7.1 dex文件格式 106

7.2 构造dex文件 107

7.3 解析数据结构 108

7.3.1 头部信息Header结构 108

7.3.2 string_ids数据结构 112

7.3.3 type_ids数据结构 115

7.3.4 proto_ids数据结构 116

7.3.5 field_ids数据结构 118

7.3.6 method_ids数据结构 119

7.3.7 class_defs数据结构 120

7.4 解析代码 128

7.4.1 解析头部信息 128

7.4.2 解析string_ids索引区 129

7.4.3 解析type_ids索引区 130

7.4.4 解析proto_ids索引区 130

7.4.5 解析field_ids索引区 131

7.4.6 解析method_ids索引区 132

7.4.7 解析class_def区域 132

7.5 本章小结 134

防护篇

第8章 Android应用安全防护的基本策略 136

8.1 混淆机制 136

8.1.1 代码混淆 136

8.1.2 资源混淆 136

8.2 签名保护 138

8.3 手动注册native方法 140

8.4 反调试检测 144

8.5 本章小结 145

第9章 Android中常用权限分析 147

9.1 辅助功能权限 147

9.2 设备管理权限 148

9.3 通知栏管理权限 149

9.4 VPN开发权限 149

9.5 本章小结 150

第10章 Android中的run-as命令 151

10.1 命令分析和使用 151

10.2 Linux中的setuid和setgid概念 159

10.3 Android中setuid和setgid的使用

场景 162

10.4 run-as命令的作用 165

10.5 调用系统受uid限制的API 166

10.6 本章小结 168

第11章 Android中的allowBackup属性 169

11.1 allowBackup属性介绍 169

11.2 如何获取应用隐私数据 170

11.3 如何恢复应用数据 175

11.4 本章小结 175

第12章 Android中的签名机制 176

12.1 基本概念 176

12.2 Android中签名流程 182

12.3 Android中为何采用这种签名机制 191

12.4 本章小结 192

第13章 Android应用加固原理 193

13.1 加固原理解析 193

13.2 案例分析 195

13.3 运行项目 206

13.4 本章小结 208

第14章 Android中的so加固原理 209

14.1 基于对so中的section加密实现so加固 209

14.1.1 技术原理 209

14.1.2 实现方案 210

14.1.3 代码实现 210

14.1.4 总结 220

14.2 基于对so中的函数加密实现so加固 221

14.2.1 技术原理 221

14.2.2 实现方案 223

14.2.3 代码实现 224

14.3 本章小结 230

工具篇

第15章 Android逆向分析基础 232

15.1 逆向工具 232

15.2 逆向基本知识 233

15.3 打开系统调试总开关 233

15.4 本章小结 237

第16章 反编译神器apktool和Jadx 238

16.1 逆向操作惯例 238

16.2 反编译常见的

资源截图:

1.png

资源下载资源下载价格6立即支付    升级VIP后免费
本站严重申明:本站创建于香港,主要分享电脑技术以及服务于精简系统爱好者,本站遵守香港的法律法规,并且受到香港法律的保护;本站收集的资源仅供内部学习研究软件设计思想和原理使用,学习研究后请自觉删除,请勿传播,因未及时删除所造成的任何后果责任自负; 如果用于其他用途,请购买正版支持作者,谢谢!若您认为本站发布的内容若侵犯到您的权益,请联系站长QQ:304906607 进行删除处理。 本站资源大多存储在云盘,如发现链接失效,请联系我们,我们会第一时间更新。如要升级VIP会员,请联系QQ:304906607 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!资源仅供学习参考请勿商用或其它非法用途,否则一切后果用户自负!