新書推薦:
《
古罗马800年
》
售價:HK$
193.2
《
写出心灵深处的故事:踏上疗愈之旅(修订版)(创意写作书系)
》
售價:HK$
67.9
《
控制权视角下的家族企业管理与传承
》
售價:HK$
89.7
《
冯友兰和青年谈心系列
》
售價:HK$
171.8
《
利他主义的生意:偏爱“非理性”的市场(英国《金融时报》推荐读物!)
》
售價:HK$
79.4
《
认知行为疗法:心理咨询的顶层设计
》
售價:HK$
102.4
《
FANUC工业机器人装调与维修
》
售價:HK$
102.4
《
吕著中国通史
》
售價:HK$
64.4
|
內容簡介: |
本书从正向开发、工具的使用、逆向实战及安全保护等方面,对iOS应用的逆向与安全进行了讲解。本书内容包括基本概念、逆向环境的准备、常用逆向分析工具、类的结构、App签名、Mach-O文件格式、hook原理等,并通过在越狱平台和非越狱平台上的逆向分析实例,带领读者学习逆向分析的思路和方法。在应用安全及保护方面,本书内容涉及网络传输、安全检测、代码混淆等。
|
關於作者: |
1.15年加入网易从事iOS安全保护相关工程,开发了一套iOS加固保护的工具2.16年从事移动端相关开发,并在网易云课堂录制了《iOS逆向与安全》的课程。3.17年上半年从事前端开发和移动端性能监控工作,现继续回安全部门从事iOS加固保护的工作。
|
目錄:
|
第1章概述
1.1逆向工程简介1
1.1.1iOS逆向学习基础1
1.1.2iOS逆向的流程1
1.1.3iOS逆向使用的工具2
1.1.4iOS逆向的应用场景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.2Cydia6
2.3SSH7
2.3.1安装OpenSSH8
2.3.2配置dropbear10
2.3.3修改默认密码11
2.3.4公钥登录11
2.3.5通过USB登录13
2.4iOS系统结构14
2.4.1文件目录15
2.4.2文件权限17
2.5Cydia Substrate18
2.5.1MobileHooker19
2.5.2MobileLoader19
2.5.3Safe mode20
2.6越狱必备工具21
2.6.1adv-cmds21
2.6.2appsync21
2.6.3iFile21
2.6.4scp22
第3章逆向工具详解
3.1应用解密23
3.1.1dumpdecrypted23
3.1.2Clutch28
3.1.3小结30
3.2class-dump30
3.2.1class-dump的使用30
3.2.2class-dump的原理33
3.2.3OC和Swift混编40
3.3Reveal41
3.3.1开发集成Reveal41
3.3.2越狱注入Reveal42
3.4Cycript43
3.4.1开发集成Cycript44
3.4.2使用Cycript越狱45
3.4.3使用Cycript分析应用46
3.4.4Cycript的高级用法49
3.5抓包52
3.5.1Charles抓包53
3.5.2修改网络请求55
3.5.3HTTPS抓包59
3.5.4Wireshark抓包60
第4章开发储备
4.1App的结构及构建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.4runtime的应用94
4.4App签名98
4.4.1配置Xcode签名98
4.4.2App签名的原理100
4.4.3重签名107
第5章分析与调试
5.1静态分析109
5.1.1Hopper109
5.1.2IDA118
5.1.3静态库分析125
5.2动态调试128
5.2.1LLDB调试128
5.2.2LLDB解密141
5.2.3用Xcode调试第三方应用144
5.2.4LLDB的高级调试技巧151
5.3Theos167
5.3.1Theos的安装168
5.3.2Theos的基本应用168
5.3.3Theos的高级应用172
5.4MonkeyDev177
5.4.1安装MonkeyDev178
5.4.2Logos Tweak179
5.4.3CaptainHook Tweak181
5.4.4Command-line Tool185
第6章逆向进阶
6.1程序加载186
6.1.1dyld简介186
6.1.2dyld加载流程187
6.2Mach-O文件格式206
6.2.1Mach-O文件的基本格式206
6.2.2Mach-O头部208
6.2.3Load Command210
6.2.4虚拟地址和文件偏移214
6.2.5懒加载和非懒加载217
6.2.6Code Signature223
6.3ARM汇编228
6.3.1ARM架构和指令集228
6.3.2AArch64寄存器229
6.3.3指令集编码231
6.3.4AArch64指令233
6.3.5栈和方法236
6.3.6Objective-C汇编245
6.4hook247
6.4.1Method Swizzle247
6.4.2fishhook248
6.4.3Cydia Substrate253
6.4.4Swift hook256
6.5动态库259
6.5.1编译和注入260
6.5.2导出和隐藏符号260
6.5.3C 和OC动态库263
6.5.4其他常见问题267
第7章实战演练
7.1越狱设备分析270
7.1.1分析准备270
7.1.2开始分析272
7.1.3编写Tweak284
7.1.4安装与小结287
7.2非越狱设备分析288
7.2.1创建MonkeyDev项目288
7.2.2非越狱逆向实战291
7.2.3编写hook代码303
7.2.4制作非越狱Pod304
7.2.5小结308
7.3Frida实战应用309
7.3.1Frida的安装309
7.3.2Frida的初级使用311
7.3.3Frida的高级使用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.4hook检测360
8.3.5完整性校验361
8.4代码混淆363
8.4.1什么是LLVM363
8.4.2下载和编译LLVM364
8.4.3开发和调试Pass366
8.4.4OLLVM源代码分析373
8.4.5替换Xcode编译器379
8.4.6静态库混淆389
8.5本章总结390
|
|