Joshua J. Drake
是国际知名黑客,Accuvant LABS公司研究部门总监,曾在世界著名黑客大赛Pwn2Own上攻陷IE浏览器中的Java插件,曾发现Google Glass漏洞。
Pau Oliva Fora
是viaForensics公司的移动安全工程师,为主流Android OEM提供咨询服务。
Zach Lanier
是Duo Security公司的资深安全研究员,在信息安全的不同领域中有十多年的工作经验。
Collin Mulliner
是美国东北大学的博士后研究员,主要研究兴趣是移动和嵌入式系统的安全和隐私,重点关注移动智能手机。
Stephen A. Ridley
是一位安全研究员与技术作者,在软件开发、软件安全和逆向工程领域有十几年的经验。
Georg Wicherski
是CrowdStrike公司的资深安全研究员。
第1章 纵观Android生态圈1
1.1 了解Android的根源1
1.1.1 公司历史1
1.1.2 版本历史2
1.1.3 审视Android设备家族3
1.1.4 主体开源5
1.2 了解Android的利益相关者6
1.2.1 谷歌7
1.2.2 硬件厂商7
1.2.3 移动通信运营商9
1.2.4 开发者9
1.2.5 用户10
1.3 理解生态圈的复杂性11
1.3.1 碎片化问题12
1.3.2 兼容性13
1.3.3 更新问题13
1.3.4 安全性与开放性15
1.3.5 公开披露16
1.4 小结17
第2章 Android的安全设计与架构18
2.1 理解Android系统架构18
2.2 理解安全边界和安全策略执行19
2.2.1 Android沙箱19
2.2.2 Android权限22
2.3 深入理解各个层次25
2.3.1 Android应用层25
2.3.2 Android框架层28
2.3.3 DalvikVM29
2.3.4 用户空间原生代码层30
2.3.5 内核36
2.4 复杂的安全性,复杂的漏洞利用41
2.5 小结42
第3章 root Android设备43
3.1 理解分区布局43
3.2 理解引导过程45
3.3 引导加载程序的锁定与解锁47
3.4 对未加锁引导加载程序的设备进行root50
3.5 对锁定引导加载程序的设备进行root52
3.5.1 在已启动系统中获取root权限52
3.5.2 NAND 锁、临时性root与永久性root53
3.5.3 对软root 进行持久化55
3.6 历史上的一些已知攻击56
3.6.1 内核:Wunderbar/asroot56
3.6.2 恢复:Volez57
3.6.3 udev:Exploid57
3.6.4 adbd:RageAgainstTheCage58
3.6.5 Zygote:Zimperlich和Zysploit58
3.6.6 ashmem:KillingInTheName-
Of 和psneuter58
3.6.7 vold:GingerBreak59
3.6.8 PowerVR:levitator59
3.6.9 libsysutils:zergRush60
3.6.10 内核:mempodroid60
3.6.11 文件权限和符号链接相关的攻击61
3.6.12 adb 恢复过程竞争条件漏洞61
3.6.13 Exynos4:exynos-abuse62
3.6.14 Diag:lit/diaggetroot62
3.7 小结63
第4章 应用安全性评估64
4.1 普遍性安全问题64
4.1.1 应用权限问题64
4.1.2 敏感数据的不安全传输66
4.1.3 不安全的数据存储67
4.1.4 通过日志的信息泄露68
4.1.5 不安全的IPC端点69
4.2 案例分析:移动安全应用71
4.2.1 初步剖析71
4.2.2 静态分析72
4.2.3 动态分析87
4.2.4 攻击95
4.3 案例分析:SIP客户端97
4.3.1 了解Drozer97
4.3.2 发现漏洞98
4.3.3 snarfing99
4.3.4 注入102
4.4 小结104
第5章 理解Android的攻击面105
5.1 攻击基础术语105
5.1.1 攻击向量106
5.1.2 攻击面106
5.2 对攻击面进行分类107
5.2.1 攻击面属性108
5.2.2 分类决策108
5.3 远程攻击面108
5.3.1 网络概念109
5.3.2 网络协议栈112
5.3.3 暴露的网络服务113
5.3.4 移动技术114
5.3.5 客户端攻击面115
5.3.6 谷歌的基础设施119
5.4 物理相邻123
5.4.1 无线通信123
5.4.2 其他技术127
5.5 本地攻击面128
5.5.1 探索文件系统128
5.5.2 找到其他的本地攻击面129
5.6 物理攻击面133
5.6.1 拆解设备133
5.6.2 USB134
5.6.3 其他物理攻击面137
5.7 第三方修改137
5.8 小结137
第6章 使用模糊测试来挖掘漏洞139
6.1 模糊测试的背景139
6.1.1 选定目标140
6.1.2 构造畸形输入140
6.1.3 处理输入141
6.1.4 监控结果142
6.2 Android上的模糊测试142
6.3 对Broadcast Receiver进行模糊测试143
6.3.1 选定目标143
6.3.2 生成输入144
6.3.3 传递输入145
6.3.4 监控测试145
6.4 对Android上的Chrome进行模糊测试147
6.4.1 选择一种技术作为目标148
6.4.2 生成输入149
6.4.3 处理输入151
6.4.4 监控测试152
6.5 对USB攻击面进行模糊测试155
6.5.1 对USB进行模糊测试的挑战155
6.5.2 选定目标模式155
6.5.3 生成输入156
6.5.4 处理输入158
6.5.5 监控测试158
6.6 小结159
第7章 调试与分析安全漏洞161
7.1 获取所有信息161
7.2 选择一套工具链162
7.3 调试崩溃Dump163
7.3.1 系统日志163
7.3.2 Tombstone164
7.4 远程调试165
7.5 调试Dalvik代码166
7.5.1 调试示例应用167
7.5.2 显示框架层源代码168
7.5.3 调试现有代码170
7.6 调试原生代码173
7.6.1 使用NDK进行调试174
7.6.2 使用Eclipse进行调试177
7.6.3 使用AOSP进行调试179
7.6.4 提升自动化程度183
7.6.5 使用符号进行调试184
7.6.6 调试非AOSP设备189
7.7 调试混合代码190
7.8 其他调试技术191
7.8.1 调试语句191
7.8.2 在设备上进行调试191
7.8.3 动态二进制注入192
7.9 漏洞分析193
7.9.1 明确问题根源193
7.9.2 判断漏洞可利用性205
7.10 小结205
第8章 用户态软件的漏洞利用206
8.1 内存破坏漏洞基础206
8.1.1 栈缓冲区溢出206
8.1.2 堆的漏洞利用209
8.2 公开的漏洞利用215
8.2.1 GingerBreak215
8.2.2 zergRush218
8.2.3 Mempodroid221
8.3 Android浏览器漏洞利用222
8.3.1 理解漏洞222
8.3.2 控制堆224
8.4 小结227
第9章 ROP漏洞利用技术228
9.1 历史和动机228
9.2 ARM 架构下的ROP 基础230
9.2.1 ARM 子函数调用231
9.2.2 将gadget组成ROP链232
9.2.3 识别潜在的gadget234
9.3 案例分析:Android 4.0.1链接器235
9.3.1 迁移栈指针236
9.3.2 在新映射内存中执行任意代码237
9.4 小结240
第10章 攻击内核242
10.1 Android 的Linux内核242
10.2 内核提取242
10.2.1 从出厂固件中提取内核243
10.2.2 从设备中提取内核245
10.2.3 从启动镜像中提取内核246
10.2.4 解压内核247
10.3 运行自定义内核代码247
10.3.1 获取源代码247
10.3.2 搭建编译环境250
10.3.3 配置内核251
10.3.4 使用自定义内核模块252
10.3.5 编译自定义内核254
10.3.6 制作引导镜像257
10.3.7 引导自定义内核258
10.4 调试内核262
10.4.1 获取内核崩溃报告263
10.4.2 理解Oops信息264
10.4.3 使用KGDB进行Live调试267
10.5 内核漏洞利用271
10.5.1 典型Android内核271
10.5.2 获取地址273
10.5.3 案例分析274
10.6 小结283
第11章 攻击RIL无线接口层284
11.1 RIL简介284
11.1.1 RIL架构285
11.1.2 智能手机架构285
11.1.3 Android电话栈286
11.1.4 对电话栈的定制287
11.1.5 RIL 守护程序287
11.1.6 用于vendor-ril的API289
11.2 短信服务290
11.2.1 SMS消息的收发290
11.2.2 SMS消息格式291
11.3 与调制解调器进行交互293
11.3.1 模拟调制解调器用于模糊测试293
11.3.2 在Android中对SMS进行模糊测试295
11.4 小结302
第12章 漏洞利用缓解技术303
12.1 缓解技术的分类303
12.2 代码签名304
12.3 加固堆缓冲区305
12.4 防止整数溢出305
12.5 阻止数据执行306
12.6 地址空间布局随机化308
12.7 保护栈310
12.8 保护格式化字符串310
12.9 只读重定位表312
12.10 沙盒313
12.11 增强源代码313
12.12 访问控制机制315
12.13 保护内核316
12.13.1 指针和日志限制316
12.13.2 保护零地址页317
12.13.3 只读的内存区域318
12.14 其他加固措施318
12.15 漏洞利用缓解技术总结320
12.16 禁用缓解机制322
12.16.1 更改personality322
12.16.2 修改二进制文件323
12.16.3 调整内核323
12.17 对抗缓解技术323
12.17.1 对抗栈保护324
12.17.2 对抗ASLR324
12.17.3 对抗数据执行保护324
12.17.4 对抗内核级保护机制325
12.18 展望未来325
12.18.1 进行中的官方项目325
12.18.2 社区的内核加固工作326
12.18.3 一些预测326
12.19 小结327
第13章 硬件层的攻击328
13.1 设备的硬件接口328
13.1.1 UART 串行接口329
13.1.2 I2C、SPI 和单总线接口331
13.1.3 JTAG334
13.1.4 寻找调试接口343
13.2 识别组件353
13.2.1 获得规格说明书353
13.2.2 难以识别的组件354
13.3 拦截、监听和劫持数据355
13.3.1 USB355
13.3.2 I2C、SPI和UART串行端口359
13.4 窃取机密和固件364
13.4.1 无损地获得固件364
13.4.2 有损地获取固件365
13.4.3 拿到dump文件后怎么做368
13.5 陷阱371
13.5.1 定制的接口371
13.5.2 二进制私有数据格式371
13.5.3 熔断调试接口372
13.5.4 芯片密码372
13.5.5 bootloader密码、热键和哑终端372
13.5.6 已定制的引导过程373
13.5.7 未暴露的地址线373
13.5.8 防止逆向的环氧树脂373
13.5.9 镜像加密、混淆和反调试373
13.6 小结374
附录A 工具375
附录B 开源代码库386
《工业互联网推动中小企业包容性增长的内在逻辑》内容简介:本书紧扣“把握构建新发展格局的时代使命,立足中小企业生力军主体,依
《唐宋八大家文钞》内容简介:本书以“醇正”二字为标准。共十九卷,收“唐宋八大家”韩愈、柳宗元、欧阳修、苏洵、苏轼、苏辙、曾
"HackosandRedishwiselyofferusthethreethingswemostneedaboutuserandtaskanalysis:pr...
《智慧工厂技术与应用》内容简介:智慧工厂是现代工厂信息化发展的新阶段,是在数字化工厂的基础上,利用物联网技术和设备监控技术
清晰、透彻和严谨是本书与其他数字通信教材的显著区别。本书由国际公认的专家和屡获殊荣的学者编写,是数字通信领域的基础性教材
《陶渊明(中华先贤人物故事汇)【中宣部2022年主题出版重点出版物】》内容简介:本书是陶渊明我国文学史上的著名诗人,也是思想文
本书是一本经典著作,由众多卓越的软件和设计专业人员的论文及访谈录组成。本书的作者从不同角度,通过大量生动的实例,说明了什
JakartaTomcat是世界上使用最广的Javaservlet与JSP平台。除了作为Sun公司servlet及JSP规格的参考实现之外,在几十万个网站中也占
《PPT演绎:故事化设计》第1版以其出色的销售成绩位列亚马逊网站畅销书榜,并且凭借其影响力成为《纽约时报》、《华尔街日报》和《
《国际平面设计基础教程6:PRINT&FINISH印前印后》的每一个章节都主要讨论各种各样的印刷工艺和后期加工工艺。同时,章节中尽可能
《奇点艺术》内容简介:艺术和科技领域的划时代作品,世界艺术专家、“奇点艺术”理念提出者对未来艺术的蜕变进行可靠的演绎和预测
《中国古典舞学科建设综论》内容简介:这部“综论”是舞蹈高等教育的教学用书。在中国当代舞蹈教育的学科建设中,“中国古典舞”是
《银行内部控制对信贷风险的影响研究》内容简介:本书依据信息不对称、委托代理、内部控制等理论,结合中国信贷市场制度背景,分析
"DatabaseManagementSystems"providescomprehensiveandup-to-datecoverageofthefundam...
《破坏之王》内容简介:网际空间的发展带来了机遇,也带来了威胁,ddos是其中最具破坏力的攻击之一。本书从不同角度对ddos进行了介
图像序列运动分析技术与应用 本书特色 本书较为全面地介绍了图像序列运动分析中光流与场景流计算的有关原理和技术方法,并探讨了相关应用。主要内容包括变分光流计算技术...
天亮了一只鸟落在船上蝴蝶从水面飞过湖畔边的蜘蛛网里,一只蜘蛛正在和天牛扭打野鸭悠然自得地从水面游走傍晚了月亮倒映在湖面上
《SoftwareDesign中文版03》的主题为:sed/AWK入门和Mac开发环境。特辑1详细讲解了sed与AWK的基础与使用方法、日志分析、ShellSc
《我是微商4》内容简介:本书是微商界超级畅销书“我是微商”系列的第4本,是三位作者服务了2000多家国内微商品牌之后,总结得出的
《自我催眠术(第2版)》内容简介:本书旨在解决日益严重的心理亚健康问题。针对疲劳感、失眠、冷漠、怯场、焦虑、压力、孤独、强迫