《macOS软件安全与逆向分析 macOS软件安全第一书》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:丰生强,网名非虫著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2017
  • ISBN:9787115460639
  • 页数:461 页
图书介绍:本书将深入介绍macOS系统的软件安全、逆向分析与加密解密技术,主要包括macOS软件的开发基础、macOS系统工作机制、macOS软件调试接口与机制、二进制程序的格式、反汇编技术、逆向与动态调试技术、反破解技术以及系统安全与反病毒。 本书适合所有macOS平台软件开发工程师、信息安全专业学生、信息安全专业从业人员阅读学习。

第1章 如何分析macOS软件 1

1.1 分析环境搭建 1

1.1.1 安装Clang 1

1.1.2 HT Editor 2

1.1.3 Homebrew 6

1.2 第一个macOS程序 8

1.3 使用HT Editor进行破解 10

1.4 本章小结 14

第2章 系统安全架构 15

2.1 系统架构概述 15

2.1.1 shell环境 16

2.1.2 目录结构 16

2.1.3 文件权限 17

2.2 系统调用 17

2.3 进程间通信 18

2.4 安全框架 19

2.4.1 CommonCrypto 19

2.4.2 Keychain 20

2.4.3 安全传输 25

2.5 系统安全机制 28

2.5.1 FileVault 2 29

2.5.2 代码签名 31

2.5.3 ASLR/kASLR 33

2.5.4 沙盒 37

2.5.5 Rootless 39

2.5.6 Gatekeeper 42

2.6 软件安全开发建议 50

2.7 本章小结 50

第3章 软件开发基础 51

3.1 Objective-C语言 51

3.1.1 开发环境 51

3.1.2 Objective-C语言特性 54

3.1.3 内存管理 60

3.2 Swift语言 65

3.2.1 Playground 65

3.2.2 Swift语法简介 67

3.3 其他语言 88

3.4 框架 88

3.4.1 框架的开发与使用 88

3.4.2 在Objective-C中使用Swift编写的框架 93

3.4.3 常用的框架 94

3.5 第三方开发工具 94

3.5.1 Qt Creator 94

3.5.2 Xamarin Studio 95

3.5.3 JetBrains系列开发工具 96

3.5.4 Visual Studo Code 97

3.6 完整的Cocoa GUI程序 97

3.6.1 创建工程 98

3.6.2 Storyboard和xib 98

3.6.3 Outlet和Action机制 101

3.7 本章小结 103

第4章 软件内幕 104

4.1 可执行文件 105

4.2 下载与安装软件 106

4.2.1 免费与付费软件 106

4.2.2 安装软件 106

4.3 Bundle 107

4.3.1 Bundle目录结构 107

4.3.2 在代码中访问Bundle 109

4.4 通用二进制格式 109

4.5 Mach-O文件格式 112

4.5.1 Mach-O简介 112

4.5.2 Mach-O头部 113

4.5.3 加载命令 116

4.5.4 LC_CODE_SIGNATURE 117

4.5.5 LC_SEGMENT 129

4.6 动态库 131

4.6.1 构建动态库 132

4.6.2 dyld 135

4.6.3 动态库的加载 136

4.7 静态库 151

4.7.1 构建静态库 152

4.7.2 静态库格式 154

4.7.3 管理静态库 156

4.8 框架 156

4.8.1 构建框架 157

4.8.2 框架的使用与安装 158

4.9 pkg 160

4.9.1 构建pkg 160

4.9.2 pkg的安装与卸载 167

4.9.3 pkg文件格式 170

4.9.4 破解pkg 173

4.10 dmg 177

4.10.1 构建dmg 177

4.10.2 管理dmg 179

4.11 本章小结 181

第5章 汇编基础 182

5.1 搭建汇编语言开发环境 182

5.2 Hello World代码概览 185

5.3 伪指令 186

5.4 x86_64汇编基础 189

5.4.1 寄存器 190

5.4.2 汇编语法 192

5.4.3 数据传送指令 195

5.4.4 控制转移指令 195

5.4.5 栈操作指令 196

5.4.6 运算指令 197

5.5 与其他模块的交互 197

5.5.1 与C语言互相调用 197

5.5.2 使用系统调用 200

5.6 本章小结 201

第6章 软件静态分析 202

6.1 代码分析与二进制分析 202

6.2 分析工具 203

6.2.1 Radare2 203

6.2.2 IDA Pro 207

6.2.3 Hopper 209

6.3 代码分析技术 211

6.3.1 行为分析 211

6.3.2 资源分析 212

6.3.3 数据分析 215

6.3.4 流量分析 216

6.3.5 API分析 218

6.4 反汇编工具的使用 219

6.4.1 反汇编 219

6.4.2 流程图 224

6.4.3 伪代码 225

6.5 破解Mach-O程序 227

6.5.1 定位修改点 227

6.5.2 修改程序 228

6.5.3 代码签名处理 230

6.5.4 重新打包 234

6.5.5 Keygen 234

6.6 本章小结 235

第7章 软件动态调试与跟踪 236

7.1 DTrace 236

7.1.1 DTrace简介 236

7.1.2 DTrace示例 236

7.2 D脚本语言 237

7.2.1 脚本加载方式 237

7.2.2 D语言与C语言 238

7.2.3 D语言语法 238

7.2.4 变量 241

7.2.5 参数传递 243

7.2.6 聚合 243

7.2.7 内置函数与变量 244

7.3 调试器 246

7.3.1 GDB 246

7.3.2 LLDB 248

7.3.3 IDA Pro 258

7.3.4 Hopper 267

7.4 本章小结 269

第8章 调试器开发 270

8.1 概述 270

8.2 开发环境搭建 270

8.2.1 安装所需环境 271

8.2.2 编译Saber 280

8.3 系统调试接口 285

8.3.1 ptrace简介 286

8.3.2 Mach调试接口 287

8.4 macOS异常机制 292

8.4.1 异常与Mach RPC/IPC 292

8.4.2 信号 300

8.5 调试器功能实现 302

8.5.1 调试器架构 302

8.5.2 开始调试 303

8.5.3 异常处理循环 305

8.5.4 读写被调试进程内存 308

8.5.5 获取基地址与入口点 309

8.5.6 单步调试 310

8.5.7 断点 311

8.5.8 继续运行 312

8.5.9 反汇编 313

8.6 本章小结 316

第9章 破解技术 317

9.1 软件破解步骤 317

9.2 常见的保护类型 318

9.2.1 试用版&序列号 319

9.2.2 License授权 319

9.2.3 重启验证与暗桩 330

9.2.4 防拷贝技术 338

9.2.5 网络验证 338

9.2.6 混合验证 342

9.3 App Store内购机制 342

9.4 Hook技术 351

9.4.1 DYLD_INSERT_LIBRARIES 352

9.4.2 SymbolTable Hook 355

9.4.3 Inline Hook 358

9.4.4 Method Swizzing 359

9.5 代码注入 362

9.5.1 静态注入 362

9.5.2 动态注入 365

9.5.3 Hook与注入框架 366

9.6 补丁&注册机 373

9.7 本章小结 375

第10章 反破解技术 376

10.1 反破解技术类型 376

10.2 校验保护 377

10.2.1 完整性检查 377

10.2.2 代码签名验证 377

10.2.3 沙盒检测 382

10.2.4 来源检测 386

10.3 代码保护 386

10.3.1 代码混淆 386

10.3.2 SMC 387

10.3.3 代码校验 387

10.3.4 壳保护 387

10.4 数据保护 391

10.4.1 数据清除 391

10.4.2 数据存储 395

10.4.3 数据传输 400

10.5 调试器对抗 408

10.5.1 调试器检测 408

10.5.2 反调试 410

10.6 Hook检测 411

10.6.1 Method Swizzing检测 411

10.6.2 dyld Hook检测 412

10.7 本章小结 413

第11章 游戏安全 414

11.1 游戏类型 414

11.2 游戏框架与引擎 414

11.2.1 SpriteKit与SceneKit 415

11.2.2 GameplayKit&ReplayKit 417

11.2.3 Cocos2d-x 417

11.2.4 Unity3D 419

11.3 游戏分析工具 422

11.3.1 静态分析工具 423

11.3.2 动态调试工具 424

11.3.3 资源修改工具 424

11.3.4 内存修改工具 427

11.4 游戏分析方法 427

11.4.1 对比分析 427

11.4.2 动态调试 429

11.4.3 静态补丁 429

11.4.4 动态补丁 430

11.5 防破解技术 430

11.6 本章小结 431

第12章 恶意软件与Rootkit 432

12.1 安全趋势 432

12.1.1 知名恶意软件 432

12.1.2 安全漏洞 433

12.1.3 安全软件 435

12.2 文件关联技术 435

12.3 软件自启动技术 439

12.3.1 Launch Items 439

12.3.2 Login Items 441

12.3.3 StartupItems 442

12.3.4 Login/Logout Hooks 444

12.3.5 Cron Jobs 444

12.3.6 Periodic Scripts 446

12.3.7 Authorization Plugins 446

12.3.8 Browser Extensions 447

12.3.9 Spotlight Importers 448

12.3.10 QuickLook Plugins 448

12.3.11 Kernel Extensions 448

12.4 Rootkit 449

12.4.1 文件隐藏 449

12.4.2 进程隐藏 451

12.4.3 内核模块隐藏 452

12.4.4 Root提权 453

12.5 本章小结 454

附录 macOS工具一览表 455

参考资料 460