内容简介
                                                        在网络安全领域,仿真和模糊测试是提升安全性的核心技术,但有效应用它们颇具
挑战。本书借助真实案例和实操示例,助力读者掌握仿真与模糊测试的基础概念,开展漏洞研究,提升发现软件潜在安全漏洞的能力。
本书共 12 章,开篇明确适用读者与所需预备知识,介绍后续使用工具,接着阐述仿
真发展历史、QEMU 系统仿真器及其执行模式与模糊测试等基础内容。随后,通过多个
案例,如结合 QEMU 与 AFL 识别 VLC 安全漏洞、三星 Exynos 基带漏洞分析、OpenWrt全系统模糊测试及针对 ARM 架构的模糊测试,以及 iOS、Android 系统的相关测试等,深入讲解仿真与模糊测试的实际应用。最后,总结了模糊测试的研究发现、影响及未来方向。
                                                    
目录
                                                        第 1 部分 基础知识
第 1 章 本书适用读者 2
11 本书的读者对象  3 
12 先决条件  4 
13 自主内容选择  4 
14 入门指导  5 
15 现在正式开始  10 
151 QEMU 基本插桩  11 
152 OpenWrt 全系统仿真  11 
153 三星 Exynos 基带  11 
154 iOS 和 Android 系统  11 
16 小结  12 
第 2 章 仿真的发展历史 13
21 什么是仿真  14 
22 为何需要仿真  14 
23 除 QEMU 以外的仿真工具  22 
231 MAME  23 
232 Bochs  24 
233 RetroPie  24 
24 仿真与虚拟化在网络安全历史中的作用  24 
241 Anubis  25 
242 TEMU  25 
243 Ether  26 
244 Cuckoo 沙箱  26 
245 商业化解决方案—VirusTotal 和 Joe Sandbox  26 
25 小结  27 
第 3 章 深入探究 QEMU 28
31 使用仿真方法研究物联网(IoT)设备  28 
32 代码结构  29 
33 QEMU 仿真  31 
331 QEMU IR  31 
332 深入了解 QEMU 架构  35 
34 QEMU 的扩展和修改  38 
341 Avatar2简要示例  39 
342 PANDA  41 
35 小结  41 
第 2 部分 仿真和模糊测试
第 4 章 QEMU 执行模式和模糊测试 44
41 QEMU 用户模式  44 
42 QEMU 全系统模式  50 
43 模糊测试和分析技术  52 
431 程序语义的罗塞塔石碑  53 
432 模糊测试技术  63 
44 American Fuzzy Lop 和 American Fuzzy Lop++  65 
441 AFL 和 AFL++相较于自研模糊测试工具的优势  65 
442 使用 AFL 和 AFL++进行模糊测试  66 
443 对 ARM 二进制文件进行模糊测试  69 
45 总结  72 
第 5 章 一个广为人知的组合:AFL + QEMU = CVE 73
51 发现漏洞真的那么容易吗  74 
511 下载和安装 AFL++  75 
512 准备一个易受攻击的 VLC 实例  75 
513 VLC 漏洞利用  80 
52 全系统模糊测试—引入 TriforceAFL  92 
53 总结  97 
54 延伸阅读  97 
55 附录—修改 Triforce 以实现测试用例的隔 98 
第 6 章 修改 QEMU 以进行基本的插桩 101
61 添加新的 CPU  102 
62 仿真嵌入式固件  103 
63 对 DMA 外设进行逆向工程  106 
64 使用 Avatar2仿真 UART 以进行固件调试—可视化输出  108 
65 总结  110 
第 3 部分 高级概念
第 7 章 真实案例研究—三星 Exynos 基带 112
71 手机架构的速成课程  112 
711 基带  113 
712 基带 CPU 家族  114 
713 应用处理器和基带接口  116 
714 深入了解 Shannon 系统  116 
715 关于 GSM/3GPP/LTE 协议规范的说明  117 
72 配置 FirmWire 以验证漏洞  118 
721 CVE-2020-25279—仿真器模糊测试  120 
722 CVE-2020-25279—OTA 漏洞利用  126 
73 总结  132 
第 8 章 案例研究—OpenWrt 全系统模糊测试 133
81 OpenWrt  133 
82 构建固件  134 
821 在 QEMU 中测试固件  136 
822 提取并准备内核  137 
83 对内核进行模糊测试  139 
84 崩溃后的核心转储分析实验  141 
85 总结  142 
第 9 章 案例研究—针对 ARM 架构的 OpenWrt 系统模糊测试 144
91 仿真 ARM 架构以运行 OpenWrt 系统  144 
92 为 ARM 架构安装 TriforceAFL  147 
93 在基于 ARM 架构的 OpenWrt 中运行 TriforceAFL  152 
94 复现崩溃情况  154 
95 总结  156 
第 10 章 终至此处—iOS 全系统模糊测试 158
101 iOS 仿真的简要历史  159 
102 iOS 基础  160 
1021 启动 iOS 所需的条件  161 
1022 代码签名  161 
1023 属性列表文件和权限  162 
1024 二进制文件编译  162 
1025 IPSW 格式和内核用研究  163 
103 设置 iOS 仿真器  163 
1031 准备环境  164 
1032 构建仿真器  165 
1033 启动准备工作  165 
1034 在 QEMU 中启动 iOS  168 
104 准备用于启动模糊测试的测试框架  169 
105 Triforce 针对 iOS 的驱动程序修改  173 
106 总结  179 
第 11 章 意外转机—对 Android 库的模糊测试 181
111 Android OS 和架构介绍  182 
112 使用 Sloth 对 Android 库进行模糊测试  184 
1121 介绍 Sloth 的机制  185 
1122 AFL 覆盖能力介绍  186 
1123 运行 ELF 链接器  188 
1124 运行 LibFuzzer  190 
1125 解决 Sloth 模糊测试方法的问题  191 
1126 运行 Sloth  191 
113 总结  198 
第 12 章 总结与结语 199
                                                    
                      

                   


















