SL89 9787121340994 9787115350183 9787115388933 9787115465795
iOS应用逆向与安全
《iOS应用逆向与安全》从正向开发、工具的使用、逆向实战及安全保护等方面,对iOS应用的逆向与安全进行了讲解。本书内容包括基本概念、逆向环境的准备、常用逆向分析工具、类的结构、App签名、Mach-O文件格式、hook原理等,并通过在越狱平台和非越狱平台上的逆向分析实例,带领读者学习逆向分析的思路和方法。在应用安全及保护方面,本书内容涉及网络传输、安全检测、代码混淆等。
《iOS应用逆向与安全》适合高校计算机相关专业的学生、iOS开发工程师、逆向工程师、越狱开发工程师、iOS安全工程师及应用安全审计人员阅读参考。
第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
逆向分析实战本书的主要内容为:数据的存储及表示形式、汇编语言入门、熟悉调试工具OllyDbg、PE工具详解、PE文件格式实例(包括加壳与脱壳工具的使用)、十六进制编辑器与反编译工具、IDA与逆向、逆向工具原理实现等。本书可以作为程序员、安全技术的研究人员、安全技术爱好者阅读。
第 1章 数据的存储及表示形式 1
1.1 进制及进制的转换 1
1.1.1 现实生活中的进制与计算机的二进制 1
1.1.2 进制的定义 2
1.1.3 进制的转换 2
1.2 数据宽度、字节序和ASCII码 4
1.2.1 数据的宽度 4
1.2.2 数值的表示范围 4
1.2.3 字节序 5
1.2.4 ASCII码 6
1.3 在OD中查看数据 6
1.4 编程判断主机字符序 11
1.4.1 字节序相关函数 11
1.4.2 编程判断主机字节序 11
1.5 总结 13
第 2章 汇编语言入门 14
2.1 x86汇编语言介绍 14
2.1.1 寄存器 15
2.1.2 在OD中认识寄存器 19
2.2 常用汇编指令集 20
2.2.1 指令介绍 20
2.2.2 常用指令介绍 21
2.3 寻址方式 36
2.4 总结 37
第3章 熟悉调试工具OllyDbg 39
3.1 认识OD调试环境 39
3.1.1 启动调试 39
3.1.2 熟悉OD窗口 42
3.2 OD中的断点及跟踪功能 46
3.2.1 OD中设置断点的方法 47
3.2.2 OD中跟踪代码的介绍 52
3.3 OD中的查找功能和编辑功能 53
3.3.1 OD的搜索功能 53
3.3.2 OD修改的编辑功能 55
3.4 OD中的插件功能 56
3.4.1 OD常用插件介绍 56
3.4.2 OD插件脚本编写 58
3.4.3 OD插件的开发 59
3.5 总结 63
第4章 PE工具详解 64
4.1 常用PE工具介绍 64
4.1.1 PE工具 64
4.1.2 Stud_PE介绍 65
4.1.3 PEiD介绍 66
4.1.4 LordPE介绍 66
4.2 PE文件格式详解 67
4.2.1 PE文件结构全貌介绍 68
4.2.2 详解PE文件结构 70
4.2.3 PE结构的三种地址 84
4.3 数据目录相关结构详解 90
4.3.1 导入表 91
4.3.2 导出表 104
4.3.3 重定位表 110
4.4 总结 118
第5章 PE文件格式实例 119
5.1 手写PE文件 119
5.1.1 手写PE文件的准备工作 119
5.1.2 用十六进制字节完成PE文件 120
5.2 手工对PE文件进行减肥 132
5.2.1 修改压缩节区 132
5.2.2 节表合并 135
5.2.3 结构重叠 140
5.2.4 小结 148
5.3 PE结构相关工具 148
5.3.1 增加节区 148
5.3.2 资源编辑 149
5.4 加壳与脱壳工具的使用 154
5.4.1 什么是壳 154
5.4.2 简单壳的原理 155
5.4.3 加壳工具与脱壳工具的使用 166
5.5 PE32+简介 180
5.5.1 文件头 180
5.5.2 可选头 181
5.6 总结 182
第6章 十六进制编辑器与反编译工具 183
6.1 C32Asm 183
6.1.1 文件的打开方式 183
6.1.2 反汇编模式 185
6.1.3 十六进制模式 189
6.2 WinHex 193
6.2.1 内存搜索功能 194
6.2.2 使用模板解析数据 196
6.2.3 完成一个简单的模板 198
6.3 其他十六进制编辑器 200
6.3.1 UltraEdit简介 200
6.3.2 010Editor简介 201
6.4 反编译工具介绍 202
6.4.1 DeDe反编译工具 202
6.4.2 VB反编译工具 206
6.4.3 .NET反编译工具 208
6.4.4 Java反编译工具 211
6.5 总结 211
第7章 IDA与逆向 213
7.1 IDA工具介绍 213
7.1.1 IDA的启动与关闭 213
7.1.2 IDA常用界面介绍 216
7.1.3 IDA的脚本功能 228
7.2 C语言代码逆向基础 231
7.2.1 函数的识别 232
7.2.2 if…else…结构分析 242
7.2.3 switch结构分析 244
7.2.4 循环结构分析 247
7.3 总结 252
第8章 逆向工具原理实现 253
8.1 PE工具的开发 253
8.1.1 GetProcAddress函数的使用 253
8.1.2 GetProcAddress函数的实现 254
8.2 调试工具的开发 238
8.2.1 常见的三种断点 259
8.2.2 调试API函数及相关结构体介绍 262
8.2.3 打造一个密码显示器 273
8.3 总结 277
参考文献 278
逆向工程实战
本书是一本涵盖x86、x64 和ARM 操作系统的逆向工程类图书,由浅入深地讲解了包括Windows内核模式代码的恶意软件和驱动程序、虚拟机保护技术等内容。作者通过大量真实案例和示例,提供了系统化的解决方案。
本书适合所有程序员和想要开始学习逆向工程的读者阅读。
坦白说,一开始我抱着试试看的心态买了这套书,毕竟市面上关于iOS逆向的书籍也不少。但当我翻开第一页,就被深深吸引住了。这本书的编写风格非常独特,它不像传统的教科书那样枯燥,而是用一种非常生动、有趣的方式来讲解复杂的概念。作者善于运用比喻和类比,将晦涩的技术问题变得易于理解。而且,书中的每一个例子都经过精心设计,逻辑清晰,操作步骤明确。我印象最深刻的是在讲解Decompilation(反编译)时,作者用了一个“侦探破案”的比喻,让我一下子就明白了反编译的本质和难点。读这本书的过程中,我经常会时不时地停下来,思考作者的思路,并且尝试去复现书中的每一个案例。这种互动式的学习体验,让我感觉自己不仅仅是在阅读,更是在进行一次深入的探索。这本书不仅能提升你的技术能力,更能激发你对iOS逆向工程的热情,让你在学习过程中充满乐趣。
评分这本书绝对是iOS逆向入门的宝典!我之前对iOS逆向一点概念都没有,看了市面上一些零散的教程,总是感觉抓不住重点,碎片化严重。拿到这本书后,简直 like finding a treasure! 作者的讲解非常系统,从最基础的汇编语言、Mach-O文件格式,再到iOS系统架构,一步步带你深入。尤其喜欢它对Objective-C和Swift运行时机制的剖析,那些底层原理讲得明明白白,让你知道代码是如何在内存中运转的。书中的案例也非常贴合实际,很多都是我们在日常开发中可能遇到的问题,比如如何Hook一些系统API,如何脱壳,如何分析加密的字符串。作者还分享了很多实用的工具,比如IDA Pro、Hopper、Frida等,并且详细讲解了如何配合这些工具进行分析。读完之后,我感觉自己对iOS应用的内部工作原理有了质的飞跃,不再是只会写代码的“搬砖工”,而是能理解代码运行的“工程师”了。强烈推荐给所有想深入了解iOS安全和逆向的开发者!
评分这本书给我最大的震撼在于它对“实战”两个字的完美诠释。不是那种空谈理论,而是真正把你拉到实际的逆向场景中去。从一个简单的App开始,作者会一步步教你如何进行静态分析,如何识别关键函数,如何定位敏感数据。更精彩的是动态调试的部分,通过Frida等工具,你可以实时观察程序的运行状态,修改内存,甚至注入自己的代码。我印象最深的是其中一个关于破解App内购的章节,作者详细讲解了如何通过Hook支付相关的API,绕过支付验证,这种技能在实际的安全测试中非常有价值。这本书不仅仅是教你“怎么做”,更重要的是让你明白“为什么这么做”,它培养的是一种分析问题的思维方式,一种刨根问底的精神。即使你之前没有任何逆向经验,只要认真阅读,跟着案例一步步实践,你会发现逆向的世界并没有想象中那么遥不可及。这本书绝对是提升iOS安全技能的必读书籍!
评分这本书的深度简直超出了我的预期!它并没有停留在表面,而是深入到了iOS逆向工程的核心原理层面。作者对底层机制的理解非常透彻,比如ARC(自动引用计数)的实现原理,Objective-C的消息传递机制,以及Swift的类型擦除等等,这些都是理解iOS系统运作的关键。我之前一直对Runtime的各种魔法感到好奇,这本书把这些东西都拆解开来,用一种非常清晰的方式呈现出来。最让我惊艳的是,它还涉及了一些更高级的主题,比如对App Store应用签名的解析,以及如何利用漏洞绕过App Store的审核。虽然这些内容可能对新手来说有点挑战,但对于想要进阶的开发者来说,绝对是无价之宝。读完之后,你会对iOS平台的安全性和潜在的攻击面有一个全新的认识,也能更好地设计和开发安全的iOS应用。这本书绝对是iOS逆向领域的“扛鼎之作”。
评分我购买这套书的初衷是想提升自己的iOS安全审计能力,而这套书完全满足了我的需求,甚至超出了我的期待。作者在书中构建了一个非常完善的逆向分析体系,从基础的工具使用,到复杂的逻辑分析,再到最终的安全加固,形成了一个完整的闭环。我特别喜欢书中关于反调试、反反编译技术的讲解,这些是保护App不被轻易破解的关键。作者还分享了很多自己实战中的经验和技巧,比如如何快速定位混淆过的代码,如何分析加固过的App,这些都是在网上很难找到的宝贵信息。通过阅读和实践,我不仅学会了如何去“看懂”一个App的内部逻辑,更学会了如何去“保护”自己的App。这本书绝对是iOS安全从业者和有志于此的开发者的必备参考书,它让你从一个被动的“学习者”变成一个主动的“防御者”。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.coffeedeals.club All Rights Reserved. 静流书站 版权所有