网站颜色:

iOS应用逆向与安全之道+iOS应用逆向工程 2册 苹果IOS系统开发商 iOS调试技术 iOS应用协议分析 iOS逆向工程师宝典书籍

  • 产品名称:iOS编程基础与实践
  • 书名:iOS编程基础与实践
  • 作者:卢山
  • 定价:38.00元
  • 书名:iOS编程基础与实践
  • 开本:16开
  • 是否是套装:否
  • 出版社名称:首都经济贸易大学出版社

A8 9787000064681  9787111494362 9787111643586 

(本套装包含以下书籍点击书名购买单册)

iOS应用逆向工程 第2版9787111494362定价:79.(咨询特价)
iOS应用逆向与安全之道9787111643586定价 (咨询特价)

书名:iOS应用逆向与安全之道

本书所讲技术可兼容iOS9-iOS13版本,但表达的思想和方法可扩展至今后任意iOS版本

作者:罗巍 著

出版社: 机械工业出版社

ISBN(咨询特价)

定价 (咨询特价)

本书始终遵循“大道至简”之法则,仅保留必要的理论知识,以实战为主线来揭开iOS应用逆向与安全的神秘面纱。主要内容包括:环境搭建、Mach-O文件格式、ARM汇编、应用脱壳、运行时分析、静态分析、动态调试、iOS插件开发、Hook与注入、应用安全、协议安全等。本书涵盖了时下热门的iOS逆向技术,以及飘云阁论坛版主、信息安全领域一线软件安全专家和笔者自己的多年实战经验,是软件安全研究人员的一本秘籍。

本书适合iOS爱好者、对iOS调试技术和对iOS应用协议分析感兴趣的读者、对iOS应用保护感兴趣的开发人员、从其他ping台转战iOSping台的逆向工程师、想提高实战技巧的iOS逆向工程师及计算机相关的师生阅读。

序一+AC5:AC276

序二

序三

前言

篇 初 出 茅 庐

1章 背景知识

1.1 iOS逆向工程简介

1.1.1 iOS逆向工程学习路线

1.1.2 iOS逆向工程基本流程

1.1.3 iOS逆向工程意义所在

1.2 iOS越狱平台简介

1.2.1 iOS越狱及其定义

1.2.2 iOS越狱商店

1.2.3 iOS目录

1.2.4 iOS沙盒结构

1.2.5 iOS应用结构

1.2.6 iOS文件权限

1.3 本章小结

 

2章 环境搭建

2.1 开发环境

2.1.1 Xcode

2.1.2 Homebrew

2.2 越狱环境

2.2.1 iOS越狱设备的选择

2.2.2 Cydia Substrate(iOS 11以下)

2.2.3 Substitute(iOS 11~iOS 13)

2.2.4小工具

2.3 SSH配置

2.3.1 安装OpenSSH

2.3.2 配置dropbear

2.3.3 免密码登录

2.3.4 USB连接设备

2.3.5 修改默认密码

2.3.6 使用scp传输文件

2.4 实用工具

2.5 本章小结

 

3章 逆向基础

3.1 Mach-O文件格式

3.1.1 通用二进制文件

3.1.2 Mach-O头部

3.1.3 加载命令

3.2 ARM汇编基础

3.2.1 寄存器

3.2.2 指令集

3.2.3 栈及传参规则

3.2.4 内联汇编

3.2.5 Objective-C的汇编机制

3.3 本章小结

二篇 小 试 牛 刀

4章 应用脱壳

4.1 检测是否加壳

4.2 Clutch

4.2.1 安装Clutch

4.2.2 Clutch脱壳实战

4.3 dumpdecrypted

4.3.1 编译dumpdecrypted

4.3.2 dumpdecrypted脱壳实战

4.4 bfinject

4.4.1 安装bfinject

4.4.2 bfinject脱壳实战

4.4.3 修复闪

4.5 CrackerXI(iOS 11~iOS 13)

4.6 frida-ios-dump

4.6.1 一键快速脱壳

4.6.2修复闪

4.6.3 ipa文件安装失败处理

4.7 使用lipo分离架构

4.8 本章小结

 

5章 运行时分析

5.1 class-dump

5.2 Cycript

5.2.1 越狱环境安装Cycript

5.2.2 Cycript实战

5.2.3 Cycript用法

5.2.4 iOS 11使用Cycript

5.3 Reveal

5.3.1 越狱环境使用Reveal

5.3.2 iOS 11~iOS 13使用Reveal

5.3.3 Reveal实战

5.4 FLEX

5.4.1 越狱环境使用FLEX

5.4.2 FLEX实战

5.5 Frida

5.5.1 Frida安装

5.5.2 Frida入门

5.5.3 Frida实战

5.5.4 Frida进阶

5.6 本章小结

三篇 登 堂 入 室

6章 静态分析

6.1 Hopper

6.1.1 安装Hopper

6.1.2 认识Hopper

6.1.3 编写Hopper脚本实战

6.2 IDA Pro

6.2.1 加载文件

6.2.2 功能划分

6.2.3 保存idb文件

6.2.4 常用功能及快捷键

6.2.5 编写IDA脚本实战

6.3 如何定位切入点

6.3.1 通过Runtime定位

6.3.2 通过输入函数定位

6.3.3 通过输出函数定位

6.3.4 通过字符串定位

6.3.5 通过网络行为定位

6.4 实例分析

6.4.1 使用class-dump定位按钮事件

6.4.2 使用Hopper分析验证流程

6.4.3 使用IDA分析序列号及修改代码

6.5 本章小结

 

7章 动态调试

7.1 LLDB动态调试

7.1.1 配置debugserver

7.1.2 与LLDB建立连接

7.1.3 LLDB命令详解

7.1.4 LLDB手动脱壳

7.1.5 LLDB脚本编写

7.1.6 LLDB高效技巧

7.2 IDA动态调试

7.2.1 直接启动调试

7.2.2 远程附加调试

7.3 Xcode动态调试

7.3.1 远程附加调试

7.3.2 直接启动调试

7.3.3 恢复符号表

7.3.4 UI调试功能

7.4 本章小结

 

8章 越狱开发

8.1 Theos简介

8.1.1 Theos安装

8.1.2 Theos常用模块

8.2 插件开发

8.2.1 创建工程

8.2.2 解读工程文件

8.2.3 编译+打包+安装

8.3 命令行工具开发

8.3.1 创建工程

8.3.2 兼容iOS 11~iOS 13

8.4级应用开发

8.4.1 创建工程

8.4.2 以root权限运行(iOS 11以下)

8.4.3 以root权限运行(iOS 11、iOS 12)

8.4.4 以root权限运行(iOS 13)

8.5 守护进程开发

8.5.1 创建工程

8.5.2 自动部署

8.6 进程间通信

8.6.1 tification通信

8.6.2 XPC通信

8.6.3 RocketBootstrap通信

8.7 MonkeyDev

8.7.1 MonkeyDev安装

8.7.2 Logos Tweak

8.7.3 CaptainHook Tweak

8.7.4 Command-line Tool

8.8 跟踪函数调用

8.8.1 使用logify跟踪

8.8.2 使用ANYMethodLog跟踪

8.8.3 使用BigBang跟踪

8.9 增加设置项

8.9.1 PreferenceLoader

8.9.2 AppList

(咨询特价) deb重打包

(咨询特价) 本章小结

 

9章 Hook与注入

9.1 Method Swizzling

9.1.1 Method Swizzling原理

9.1.2 Method Swizzling实例

9.1.3 MSHookMessageEx实例

9.1.4 获取类成员变量实例

9.2 Inline Hook

9.2.1 MSHookFunction实例

9.2.2 fishhook实例

9.2.3 HookZz实例

9.3 Swift Hook

9.3.1 Swift逆向分析

9.3.2 Swift Hook实例

9.4 注入技术

9.4.1 越狱环境注入

9.4.2 非越狱环境注入

9.4.3 注入dylib实例

9.5 应用重签名

9.5.1 手动重签名

9.5.2 使用iOSAppSigner重签名

9.5.3 使用fastlane重签名

9.5.4 使用MonkeyDev重签名

9.6 本章小结

 

10章 应用安全

10.1 调试器对抗

10.1.1 反调试

10.1.2 反-反调试

10.2 注入对抗

10.2.1 反注入

10.2.2 注入检测

10.2.3 注入防护

10.3 Hook检测

10.3.1 Method Swizzing检测

10.3.2 Inline Hook检测

10.4 越狱检测

10.4.1 检测越狱商店及其附属文件

10.4.2 尝试读取应用列表

10.4.3 检测URLSchemes是否有效

10.5 完整性检测

10.5.1 加载命令检测

10.5.2 代码段检测

10.5.3 签名信息检测

10.6 代码保护

10.7 本章小结

 

11章 协议安全

11.1 HTTP分析利器:Charles

11.1.1 配置Charles

11.1.2 修改数据包

11.1.3 重放数据包

11.1.4 模拟弱网络

11.1.5 HTTPS抓包

11.1.6 取消证书校验

11.2 TCP/IP分析利器:Wireshark

11.2.1 创建远程虚拟接口

11.2.2 认识Wireshark

11.2.3 TCP抓包分析示例

11.2.4 数据包过滤

11.3 常见算法识别

11.3.1 压缩算法

11.3.2 摘要算法

11.3.3 对称加密算法

11.3.4 非对称加密算法

11.3.5 利用插件识别

11.4 本章小结

篇 融 会 贯 通

12章 实战1:某社交App小程序格式分析

12.1 目标App介绍

12.2 寻找切入点

12.3 分析文件结构

12.3.1 分析伪代码

12.3.2 定义文件结构

12.4 分析包头结构

12.4.1 推导包头大小

12.4.2 定义包头结构

12.5 分析描述信息结构

12.6 编写解包工具

12.7 本章小结

 

13章 实战2:某短视频App水印控制及配置开关分析

13.1 目标App介绍

13.2 寻找切入点

13.2.1 抓包分析

13.2.2 用FLEXible获取Controller

13.2.3 用Frida定位按钮响应方法

13.3 水印控制逻辑分析

13.4 配置开关分析

13.4.1 获取“通用设置”页面的Controller

13.4.2 寻找数据源

13.4.3 寻找数据模型

13.4.4 分析数据模型

13.5 本章小结

 

14章 实战3:某游戏广告及内购流程分析

14.1 目标App介绍

14.2 分析广告逻辑

14.2.1 使用Reveal定位广告窗口

14.2.2 定位GADBannerView类的初始化方法

14.2.3 定位GADBannerView类加载广告的方法

14.2.4 定位GADBannerView对象的创建方法

14.3 分析内购流程

14.3.1 定位关键类

14.3.2 追踪CMPPurchaseManager类

14.3.3 追踪Purchase类

14.3.4 分析回调处理逻辑

14.3.5 分析内购结果构造过程

14.4 本章小结

 

15章 实战4:某物联网设备登录协议及安全隐患分析

15.1 目标App介绍

15.2 登录协议分析

15.2.1 确定可变字段

15.2.2 定位关键点

15.2.3 分析参数来源

15.2.4 分析verify算法

15.2.5 分析salt值

15.3 安全隐患分析

15.3.1 安全隐患成因

15.3.2 安全隐患复现

15.4 本章小结

 

16章 实战5:某乐谱App下载协议与安全问题分析

16.1 目标App介绍

16.2 数据包采样

16.2.1 确定可变字段

16.2.2 字段依赖分析

16.3 签名算法分析

16.3.1 静态定位关键函数

16.3.2 动态调试获取主要参数

16.3.3 栈回溯找出其他参数

16.3.4 协议下载乐谱

16.4 VIP权限校验的安全问题

16.4.1 安全问题成因

16.4.2 分析VIP权限控制逻辑

16.5 乐谱解密过程分析

16.6 本章小结

 

17章 实战6:某经典GPS插件授权机制分析

17.1 目标App介绍

17.2 抓包分析

17.2.1 数据包采样

17.2.2 判断关键字段

17.3 定位关键函数

17.4 授权机制分析

17.4.1 进入调试过程

17.4.2 确定算法

17.4.3 分析RSA公钥读取逻辑

17.4.4 验证算法

17.4.5 主程序验证流程

17.4.6 二次验证流程

17.5 本章小结

书名:iOS应用逆向工程 第2版

定价:79.(咨询特价)

作者:沙梓社,吴航

出版社: 机械工业出版社 

ISBN(咨询特价)

版次:2

包装:平装

开本:16开

出版时间:2015-(咨询特价)

你是否曾因应用上线的即遭而无奈苦恼,想要加以防范,却又束手无策?你是否曾为某一应用深深折服,想要借鉴学习,却又无从下手?你是否已不满足于public API,想要进军Cydia开发,却又求学无门?你是否已产生“不识Apple真面目,只缘身在App Store中”的危机感,想要通过阅读来一窥这冰山一角外的整个北极,却又找不到合适的书?你是否已经因无法跨越开发路上的重重障碍而断了研究iOS逆向工程的念头?Are you a quitter?看完本书,相信你会有全新的感受!

推荐序一

推荐序二

2版序

1版序

前言

一部分 概 念 篇

1章 iOS逆向工程简介 3

1.1 iOS逆向工程的要求 3

1.2 iOS应用逆向工程的作用 4

1.2.1 安全相关的iOS逆向工程 5

1.2.2 开发相关的iOS逆向工程 6

1.3 iOS应用逆向工程的过程 7

1.3.1 系统分析 7

1.3.2 代码分析 8

1.4 iOS应用逆向工程的工具 8

1.4.1 监测工具 9

1.4.2 反汇编工具 9

1.4.3 调试工具 10

1.4.4 开发工具 11

1.5 小结 11

2章 越狱iOS平台简介 12

2.1 iOS系统结构 12

2.1.1 iOS目录结构简介 13

2.1.2 iOS文件权限简介 16

2.2 iOS二进制文件类型 17

2.2.1 Application 17

2.2.2 Dynamic Library 20

2.2.3 Daemon 20

2.3 小结 22

二部分 工 具 篇

3章 OSX工具集 25

3.1 class-dump 25

3.2 Theos 27

3.2.1 Theos简介 27

3.2.2 安装Theos 28

3.2.3 Theos用法介绍 30

3.2.4 Theos开发tweak示例 51

3.3 Reveal 53

3.4 IDA 57

3.4.1 IDA简介 57

3.4.2 IDA使用说明 58

3.4.3 IDA分析示例 68

3.5 iFunBox 71

3.6 dyld_decache 72

3.7 小结 73

4章 iOS工具集 74

4.1 CydiaSubstrate 74

4.1.1 MobileHooker 74

4.1.2 MobileLoader 84

4.1.3 Safe mode 84

4.2 Cycript 85

4.3 LLDB与debugserver 89

4.3.1 LLDB简介 89

4.3.2 debugserver简介 90

4.3.3 配置debugserver 90

4.3.4 用debugserver启动或附加进程 91

4.3.5 LLDB的使用说明 92

4.3.6 LLDB使用小提示 107

4.4 dumpdecrypted 107

4.5 OpenSSH 111

4.6 usbmuxd 112

4.7 iFile 113

4.8 MTerminal 114

4.9 syslogd to /var/log/syslog 115

(咨询特价) 小结 115

三部分 理 论 篇

5章 Objective-C相关的iOS逆向理论基础 119

5.1 tweak在Objective-C中的工作方式 119

5.2 tweak 的编写套路 121

5.2.1 寻找灵感 121

5.2.2 定位目标文件 123

5.2.3 定位目标函数 127

5.2.4 测试函数功能 129

5.2.5 解析函数参数 130

5.2.6 class-dump的局限性 133

5.3 实例演示 133

5.3.1 得到灵感 134

5.3.2 定位文件 135

5.3.3 定位函数 143

5.3.4 测试函数 145

5.3.5 编写实例代码 145

5.4 小结 147

6章 ARM汇编相关的iOS逆向理论基础 148

6.1 ARM汇编基础 148

6.1.1 基本概念 149

6.1.2 ARM/THUMB指令解读 152

6.1.3 ARM调用规则 159

6.2 tweak的编写套路 161

6.2.1 从现象切入App,找出UI函数 162

6.2.2 以UI函数为起点,寻找目标函数 173

6.3 LLDB的使用技巧 203

6.3.1 寻找函数调用者 203

6.3.2 更改进程执行逻辑 208

6.4 小结 211

四部分 实 战 篇

7章 实战1:Characount for Notes 8 215

7.1 备忘录 215

7.2 搭建tweak原型 216

7.2.1 定位Notes的可执行文件 217

7.2.2 class-dump出MobileNotes的头文件 218

7.2.3 用Cycript找到阅览界面及其controller 218

7.2.4 从NoteDisplayController找到当前note对象 220

7.2.5 找到实时监测note内容变化的方法 223

7.3 逆向结果整理 227

7.4 编写tweak 228

7.4.1 用Theos新建tweak工程“CharacountForNotes8” 228

7.4.2 构造CharacountForNotes8.h 229

7.4.3 编辑Tweak.xm 229

7.4.4 编辑Makefile及control 230

7.4.5 测试 230

7.5 小结 233

8章 实战2:自动将指定电子邮件标记为已读 234

8.1 电子邮件 234

8.2 搭建tweak原型 235

8.2.1 定位Mail的可执行文件并class-dump它 237

8.2.2 把头文件导入Xcode 238

8.2.3 用Cycript找到Mailboxes界面的controller 239

8.2.4 用Reveal和Cycript找到All Inboxes界面的delegate 240

8.2.5 在MailboxContentViewController中定位“刷新完成”的响应函数 242

8.2.6 从MessageMegaMall中拿到所有邮件 246

8.2.7 从MFLibraryMessage中提取发件人地址,用MessageMegaMall标记

已读 248

8.3 逆向结果整理 254

8.4 编写tweak 255

8.4.1 用Theos新建tweak工程“iOSREMailMarker” 255

8.4.2 构造iOSREMailMarker.h 255

8.4.3 编辑Tweak.xm 256

8.4.4 编辑Makefile及control 257

8.4.5 测试 258

8.5 小结 259

9章 实战3:保存与分享小视频 260

9.1 260

9.2 搭建tweak原型 261

9.2.1 观察小视频播放窗口,寻找逆向切入点 261

9.2.2 class-dump获取头文件 262

9.2.3 把头文件导入Xcode 263

9.2.4 用Reveal找到小视频播放窗口 264

9.2.5 找到长按手势响应函数 265

9.2.6 用Cycript定位小视频的controller 270

9.2.7 从WCTimeLineViewController找到小视频对象 272

9.2.8 从WCContentItemViewTemplateNewSight中提取WCDataItem对象 276

9.2.9 从WCDataItem中提取目标信息 278

9.3 逆向结果整理 288

9.4 编写tweak 289

9.4.1 用Theos新建tweak工程“iOSREWCVideoDownloader” 289

9.4.2 构造iOSREWCVideoDownloader.h 289

9.4.3 编辑Tweak.xm 290

9.4.4 编辑Makefile及control 292

9.4.5 测试 293

9.5 彩蛋放送 294

9.5.1 从UIMenuItem切入,找到小视频对象 294

9.5.2 历史版本头文件个数变迁 295

9.6 小结 298

10章 实战4:检测与发送iMessage 299

10.1 iMessage 299

10.2 检测一个号码或邮箱地址是否支持iMessage 299

10.2.1 观察MobileSMS界面素的变化,寻找逆向切入点 299

10.2.2 用Cycript找出placeholder 302

10.2.3 用IDA和LLDB找出placeholderText的一重数据源 308

10.2.4 用IDA和LLDB找出placeholderText的N重数据源 311

10.2.5 还原原始数据源生成placeholderText的过程 340

10.3 发送iMessage 341

10.3.1 从MobileSMS界面素寻找逆向切入点 341

10.3.2 用Cycript找出“Send”按钮的响应函数 342

10.3.3 在响应函数中寻找可疑的发送操作 344

10.4 逆向结果整理 369

10.5 编写tweak 370

10.5.1 用Theos新建tweak工程“iOSREMadridMessenger” 370

10.5.2 构造iOSREMadridMessenger.h 371

10.5.3 编辑Tweak.xm 372

10.5.4 编辑Makefile及control 372

10.5.5 用Cycript测试 373

10.6 小结 373

越狱开发一览 375

沙箱逃脱 380

编写tweak——新时代的hacking 382

热门设计服务