IOS逆向技术入门

本文介绍了iOS逆向工程的基础知识,包括环境准备、静态分析和动态调试等。重点讲解了如何使用USB调试iPhone,砸壳工具dumpdecrypted和frida-ios-dump,以及动态调试工具LLDB和Frida的使用。还提到了其他分析方法,如BurpSuite截获网络流量和UI分析工具Reveal。
摘要由CSDN通过智能技术生成

 

环境准备

使用USB调试iphone

用wifi调试的时候,会觉得有些卡壳,所以,改用USB,这样速度会明显提升。使用USB连接,需要安装usbmuxd,安装以后,做端口转发即可。

ssh连接越狱iPhone

usbmuxd自带工具iproxy,iproxy可以快捷连接iPhone操作。由于Mac上只支持4位的端口号,所以需要把iPhone的默认端口22映射到Mac上,相当于建立一个Mac和iPhone的通道。

终端输入:

iproxy 25025 22

然后会自动显示如下等待连接字样

waiting for connection

在另外一个终端输入:

ssh -p 25025 root@127.0.0.1

参考:SSH连接越狱iPhone

 

下面的nohup命令是让iproxy在后台运行,这样,可以避免起多个terminal:

nohup iproxy 25025 22 > /dev/null 2>&1 &
ssh root@localhost -p 25025

默认密码

越狱以后的默认密码:alpine

免密登录

在/var/root/.ssh/authorized_keys文件中添加本机的id_rsa.pub内容,可以实现免密ssh登录iOS。

 

数据传输

scp -P 25025 image.jpg root@localhost:/var/mobile/Containers/Data/Application/498DC197-C1C2-46B0-A828-3AF1E9C36CE1/tmp/

静态分析篇

要对一个iOS应用进行分析,尤其是有壳的应用程序,需要先砸壳。下面就从砸壳开始说起,如果没有壳,也不影响,可以将应用程序dump成IPA,方便进一步分析。

 

iOS应用程序砸壳

使用dumpdecrypted砸壳

下面就介绍砸壳的过程:

  • 下载和编译下面的dumpdecrypted,编译完成以后,会生成dumpdecrypted.dylib

参考:https://github.com/stefanesser/dumpdecrypted

  • 将dumpdecrypted.dylib拷贝到当前权限可以写的目录下(看到不少文章写要放在对应的document目录,应该是对于没有越狱的iphone,有权限限制的问题)
DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/mobile/Applications/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/AAA.app/AAA
  • 执行完成以后,就会发现有一个AAA.decrypted的程序,这样,就解决加壳的问题了。

 

使用frida-ios-dump砸壳(推荐使用)

除了上面的方法,还有使用frida-ios-dump的一键砸壳,可以参考:

http://www.alonemonkey.com/2018/01/30/frida-ios-dump/

这种方法对于动态库(dylib)加壳是非常有用的,可以方便处理。默认dump.py使用的事2222端口,所以,需要将2222映射到IOS的22端口上。

nohup iproxy 2222 22 > /dev/null 2>&1 &

frida-ios-dump之前的版本,在Frida 12.5.0以后,存在兼容性问题,不过,后面作者修改了code,已经解决了。所以,如果你的Frida版本高于12.5.0,一定要用最新版的frida-ios-dump。

 

# 列出iOS设备上的应用程序
python dump.py -l

 PID  Name                  Identifier
----  ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值