前言
不知不觉,本书的第1 版已经出版快两年了,这期间我创建了一个小型的技术论坛,读者们经常在这里交流学习过程中遇到的问题。另外,读者们在 QQ 交流群也聊得火热,我记得有一个读者曾在 QQ 群与我产生了激烈的讨论,讨论的内容是与 iOS 远程控制相关的技术难点。这位读者认为 iOS 设备即使有病毒木马,也无法做到大范围的长期控制,但事实往往是相反的,除了纯粹的“硬技术”之外,还有一点就是思路。计算机网络的攻防对抗和打仗一样,需要讲究策略,将其称为没有硝烟的战争再适合不过了。
回想 2015 年的 XcodeGhost 事件,原本该事件的技术原理较为简单,就是替换原版 Xcode 的一个库文件,然后利用国内访问国外网络慢这一点,引诱开发者下载“加料”的 Xcode,从而将带有恶意功能的代码编译到正常的 App 里。等这些 App 正常上架后,攻击者就可以轻松控制上亿台 iOS 设备,访问这些设备中的相册、通讯录、位置等敏感信息而不受任何约束,如入无人之境。要想通过纯粹的“硬技术”做到这一点是不太可能的,由此可以看出,如果站在攻击者的角度去看待一些安全问题,那么视野将会更为开阔。还有一点是攻击者的动手能力往往更强,他们会不断测试并发现新问题,而防御者通常是对已知问题进行修补,没有攻击者考虑得周全。我希望读者在研究技术的过程中可以从两方面得到提高,一是学会站在攻击者的角度去思考安全问题;二是提高动手能力,通过不断的测试来发现新的安全问题。
写作目的
随着移动互联网的飞速发展,智能手机已经成为人们生活中不可或缺的物品之一。苹果公司的 iOS 设备市场占有率很大,不论是安全研究员还是应用开发者,都有必要了解和学习与 iOS 安全相关的技术。目前,国内外虽有几本关于 iOS 安全的图书,但内容都比较旧,有些知识点已经无法让读者方便地应用于测试和实战。我写本书的主要目的是将自己在工作与实战中的经验总结成一套完整的 iOS 安全知识体系,并提供给读者,让读者可以在学习过程中少走弯路。
特点与内容
本书的特点是知识点由浅入深,可以让读者循序渐进、系统性地学习 iOS 安全技术。全书共 16章,覆盖了从 iOS 8 到 iOS 14 的知识点。书中详细地讲解了越狱环境开发的相关工具、ARM 汇编基础、应用逆向分析、Tweak 编写技术、注入与 Hook、Mach-O 文件格式解析、唯一设备 ID、刷量与作弊、重要信息获取与取证、应用破解与应用保护、代码入口点劫持、写壳内幕、LLVM 编译器代码混淆等多个主题。本书的内容和顺序是我精心挑选和设计的,如果读者没有 iOS 越狱开发或逆向的相关经验,建议按顺序阅读。
适合人群
- 信息安全专业的高校学生
- 软件开发专业的高校学生
- 中高级 iOS 开发工程师
- 逆向工程师
- 软件安全研究员
勘误与支持
由于本人水平有限,书中难免会出现一些不准确的地方,如果你发现了不当之处,欢迎批评指正,我的邮箱是 exchen99@foxmail.com。此外,欢迎大家到图灵社区(iTuring.cn)本书主页获取代码资源和提交勘误。
使用的设备
本书使用的设备有 3 个:第一个是 iPhone 5,系统是 iOS 10.3.3;第二个是 iPhone 6,系统是 iOS 12.6.8;第三个是 iPhone SE,系统是 iOS 14.1。除了有特别说明的,本书中的其余实验都是在这 3 个设备上运行的。
免责声明
安全与攻防技术就像一把双刃剑,我写本书的初衷是希望读者将从本书中学习到的技术用于防护,提高安全意识。本书中的所有内容仅供技术学习与研究,请勿将之用于非法用途。
致谢
感谢所有读者,感谢所有曾经帮助过我的人,感谢我爱的人。
你们是否还都记得曾经的梦想?愿你们每个人都能实现自己的梦想。感谢父母给了我生命,让我能够在短暂的人生中追求梦想。
我时常听到鸟儿叽叽喳喳,彼时街上行人寥寥无几,偶尔驶过几辆车,那是北京凌晨四五点的样子。