[套装书]Android开发与应用+Android应用安全防护和逆向分析(2册)

作者
马玉春姜维
丛书名
高等学校计算机专业规划教材
出版社
机械工业出版社
ISBN
9781910141352
简要
简介
内容简介书籍计算机书籍 ---------------------------Android开发与应用--------------------------- 本书介绍了Android的常用技术,包括基本概念、架构、常用控件、编程方法,并通过大量的案例讲解具体的开发过程,使学生在工程实践过程中掌握Android的开发技术与方法。第一部分介绍Android编程基础与技巧。第二部分基于作者开发的软件项目整理出的实用案例,进行讲解和分析,涉及Android各个功能的应用。第三部分通过一个真实的综合实例讲解Android的项目开发过程。本书可以作为高校理工科相关专业学生的Android程序设计教材和相关实践课程的参考书。 ---------------------------Android应用安全防护和逆向分析--------------------------- 本书全面介绍Android应用的安全防护方法与逆向分析技术,分为四篇:基础篇、防护篇、工具篇、操作篇,共26章。基础篇包括第1~7章,主要介绍移动应用安全的基础知识,包括Android中NDK开发知识、逆向中需要用到的命令、编译之后的apk包含的四类主要文件格式解析等。防护篇包括第8~14章,主要介绍移动应用安全防护的相关技术,包括混淆、签名校验、反调试检测等安全策略,Android应用升级权限、降低权限等,配置文件中的问题,应用签名机制,apk的加固策略,so文件的加固策略等。工具篇包括第15~19章,主要介绍逆向分析常用的工具以及使用场景,包括如何开启设备的总调试开关,反编译利器apktool、Jadx、Xposed、CydiaSubstrate等。操作篇包括第20~26章,主要介绍Android中的逆向分析技巧,包括静态方式和动态方式,介
目录



---------------------------Android开发与应用---------------------------


前言
第1章 开发环境搭建与应用入门1
1.1 搭建开发环境1
1.2 创建虚拟设备2
1.3 第一个应用程序3
1.4 工作空间与相关文件4
1.5 程序的调试方法8
1.6 本章小结10
第一部分 编程基础与技巧
第2章 常用开发组件12
2.1 常见属性12
2.2 EditText组件与菜单13
2.3 Button组件17
2.4 ToggleButton组件20
2.5 CheckBox组件22
2.6 RadioButton组件24
2.7 Spinner组件26
2.8 ListView组件29
2.9 Switch组件33
2.10 DatePicker组件36
2.11 AlertDialog组件37
2.12 本章小结45
第3章 常用技术46
3.1 进一步了解Activity46
3.2 绘图47
3.3 用静态库函数设置手机情景模式和音量51
3.4 播放音频55
3.5 利用消息机制处理后退键56
3.6 利用多线程和消息机制获取IP地址59
3.7 定时功能的实现62
3.8 SQLite与自定义ListView64
3.9 查询联系人74
3.10 使用SharedPreferences对象存储数据80
3.11 内部文本文件存取85
3.12 百度地图86
3.13 本章小结91
第4章 Intent的综合应用92
4.1 Intent的基础知识92
4.2 在Activity之间传递数据94
4.3 状态栏通知98
4.4 广播接收器与开机自动启动99
4.5 显示来电和接收短信101
4.6 带回执的短信发送105
4.7 服务的基础知识108
4.8 启动服务的实现110
4.9 绑定服务的实现115
4.10 本章小结117
第二部分 实用案例分析
第5章 课堂随机点名软件120
5.1 主要功能和技术特点120
5.2 软件操作120
5.3 界面布局与资源说明121
5.3.1 字符串定义文件121
5.3.2 菜单项定义文件121
5.3.3 颜色定义文件122
5.3.4 自定义对话框布局文件122
5.3.5 ListView列表布局文件123
5.3.6 版权窗体布局文件124
5.3.7 主窗体布局文件124
5.4 配置文件126
5.5 主窗体源代码127
5.6 本章小结135
第6章 简易英语学习软件136
6.1 主要功能和技术特点136
6.2 软件操作136
6.3 界面布局与资源说明137
6.3.1 适应多屏幕的dimens文件137
6.3.2 菜单项定义文件138
6.3.3 主窗体布局文件138
6.3.4 主题设置文件140
6.4 配置文件141
6.5 与文件处理类源代码141
6.6 文本读取类源代码142
6.7 主窗体源代码144
6.8 本章小结151
第7章 通讯录备份与恢复软件152
7.1 主要功能和技术特点152
7.2 软件操作152
7.3 界面布局153
7.4 配置文件153
7.5 通讯录操作源代码154
7.6 外部文本写入源代码156
7.7 主窗体源代码156
7.8 本章小结161
第8章 服务账号登记软件162
8.1 主要功能和技术特点162
8.2 软件操作163
8.3 配置文件164
8.4 登录窗体165
8.4.1 布局文件165
8.4.2 源代码167
8.5 服务浏览窗体172
8.5.1 适配器布局文件172
8.5.2 窗体布局文件173
8.5.3 适配器源代码174
8.5.4 窗体源代码177
8.6 单位浏览窗体185
8.6.1 适配器布局文件185
8.6.2 窗体布局文件186
8.6.3 拖放阴影源代码187
8.6.4 适配器源代码188
8.6.5 窗体源代码190
8.7 单位详细信息窗体199
8.7.1 适配器布局文件199
8.7.2 窗体布局文件200
8.7.3 适配器源代码201
8.7.4 窗体源代码202
8.8 单位搜索窗体207
8.8.1 布局文件207
8.8.2 源代码208
8.9 本章小结211
第9章 地址定位及辅助服务软件212
9.1 主要功能和技术特点212
9.2 软件操作212
9.3 配置文件213
9.4 广播接收器源代码215
9.4.1 启动完成215
9.4.2 来电处理216
9.4.3 情景模式改变217
9.4.4 屏幕状态变化217
9.4.5 短信接收218
9.4.6 WiFi设置变化221
9.5 服务源代码222
9.6 适配器源代码223
9.7 窗体源代码226
9.8 本章小结229
第10章 地址查询与地图打点软件230
10.1 主要功能和技术特点230
10.2 软件操作230
10.3 配置文件231
10.4 短信接收与处理源代码232
10.5 窗体源代码233
10.6 本章小结234
第三部分 基于互联网的远程温度监测案例
第11章 数据编码与处理技术236
11.1 十六进制字符串的预处理236
11.2 字节与两个十六进制字符相互转换237
11.3 字与十六进制字符串相互转换238
11.4 字节数组与十六进制字符串相互转换238
11.5 字节数组与ByteBuffer对象相互转换239
11.6 英文字符串的多种编码方法239
11.7 适用于汉字的Unicode编码240
11.8 随机字节的生成与数字至字节数组的转换243
11.9 字节的位操作技术243
11.10 本章小结244
第12章 数据包的校验技术245
12.1 枚举类型的定义与说明245
12.2 累加和校验码的生成与检验246
12.3 异或校验码的生成与检验247
12.4 循环冗余校验码的生成与检验249
12.5 累加求补校验码的生成与检验250
12.6 结尾码的处理252
12.7 数据包的综合处理254
12.8 应用实例257
12.9 本章小结257
第13章 通用TCP客户机与服务器测试软件258
13.1 主要功能和技术特点258
13.2 软件操作258
13.3 界面布局259
13.4 配置文件264
13.5 网络处理类265
13.6 通用TCP客户机与服务器类268
13.6.1 各种声明的说明268
13.6.2 构造函数269
13.6.3 获取Socket对象与多线程的启动269
13.6.4 数据接收与发送269
13.6.5 TcpClientServer源代码270
13.7 窗体源代码275
13.8 TCP服务器的关键代码286
13.9 本章小结286
第14章 I-7013D模块仿真软件287
14.1 主要功能和技术特点287
14.2 软件操作287
14.3 界面布局288
14.4 配置文件291
14.5 窗体源代码292
14.6 本章小结298
第15章 I-7013D模块监测软件299
15.1 主要功能和技术特点299
15.2 软件操作299
15.3 配置文件300
15.4 参数设置窗体301
15.4.1 界面布局302
15.4.2 源代码304
15.5 主窗体307
15.5.1 实时温度显示组件307
15.5.2 portrait布局309
15.5.3 landscape布局311
15.5.4 源代码311
15.6 对实物模块的监控320
15.7 本章小结321
参考文献322



---------------------------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 反编译常见的问题 238
16.3 分析apktool的源码 240
16.4 解决常见问题 249
16.5 apktool的回编译源码分析 254
16.6 Jadx源码分析 256
16.7 本章小结 258
第17章 Hook神器Xposed 259
17.1 安装教程 259
17.2 环境搭建 259
17.3 编写模块功能 260
17.4 运行模块 264
17.5 本章小结 265
第18章 脱壳神器ZjDroid 266
18.1 ZjDroid原理分析 266
18.2 工具命令分析 268
18.3 工具日志信息 272
18.4 工具用法总结 272
18.5 工具使用案例 273
18.6 本章小结 276
第19章 Native层Hook神器Cydia Substrate 277
19.1 环境搭建 277
19.2 Hook Java层功能 277
19.3 Hook Native层功能 279
19.4 框架使用事项说明 283
19.5 本章小结 283
操作篇
第20章 静态方式逆向应用 286
20.1 smali语法 286
20.2 手动注入smali语句 288
20.3 ARM指令 288
20.4 用IDA静态分析so文件 290
20.5 案例分析 292
20.5.1 静态分析smali代码 292
20.5.2 静态分析native代码 300
20.6 本章小结 303
第21章 动态调试smali源码 304
21.1 动态调试步骤 304
21.2 案例分析 305
21.3 本章小结 324
第22章 IDA工具调试so源码 325
22.1 IDA中的常用快捷键 325
22.2 构造so案例 331
22.3 逆向so文件 332
22.3.1 获取应用的so文件 332
22.3.2 用IDA进行调试设置 336
22.3.3 IDA调试的流程总结 343
22.4 用IDA解决反调试问题 343
22.5 本章小结 355
第23章 逆向加固应用 356
23.1 逆向加固应用的思路 356
23.2 获取解密之后的dex文件 359
23.3 分析解密之后的dex文件内容 364
23.4 逆向方法 369
23.5 逆向测试 373
23.6 逆向加固应用的方法总结 374
23.7 本章小结 376
第24章 逆向应用经典案例分析 377
24.1 加壳原理分析 377
24.2 脱壳过程 380
24.3 如何还原应用 393
24.4 脱壳经验总结 394
24.5 本章小结 395
第25章 Android中常见漏洞分析 396
25.1 解压文件漏洞分析 396
25.1.1 漏洞场景 396
25.1.2 漏洞原因分析 398
25.1.3 漏洞案例分析 398
25.1.4 漏洞修复 399
25.1.5 漏洞总结 400
25.2 录屏授权漏洞分析 400
25.2.1 漏洞场景 400
25.2.2 漏洞原因分析 402
25.2.3 漏洞修复 402
25.2.4 漏洞总结 403
25.3 本章小结 403
第26章 文件加密病毒Wannacry样本分析 404
26.1 病毒样本分析 404
26.2 获取密码 405
26.3 文件解密 409
26.4 病毒分析报告 414
26.5 本章小结 414



有问题微信扫码联系

推荐

Understand China
桂ICP备20004708号-4