iOS应用逆向工程第2版pdf下载pdf下载

iOS应用逆向工程第2版百度网盘pdf下载

作者:
简介:本篇主要提供iOS应用逆向工程第2版pdf下载
出版社:机械工业出版社
出版时间:2015-04
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

编辑推荐

适读人群 :iOS狂热爱好者;中高级iOS开发人员;架构师
  

  全球首本讲解iOS8应用逆向工程的实战手册,作者毫无保留地分享了数年来在iOS逆向工程领域的经验;

  内容系统深入,逻辑紧密,实战性强,从iOS系统架构等理论出发,以多个实例贯穿全书,阐述class-dump、Theos、Cycript、Reveal、IDA、LLDB等常用工具的使用,通俗易懂;

  总结提炼出一套从UI观察切入代码分析的iOS应用逆向工程方法论,授人以渔。

内容简介

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

  

作者简介

   沙梓社,iOS越狱社区骨灰级活跃份子,思路开阔思想传统,对苹果的研究痴迷到连女朋友都没有的地步。作品见诸于Cydia,有SMSNinja、LowPowerBanner、DimInCall等。
   吴 航,十余年程序开发经验的资深码农,历经方正、NEC、Juniper等国内国外知名IT企业,2011年进入iOS领域,专注于iOS app/逆向等方向的开发,主要作品有安全管家、知乎月刊HD等。

精彩书评

  仔细阅读了本书,从字里行间可以感受到作者的认真,在当今这个浮躁的大环境中,这是非常难得的,单从认真这点来看,这本书绝不是一本“水货”,强烈推荐大家阅读,尤其是初学者。
  

  本书的前六章侧重于理论的介绍,但又不局限于理论,几乎每章都有至少一个小例子来帮助读者理解相关的理论。后面的几章侧重于实践,并且使用了一些大家耳熟能详的App作为例子,以此来降低读者的陌生感,可见作者用心之良苦。
  逆向工程对实践性要求非常高,因此学会与没学会的标准只有一个,那就是能不能抛开书本,使用与书中相同或者不同的方法,实现出相同的效果。大家在实践的过程中必然会遇到困难,可能会感觉学不下去了,但是希望大家在这时绝不要放弃,有句话叫“念念不忘,必有回响”,在感觉自己学不会时,可以先把这件事情放一放,但是不要忘记,过段时间再继续。经过几次这样的迭代后,相信你会掌握iOS逆向工程相关的理论与技巧。  
  ——Proteas 独立iOS研究员


  

  每一个iOS开发者都应了解的逆向知识都在这里了。这本书详细地介绍了常用的静态分析手法以及实用的动态分析技巧。不但可以帮助逆向新手快速上手,同时也能激发iOS开发熟手对应用安全的思考,把主动防御的思想渗透到项目开发中。
  ——念茜 支付宝iOS开发工程师

  如果你觉得对普通iOS App的开发已经有点疲倦了,iOS逆向工程绝对是你值得尝试的新领域。

  本书非常适合有一定iOS开发经验的读者,一步一步引导你走进逆向工程的大门。

  各种实用工具的讲解,让你倦意顿失;手把手的实践,让你意犹未尽。

  现在iOS越狱进入常态化,越狱开发的势头很猛,学会了逆向开发,多一种选择,对于普通开发也是受益颇多。

  ——沈悦 独立iOS开发者

目录

目 录
推荐序一
推荐序二
第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
4.10 小结 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

精彩书摘

  第1章

  iOS逆向工程简介

  虽然可口可乐的配方是高度机密,但还是有些公司可以调制出跟可乐几乎没有差别的味道。虽然我们拿不到别人App的源码和文档,但仍可以通过逆向工程来一窥究竟。

  1.1 iOS逆向工程的要求

  iOS逆向工程指的是在软件层面上进行逆向分析的一个过程。读者如果想要具备较强的iOS逆向工程能力,最好能非常熟悉iOS设备的硬件构成、iOS系统的运行原理,还要具备丰富的iOS开发经验。如果你拿到任意一个App之后能够大致推断出它的项目规模和使用的技术,比如它的MVC(Model-View-Controller,请Google“iOS MVC”)模型是怎么建立的,引用了哪些 framework和经典的开源代码,说明你的iOS逆向工程能力已经不容小觑了。

  这要求高吗?好像确实有点高!不过,这些条件都是充分非必要的。如果你目前还不具备这些充分条件,那么一定要满足两个必要条件:强烈的好奇心和锲而不舍的精神。因为在iOS逆向工程中,好奇心会驱动你去研究经典的App,而在研究的过程中一定会遇到一系列的困难和障碍,但你又不可能对任何问题都胸有成竹,所以这时就需要有锲而不舍的精神来支撑你克服一个又一个困难。请相信,在投入大量精力去编写代码、调试程序、分析逻辑之后,你会在不断的试验和错误中感受到逆向工程的艺术之美,你的个人能力也会得到质的提升。

  1.2 iOS应用逆向工程的作用

  打个比喻,iOS逆向工程就像一杆长矛,专门刺破App看似安全的防护盾。有趣的是,很多制作App的公司还没有意识到这样一杆长矛的存在,固步自封地以为自己的盾坚不可摧。

  对于微信和WhatsApp之类的IM应用,交流的信息是它们的核心;对于银行、支付、电商类的软件,交易数据和客户信息是它们的核心。所有的核心数据都是需要重点保护的,于是,开发人员通过反调试、数据加密、代码混淆等各种手段重重保护自己App,为的就是增加逆向工程的难度,避免类似的安全问题影响用户体验。

  可是目前App防护所用到的技术跟iOS逆向工程所使用的技术根本就不是同一个维度的。一般的App防护,感觉就像是一个城堡,将App的MVC布置在城堡内部,外围圈上厚厚的城墙,看上去易守难攻,就像图1-1所示的这样。

前言/序言

推荐序一
前一段时间跟吴航在微博上私信聊天,他说正在写一本iOS方面的图书,我让他书出来的时候送一本给我。之后他在私信上跟我说书写完了,让我给写个序,我当即表示“压力山大”,但还是欣然答应了。
我认识吴航是在2011年9月,当时安全管家在找iOS开发高手,吴航作为我们安全管家iOS开发组的第一个工程师进来了,他和我们从零开始搭建iOS团队,并着手安全管家越狱版的开发。到了2012年年中,我认识到iOS自身的安全性非常好,在非越狱的iOS上我们能做的关于安全的事情并不多,而越狱行为本身就是一个最大的安全风险,是用户主动选择的结果,跟我们自身的安全理念不符,因此无须投入太多关注,恰好吴航本人也想出去做自己的事情,于是我支持了他的决定。
在那大半年的接触中,我发现吴航是个难得的技术人才,在技术的钻研上有股子狠劲,拥有丰富的开发实战经验,又善于利用各种工具解决问题,因此在他带团队的时候,评估出来的开发进度基本上都能达成。我印象深刻的有两件事,第一件是在开发越狱版安全管家时,由于这方面官方公开的资料几乎没有,很多涉及系统底层的开发,需要自己摸着石头过河,并得反复尝试。当时我们制定了一个比较紧的开发周期,希望在较短的时间内开发出越狱版安全管家的原型。吴航的压力不小,他接连几个月都在研究系统底层,向各路高人请教,通过Google找寻国外网站上的资料,没日没夜地想办法,后来终于在既定的时间内完成,这让我看到了吴航不仅不惧困难,而且敢于负责任。另一件事是在开发App Store版安全管家时,有个版本在我的手机上在不同页面间快速切换时会有极小的概率导致安全管家崩溃,我就反馈给了吴航。虽然只是小概率事件,但他亲自反复高强度测试,细致地排查代码,最终揪出了导致这个问题的内存指针Bug,这足见其严谨的技术态度和对质量高标准的追求。
虽然我不做开发很多年了,但是至今仍忘不了年轻时作为一个工程师,非常渴望与更高水平的人交流,希望聆听高手们实战经验分享的情景。吴航愿意把他的经验总结成书,是广大iOS开发者的福音,这本书能够带给大家实实在在的干货,让大家都能在技术的道路再攀高峰。

赵岗
安全管家创始人


推荐序二
In our lives we pay very little attention to things that work. Everything we interact with hides a fractal of complexity—hundreds of smaller components all of which serve a vital role each disappearing into its destined form and function. Every day millions of people take to the streets with phones in their hands and every day hardware firmware and software blend into one contiguous mass of games photographs phone calls and text messages.
It holds then that each component retains leverage over the others. Hardware owns firmware firmware loads and reins in software and software in turn directs hardware. If you could take control of one of them could you influence a device to enact your own desires?
iOS 8 App Reverse Engineering provides a unique view inside the software running on iOS? the operating system that powers the Apple iPhone? and iPad?. Within you will learn what makes up application code and how each component fits into the software ecosystem at large. You will explore the hidden second life your phone leads wherein it is a full-fledged computer and software development platform and there is no practical limit to its functionality.
So young developer break free of restricted software and find out exactly what makes your iPhone tick!
(在生活中,我们经常会忽略许多习以为常的事物。事实上,那些我们每天都与之打交道的东西,往往都蕴含了一种“复杂”的美感——它们由成百上千的微小组件构成,各个微小组件各司其职,在各自的岗位上发挥着不可替代的关键作用。现代生活中,智能手机已经成了我们每天必不可少的工具,通过硬件、软件和固件协同合作,它为我们带来了好玩的游戏、有趣的照片,以及便利的沟通渠道——电话和短信。
在一个巴掌大的手机里,各个组件之间的关系错综复杂,互相影响。硬件为固件的运行提供支撑平台,固件掌管软件,而软件又回过头来调度硬件。如果你能控制它们之中的哪怕一个,不就可以让手机听命于你了吗?但App Store的插手,又为你对它们的控制加上了重重阻力。
本书从独特的角度剖析iOS应用,你会从比App Store App更低一级的深度去了解软件的各个组件在构造整个软件时起到的作用,你会由此发现手机的“里世界”——它的能力远不止App Store所许可的那样有限,确切地说,它是一台功能齐全的计算机,在它的“里世界”里,一切皆有可能。
年轻的开发者,从这里开始打破App Store的限制,重新认识真正的iPhone吧!)

Dustin L. Howett
iPhone Tweak 开发者


第2版序
转眼,本书第1版面世已经快1年了,在这一年里,因为有大家的认可与推广,本书得到了广泛关注。与此同时,iOS逆向工程也在国内iOS开发者圈子里“漫延”开来,并达到了前所未有的高度,正是因为大家的努力,才使得该技术得到发展,而我们作者团队也贡献了一点力量,甚感欣慰!
随着盘古、太极等国内越狱团队的横空出世,以及各种第三方市场的蓬勃发展,iOS技术层面的较量已经从App开发转向底层研究;随着WireLurker等病毒的出现,一些深藏不露的安全问题也开始浮出水面,苹果构建的封闭系统正在出现一条条裂缝。不管是进攻还是防守,都离不开iOS逆向工程技术的使用。在可以预见的未来,苹果将进入恶意软件重度防御时
代,iOS逆向工程的应用一定会越来越广泛,让我们拭目以待。
自本书第1版上市后,反响一直不错,京东等各大网店的好评率高达95%以上。随着iOS 8的发布,我们清楚地意识到第1版的内容已经不再适合最新的iOS 8。同时根据一年多以来跟大家不断的沟通和交流,也意识到第1版存在缺憾和不足,例如讲解不够细致,术多道少等,影响了书的可读性。因此,在即将推出全新升级的《iOS应用逆向工程》里,不但全面支持iOS 8,还大幅更新了章节内容,涵盖更多细节,配备了更多的例子,增加了“道”的分量,比第1版的逻辑性更强,更易读了。在升级版中,我们尝试从抽象的逆向工程中抽离出一个通用的方法论,试图传递给大家一种逆向工程的思想,而不仅仅是工具的使用。
本书第1版上市之后,我曾把书的目录和内容框架发布到国际iOS越狱社区上,得到了非常正面的反馈,包括Cydia的作者saurik、OSX著名研究员fG!、Theos作者DHowett等国际一线开发者均对本书表示了浓厚的兴趣,这也让我萌生了让该书走向国际的想法。在整理这一版时,我与编辑沟通了该想法,没想到还真促成了此事。国际版将由美国CRC出版社在全球出版发行,由8位国外知名研究员(5位美国籍、1位加拿大籍、1位阿根廷籍、1位丹麦籍)审核,全球iOS逆向工程社区对国际版寄予了厚望。在第1版的前言里,航哥曾提到我夸下的海口:“弟的目标远大,要玩就朝着国际一线大牛的目标去!”虽然离这个目标还差得很远,但我已经在朝这个目标努力迈进了,不是么?

前 言
为什么要写这本书
两年前我正式从传统网络设备行业转行进入移动互联网行业,当时正是移动应用开发市场最火爆的时候,创业公司如雨后春笋般的成立,尤其社交类App更是大受追捧,只要有一个不错的构想就可能拿到千万级投资,高价挖人组队的信息更是让人眼花缭乱。那时我已经开发了几个颇具难度的企业应用类App,对于那些轻量级的普通社交App不是太看得上,想着要玩点比较酷的技术,机缘巧合进入了安全管家(北京安管佳科技有限公司),从零开始搭建iOS团队,负责包括越狱方向在内的iOS开发。
其实iOS越狱开发的基础就是iOS逆向工程,那个时候我并没有这方面的经验,面向的是一个完全未知的领域,不过好在有Google,国内国外的信息多少还是能够搜到点,而且对于iOS开发者,越狱开发和逆向工程并不是一个完全隔离的世界,虽然被分享出来的都是零零散散甚至重复度很高的知识,但是只要投入大量精力,把知识归纳总结,慢慢可以整理出一幅完整的图谱。
然而独自一人学习的过程是孤独的,尤其是遇见困难和问题无人交流,让人一筹莫展。每次一个人扛下所有问题的时候,总是感叹:要是有一个水平不错的交流者该是多么幸福?虽然也可以给Ryan Petrich等一线大牛发邮件请教,但很多在我们看来当时解决不了的难题在这类高手眼中很可能就是个低级问题,不苦心钻研一番根本不好意思去问。这个阶段大概持续了有大半年,直到2012年在微博上遇到本书的另一作者snakeninny,那时他还是一个面临毕业的研究生,整天“不务正业”地研究iOS底层,而且研究得还相当有深度。我曾和他提过:“你看,有多少人都投入到App领域捞钱去了,你咋不去呢?”他说:“弟的目标远大,要玩就朝着国际一线大牛的目标去!”小兄弟,你够狠!
不过,多数时候我们都是自己在折腾,只是偶尔在网上交流一下问题及解决方法,但往往能碰撞出一些有价值的内容。在一起合写本书之前,我们曾经合作逆向分析过陌陌,做了一个插件用于在陌陌iOS版上把美女的位置标注在地图上。当然我们都是善意的开发者,主动将这个漏洞告诉了陌陌,他们很快就修复了。这次,我们再次合作,将iOS逆向工程方向的知识整理出版,呈现给各位读者。
在接触越狱开发、逆向工程的这些年,个人感觉最大的收获就是看待App时,完全以一种庖丁解牛的眼光去审视:App如何构成、性能如何,可以直接反映出开发团队水平高低。这些经验知识不仅可用于越狱开发,也适用于传统的App开发,至于带来的影响,有正有负吧!我们不能因为苹果不提倡越狱就否定这个领域的存在,盲目地相信本书曝光的安全问题不存在不过是掩耳盗铃罢了。
有经验的开发者都明白,知识掌握得越深,越会接触到底层技术。比如sandbox保护机制具体体现在哪些方面?runtime只用来研究理论知识是不是有点大材小用了?
在Android领域,底层技术已经被扩散开,而在iOS领域,这个方向展现出来的内容还只是冰山一角。虽然国外也有几本iOS安全方向的书籍,比如《Hacking and Securing iOS Applications》、《iOS Hacker’s Handbook》,但是内容太难,绝大多数人根本读不懂,即使我们这些有一定经验的开发者,读这些书也非常吃力,效果不好。
阳春白雪不为我们这些喜欢实践的技术宅所好,那么来点下里巴人的,不必遮遮掩掩,直接全面展开这些知识岂不是更痛快?于是就有了我们这本书,书中的内容以概念、工具、理论、实战的形式全面、系统地展开知识点,由浅入深,图文并茂,带着读者一步步地探索App的内在。我们不会像一些技术博客那样貌似很高深地独立分析某一片段的代码,也不纠结“茴”字有几种写法,而是尽我们所能将一个完整的知识体系呈现给读者,提供一整套iOS应用逆向工程的方法论,相信读者一定会有所收获。
近些年,国内投入在越狱iOS这个方向的人越来越多,但都比较低调,他们开发出的越狱工具、App助手、Cydia插件影响着整个iOS的发展。他们积累的技术非我们这些散兵游勇所能及,但我们更愿意分享这些知识,希望能够抛砖引玉。
读者对象
本书主要面向以下读者:
iOS狂热爱好者。
中高级iOS开发人员。他们在掌握了App开发之后对iOS有更深的渴求。
架构师。在逆向App的整个过程中,架构师能学习那些优秀App的架构设计,以这种方式博采众长,提高自己的架构设计能力。
在别的系统上从事逆向工程,想要转向iOS逆向工程的工程师。
如何阅读本书
本书将分为四大部分,分别是概念、工具、理论和实战。前三部分介绍iOS逆向工程这个领域的背景、知识体系,以及相应的工具集、理论知识;第四部分则以4个具体案例将前面的知识以实战的方式展开,让读者可以实践验证前面学到的知识,加深对iOS逆向工程的理解。
如果读者不具备iOS逆向工程经验,建议还是从头开始按顺序阅读,而不要直接跨越到第四部分去模拟实战。虽然实战的成果很炫,但知其然而不知其所以然也没意思,对不对?
勘误和支持
由于作者的水平有限,编写的时间也很仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正,欢迎访问本书的官方论坛http://bbs.iosre.com,全球的iOS逆向工程师都在这里聚集,你的问题应该会得到满意的解答。如果你有更多的宝贵意见,也欢迎你通过微博@iOS应用逆向工程或官方论坛与我们联系,我们很期待能够听到你们的真挚反馈。
致谢
首先要感谢evad3rs、盘古、太极、saurik等顶级团队与高手,他们奠定了越狱iOS的基石;还要感谢DHowett,是他提供了Theos这个强大的开发工具使我得以迈进iOS逆向工程的大门。
感谢安全管家,为我进入iOS逆向工程领域提供了一个充分发挥的环境,虽然我早已离开,但希望它发展得更好。
感谢微博上每一位热心的朋友——唐巧_boy、卢明华、你在瓦西里、isdada、Jagie、onevcat、戴铭、费西FISH、xuzhanji、Life无法Debug、移动开发小冉、HorseLuke、网络蝎子、hongjiang_wang、月之舞狼、StayNStay、bluesea哈哈哈、郑州IOS、青年土豆的烦恼、木土吉吉,以及这个仓促写就的名单之外的更多朋友,感谢你们对我的支持和鼓励。特地感谢唐巧_boy的引荐,他的热心帮助促成了本书的出版。
感谢机械工业出版社华章公司的编辑杨绣国老师,感谢她的魄力和远见,在这三个月的时间里始终支持我的写作,她的指点和帮助引导我们顺利完成全部书稿。
谨以此书献给我最亲爱的家人,以及众多热爱iOS开发的朋友们。

吴航(hangcom2010)