一、工程逆向前景
- 1、近两年互联网行业异常火爆,创业公司如雨后春笋,APP大受追捧
- 2、越狱的日益兴起,限制苹果用户存储读写权限的被破解,APP安全问题被许多公司重视,安全等级的评估就是利用iOS逆向工程技术,常识攻击APP,然后依据评定安全等级。所以,iOS逆向是越狱逆向的基础,学习和了解iOS应用逆向工程,加强对APP的安全防范。
- 3、逆向是一门艺术也是一种研究方法,能够让你弄清楚程序运行的本来面目。看别人的实现也可以用来提升自己的架构能力。逆向能够找到一些诡异问题的root reason。最重要的是逆向能力强后,对程序,代码,算法,数据结构,计算机体系的认识会深刻很多。做项目也会从容很多,不太再会遇到什么bug搞不定。另外个人认为在漏洞挖掘上比起fuzzy逆向才是正途。
二、工程逆向的论坛
论坛地址 http://bbs.iosre.com
三、针对当前阅读内容理解
1、概念篇
Ⅰ、iOS逆向工程的简介
1)逆向的要求:熟悉iOS硬件构成、iOS系统运行原理了解,最好具备iOS丰富的开发经验; 一切都是浮云,只要有强烈好奇心和契而不舍的调研精神
2)iOS应用逆向工程
监测工具
起到嗅探、监测、记录目标程序行为工具的统称
常用工具:Reveal
反编译工具:
从UI层切入代码层面后,就用到反编译工具
常用工具:IDA和Hopper
调试工具
常用工具:Xcode和LLDB
开发工具
常用工具:Xcode和Theos
现有越狱平台:eva3rs、盘古和太极
2、逆向常用工具篇
iOS是由OSX演化而来的,而OSX则是基于UNIX操作系统的,虽然三者右很大的区别,但他们血脉相连,逆向入手先从OSX上手比较快,熟悉逆向的工具的使用方法,是iOS逆向工程的前提。下面了解一下逆向的工具
- class-dump
特点:用来dump目标对象的Class信息的工具
- Thoes
特点:是越狱开发工具包,最大特点是简单,下载安装简单,Logos语法简单,编译发布简单,越狱开发中一个常用的工具iOSOpenDev
- IDA
特点:也是反编译工具的一种
- Reveal
特点:UI分析工具,可以直观查看APP的UI布局
- iFounBox
特点:是iOS文件管理工具,方便操作iOS内的文件
- dyld_decache
特点:在浏览iOS文件系统查看/System/Library/Framework下二进制文件的提取工具
- LLDB配置debugserver
特点:Xcode中有使用LLDB命令来调试自己正在开发项目,但是如果有查看需逆向的APP,需配置debugserver+LLDB,可以动态调试别人的APP
- dumpdecrypted
特点:从AppStore下载一个App是被苹果加过密的,可执行文件被套上了一层保护壳,想获取头文件信息,需要先解密App的可执行文件,俗称“砸壳”。dumpdecrypted在Github上有开源
-
iFile 特点:iFile是iOS上一款文件管理的App,可以看作iOS版的Finder,工具十分直观,无需过多说明
-
MTerminal
特点:是开源的iOS版Terminal,基本功能一应俱全,只是屏幕和键盘小了一点