第一章 iOS逆向工程简介
- 逆向工程的要求
- 恶意软件:Ikee
- iOS的root默认密码为
alpine
- 几款著名的插件
xsellize
收费变免费Audio Recorder
第一款通话录音软件Activator
实现各种自定义功能- 几款实用的逆向工具
1.1. iOS软件逆向工程要求
对于工程师的要求:拿到一个 App 之后能够清晰地推断出这个 App 使用 的技术,包括引用了哪些 framework、哪些经典的第三方代码,以及整个 App 工程大致的文 件个数、大致的代码行数,另外,还要想象一下如果由自己来组织设计开发,需要投入的人 员、时间和精力等
强烈的好奇心和锲而不舍的精神
1.2 iOS软件逆向工程的作用
攻破目标程序,拿到关键信息,可以归类于与安全相关的逆向工程;
借鉴他人的程序功能来开发自己的软件,可以归类于与开发相关的逆向工程。 接下来就让我们将这些内容逐步展开;
1.2.1 与安全相关的iOS逆向工程
1.2.1.1 评定安全等级
因为 iOS 逆向工程的使用均来自一个前提:iOS 越狱。
1.2.1.2 逆向恶意软件
2009 年暴露的 Ikee
病毒 是 iOS 上公开的第一款**蠕虫病毒**
它会感染那些已经越狱并且安装了 SSH,但是又没有更改 其默认 root 密码
alpine
的 iOS 设备,并且将它们的锁屏背景图改成一个英国歌手的照片。
1.2.1.3 检查软件后门
1.2.1.4 去除软件使用限制
Cydia 上最知名的“共享”源 xsellize
能够在几乎所有收费软件发布后的 3 天内对其完成破解,让他们的用户免费享受到收费软件的功能。
1.2.2 与开发相关的iOS逆向工程
- 逆向系统的调用
- 借鉴别的软件
号称iOS平台上第一款通话录音软件的Audio Recorder
1.3 iOS软件逆向工程的一般过程
所谓的 iOS 逆向工程初学者,其实至少也是 iOS App 开发的中高级程序员。
软件逆向工程可以看做 系统分析
和 代码分析
两个阶段的有机结合
1.3.1 系统分析
以新浪微博 App 为例,当我们将微博的目录展开时,会看到如图 1-3 所示的结构。在微 博目录下有 Documents、Library 等子目录,这些目录中放着对应的数据库文件以及缓存的图 片文件等
1.3.2 代码分析
要想让自己的逆向工程水平达到艺术的高 度,需要对软件开发、CPU 工作原理和 iOS 有透彻的理解。
Activator
这样的系统级插件程序。
1.4 iOS软件逆向工程用到的工具
检测工具
iOS 逆向常用的监测 工具有Reveal
、tcpdump
、libNotifyWatch
和PonyDebugger
Reveal : 可用来查看目标 App 的 UI 元素,并且可以轻松快捷的定位到我们想查看的UI元素。开发工具
用于开发越狱代码的工具:Theos
。它能编译生成最具威力的 tweak 插件,直刺 App 心脏,完成我 们期望它完成的任务。反编译器
反编译器主要就是IDA
。反编译是跟 CPU 架构相关的。可以输出函数列表及对应的汇编代码。调试器
需要在 iOS 设备上运行基于命令行的 GDB