一条龙 发表于 2019-9-13 23:46:49

iOS逆向入门准备

接触了一个多星期的iOS逆向,决定花点时间写点东西来介绍一下入门的工具和记录一下学习过程中遇到的一些问题。

## 越狱

首先我们需要准备一个越狱的iPhone,iTouch或者iPad。我用的是iOS8.4的iPad。
越狱很简单,我们只需要下载一个比如PP助手,太极越狱等得第三方软件一键越狱就行了。我使用的是[太极越狱](https://link.jianshu.com/?t=http://www.taigpro.com/)。

## Mac和iOS工具

### iFunBox

这是一个再Mac上能查看iPhone文件内部文件结构的软件,借助这个软件我们可以轻易地查看文件,使得Mac和iPhone文件之间文件进行复制。



### IDA

这是一个分析执行文件的工具很强大但也很贵,但是有32位的试用版只是不能保存数据而已。可是由于现在机器基本都是64位的,所以还是得买买买。我打算过几天去买个hopper毕竟ida还是比较贵



### OpenSSH

这个是在iOS上的工具,主要可以让外部和iPhone进行ssh通信,直接在cydia里面搜索安装就行。
连接的命令是

```css
    ssh root@192.168.11.111(iPhone的IP地址)
```

默认密码是alpine。

### class-dump

主要是用来砸壳,将.h头文导出

```ruby
    class-dump -S -s -H XXX -o /path/headeres
```

这样就将头文件全部倒出来了。
但是因为appstore下载的app是进行过加密的,所以无法直接dump出来,需要用另外一个叫做dumpdecrypted的工具来进行砸壳才能dump。

### dumpdecrypted

这个工具的话主要是用来对app进行砸壳,dumpdecrypted在github上开元的,必须编译后才能使用,这里就补详细介绍了,直接给一个编译后的[链接](https://link.jianshu.com/?t=https://github.com/zzx79189917/dumpdecryted)。
如何使用它呢,就是先通过ssh连接到iOS上:

```css
    ssh root@192.168.11.111
```

然后通过命令打印出当前活动的app

```undefined
    ps -e | pre /
```

再通过cycript找出其路径

```css
    cycript -p XXXApp
    [ URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask]
```

然后将dumpdecrypted.dylib复制到获取到得目录中

```csharp
    scp /Users/.../dumppdecrypted.dylib root@192.168.11.111:/var/...
```

最后砸壳

先进入到APP的documents目录下,然后执行命令:

```csharp
    DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/Contains/.../XXX.app/XXX
```

这样就完成了砸壳,然后就砸壳后获取的XXX.decrypted文件复制回Mac就可以进行dump了。

### cycript

这是一个脚本再iPhone上使用的脚本语言,在上面已经介绍过它能够获取到App路径,它还有实时改变UI的功能。比如书上介绍的通过cycript来弹出一个alertView

```csharp
cycript -p XXX
alertView = [initxxxx]    (这就跟iOS开发的一样但不需要引号

```

这样就会显示一个alertView出来。它还通过#地址来获取对象:

```bash
[#address nextResponder]就能够获取下一个对象的地址
```

### LLDB和debugserver

这两个工具比较复杂,可以仔细阅读下[《iOS应用逆向工程》](https://link.jianshu.com/?t=https://www.amazon.cn/iOS应用逆向工程-沙梓社/dp/B00VFDVY7E/ref=sr_1_1?ie=UTF8&qid=1471656623&sr=8-1&keywords=逆向应用工程)以及一些相关资料。不过需要跟IDA或者Hopper配合使用。

### Theos

这里就不介绍用法,主要强调一下,别去装最新版的!好多bug!

### iOSOpenDev

这里主要讲 一下安装的方法,先在(https://link.jianshu.com/?t=http://iosopendev.com/download/)下载一个安装包,安装后一般都会提示失败。
然后到[链接](https://link.jianshu.com/?t=https://gist.github.com/jridgewell/5298903)下载这个批处理文件。然后执行:

```csharp
   > sh sh 文件路径 base
```

这个应该是对iOSOpenDev修复,然后就可以看到Xcode里面装上了。



大致的应用工具都简单介绍了一下,有什么错误的希望指出。

参考资料:

《iOS应用逆向工程》第二版
页: [1]
查看完整版本: iOS逆向入门准备