𝔖 Scriptorium
✦   LIBER   ✦

📁

iOS应用逆向与安全

✍ Scribed by 刘培庆


Tongue
Chinese
Leaves
402
Category
Library

⬇  Acquire This Volume

No coin nor oath required. For personal study only.

✦ Synopsis


《iOS应用逆向与安全》从正向开发、工具的使用、逆向实战及安全保护等方面,对iOS应用的逆向与安全进行了讲解。本书内容包括基本概念、逆向环境的准备、常用逆向分析工具、类的结构、App签名、Mach-O文件格式、hook原理等,并通过在越狱平台和非越狱平台上的逆向分析实例,带领读者学习逆向分析的思路和方法。在应用安全及保护方面,本书内容涉及网络传输、安全检测、代码混淆等。

《iOS应用逆向与安全》适合高校计算机相关专业的学生、iOS开发工程师、逆向工程师、越狱开发工程师、iOS安全工程师及应用安全审计人员阅读参考。

✦ Table of Contents


第1章 概述

1.1 逆向工程简介 1

1.1.1 iOS逆向学习基础 1

1.1.2 iOS逆向的流程 1

1.1.3 iOS逆向使用的工具 2

1.1.4 iOS逆向的应用场景 2

1.2 应用面临的安全风险 2

1.2.1 静态修改文件 3

1.2.2 动态篡改逻辑 3

1.2.3 协议分析 3

1.3 应用保护手段 3

1.3.1 数据加密 3

1.3.2 程序混淆 4

1.3.3 安全监测 4

1.4 本书工具 4

1.4.1 效率工具 4

1.4.2 实用工具 5

1.4.3 逆向工具 5

第2章 越狱设备

2.1 什么是越狱 6

2.2 Cydia 6

2.3 SSH 7

2.3.1 安装OpenSSH 8

2.3.2 配置dropbear 10

2.3.3 修改默认密码 11

2.3.4 公钥登录 11

2.3.5 通过USB登录 13

2.4 iOS系统结构 14

2.4.1 文件目录 15

2.4.2 文件权限 17

2.5 Cydia Substrate 18

2.5.1 MobileHooker 19

2.5.2 MobileLoader 19

2.5.3 Safe mode 20

2.6 越狱必备工具 21

2.6.1 adv-cmds 21

2.6.2 appsync 21

2.6.3 iFile 21

2.6.4 scp 22

第3章 逆向工具详解

3.1 应用解密 23

3.1.1 dumpdecrypted 23

3.1.2 Clutch 28

3.1.3 小结 30

3.2 class-dump 30

3.2.1 class-dump的使用 30

3.2.2 class-dump的原理 33

3.2.3 OC和Swift混编 40

3.3 Reveal 41

3.3.1 开发集成Reveal 41

3.3.2 越狱注入Reveal 42

3.4 Cycript 43

3.4.1 开发集成Cycript 44

3.4.2 使用Cycript越狱 45

3.4.3 使用Cycript分析应用 46

3.4.4 Cycript的高级用法 49

3.5 抓包 52

3.5.1 Charles抓包 53

3.5.2 修改网络请求 55

3.5.3 HTTPS抓包 59

3.5.4 Wireshark抓包 60

第4章 开发储备

4.1 App的结构及构建 66

4.1.1 获取应用包 66

4.1.2 应用包的格式 71

4.1.3 应用的构建过程 72

4.2 界面结构和事件传递 76

4.2.1 界面的组成 76

4.2.2 界面事件的响应 79

4.3 类与方法 83

4.3.1 类与方法的底层实现 84

4.3.2 运行时类的结构 89

4.3.3 消息机制 91

4.3.4 runtime的应用 94

4.4 App签名 98

4.4.1 配置Xcode签名 98

4.4.2 App签名的原理 100

4.4.3 重签名 107

第5章 分析与调试

5.1 静态分析 109

5.1.1 Hopper 109

5.1.2 IDA 118

5.1.3 静态库分析 125

5.2 动态调试 128

5.2.1 LLDB调试 128

5.2.2 LLDB解密 141

5.2.3 用Xcode调试第三方应用 144

5.2.4 LLDB的高级调试技巧 151

5.3 Theos 167

5.3.1 Theos的安装 168

5.3.2 Theos的基本应用 168

5.3.3 Theos的高级应用 172

5.4 MonkeyDev 177

5.4.1 安装MonkeyDev 178

5.4.2 Logos Tweak 179

5.4.3 CaptainHook Tweak 181

5.4.4 Command-line Tool 185

第6章 逆向进阶

6.1 程序加载 186

6.1.1 dyld简介 186

6.1.2 dyld加载流程 187

6.2 Mach-O文件格式 206

6.2.1 Mach-O文件的基本格式 206

6.2.2 Mach-O头部 208

6.2.3 Load Command 210

6.2.4 虚拟地址和文件偏移 214

6.2.5 懒加载和非懒加载 217

6.2.6 Code Signature 223

6.3 ARM汇编 228

6.3.1 ARM架构和指令集 228

6.3.2 AArch64寄存器 229

6.3.3 指令集编码 231

6.3.4 AArch64指令 233

6.3.5 栈和方法 236

6.3.6 Objective-C汇编 245

6.4 hook 247

6.4.1 Method Swizzle 247

6.4.2 fishhook 248

6.4.3 Cydia Substrate 253

6.4.4 Swift hook 256

6.5 动态库 259

6.5.1 编译和注入 260

6.5.2 导出和隐藏符号 260

6.5.3 C++ 和OC动态库 263

6.5.4 其他常见问题 267

第7章 实战演练

7.1 越狱设备分析 270

7.1.1 分析准备 270

7.1.2 开始分析 272

7.1.3 编写Tweak 284

7.1.4 安装与小结 287

7.2 非越狱设备分析 288

7.2.1 创建MonkeyDev项目 288

7.2.2 非越狱逆向实战 291

7.2.3 编写hook代码 303

7.2.4 制作非越狱Pod 304

7.2.5 小结 308

7.3 Frida实战应用 309

7.3.1 Frida的安装 309

7.3.2 Frida的初级使用 311

7.3.3 Frida的高级使用 319

7.3.4 小结 326

第8章 安全保护

8.1 数据加密 327

8.1.1 本地存储加密 328

8.1.2 网络传输加密 328

8.1.3 字符串加密 333

8.2 静态混淆 341

8.2.1 宏定义 342

8.2.2 二进制修改 347

8.3 动态保护 349

8.3.1 反调试 349

8.3.2 反反调试 352

8.3.3 反注入 359

8.3.4 hook检测 360

8.3.5 完整性校验 361

8.4 代码混淆 363

8.4.1 什么是LLVM 363

8.4.2 下载和编译LLVM 364

8.4.3 开发和调试Pass 366

8.4.4 OLLVM源代码分析 373

8.4.5 替换Xcode编译器 379

8.4.6 静态库混淆 389

8.5 本章总结 390

✦ Subjects


ios, reverse engineering, chinese


📜 SIMILAR VOLUMES


有趣的二进制: 软件安全与逆向分析
✍ [ 日] 爱甲健二 📂 Library 📅 2015 🏛 人民邮电出版社 🌐 Chinese

<p>《有趣的二进制:软件安全与逆向分析》通过逆向工程,揭开人们熟知的软件背后的机器语言的秘密,并教给读者读懂这些二进制代码的方法。理解了这些方法,技术人员就能有效地Debug,防止软件受到恶意攻击和反编译。本书涵盖的技术包括:汇编与反汇编、调试与反调试、缓冲区溢出攻击与底层安全、钩子与注入、Metasploit 等安全工具。</p> <p>《有趣的二进制:软件安全与逆向分析》适合对计算机原理、底层或计算机安全感兴趣的读者阅读。</p>

信息安全原理与应用
✍ 王昭,袁春编著 📂 Library 📅 2010 🏛 电子工业出版社 🌐 Chinese

<p>《信息安全原理与应用》涉及密码编码与网络安全从技术到管理的方方面面,以数据机密性、数据完整性、不可否认性、鉴别和访问控制五大类安全服务和安全模型为线索,介绍了信息安全的基本原理。以密码编码与密码分析相结合的思路,比较完整地介绍了密码编码学的基本原理和算法实现,包括:古典密码、现代对称密码、公钥密码和散列函数,并讨论了密码算法实际应用中的一些问题,如密钥长度、密钥管理、硬件加密和软件加密,以及算法应用中曾经出现的教训等。在此基础上,介绍了相关综合应用,包括电子邮件的安全、网络安全协议和数据库安全。在网络安全与系统安全方面讨论了网络入侵与攻击、入侵检测、防火墙和计算机病毒防范。此外也介绍了信

软件安全分析与应用
✍ 苏璞睿; 应凌云; 杨轶 📂 Library 📅 2017 🏛 清华大学出版社 🌐 Chinese

本书作者根据其多年的软件安全研究成果,对软件安全分析方法进行了梳理和总结。全书由易到难、由浅入深地全面介绍了二进制程序分析所需的基础知识和基础分析工具,程序切片、符号执行、模糊测试、污点分析等软件分析基础方法,以及相关分析方法在恶意代码分析、软件漏洞挖掘分析、网络协议逆向分析、移动智能终端应用软件安全分析等方面的应用。本书不仅介绍了相关方法和原理,还分析了当前国际上相关的主流工具和系统,可供读者学习和参考;同时,在安全分析应用方面,也结合了大量的真实案例,有助于读者进一步深刻理解相关方法与技术的原理和价值。本书不仅可作为网络空间安全专业本科生、研究生相关课程的教材,也可供对软件安全感兴趣的广大

网络安全技术与应用实践
✍ 刘远生 编 📂 Library 📅 2010 🏛 清华大学出版社 🌐 Chinese

<p>《网络安全技术与应用实践》从网络系统安全管理和应用的角度出发,重点介绍网络安全技术及其应用,各章在介绍网络安全技术后均配以相应的实践内容或应用实例,体现培养读者网络安全及管理技术的应用能力和实践操作技能的特色。《网络安全技术与应用实践》对原理、技术难点的介绍适度,将理论知识和实际应用紧密地结合在一起,典型实例的应用性和可操作性强;章末配有习题和思考题,便于学生学习和实践,内容安排合理,重点突出,文字简明,语言通俗易懂。</p> <p>《网络安全技术与应用实践》可作为普通高校计算机、通信、信息安全等专业的应用型本科、高职高专或成人教育学生的网络安全实践教材,也可作为网络管理人员、网络工程

Oracle数据库应用与安全管理
✍ 闫薇 📂 Library 📅 2015 🏛 清华大学出版社 🌐 Chinese

<p>闫薇编著的《Oracle数据库应用与安全管理》精选数据库原理和Oracle数据库的核心内容,将抽象的理论知识用丰富的图示和通俗易懂的语言描述出来,采用案例教学的方式撰写,合理地组织学习单元,在实例上侧重实用性和启发性。 本书内容丰富、深入浅出、通俗易懂、注重实用。</p> <p>全书以Oracle 11g for Windows 7为平台,详细地讲解了数据库系统原理、Oracle数据库应用及安全管理等内容。 数据库系统原理部分主要介绍数据库系统的基本概念和基本理论,具体包括数据库系统的发展历程、数据库系统的结构、数据模型、关系代数运算、关系数据库标准语言SQL关系数据库规范化理论、数据