逆向工程iOS开发ios reverse

iOS砸壳(dumpdecrypted)

2016-12-24  本文已影响1235人  涵元
1.环境准备

a.越狱设备一台,我这手上的是iPhone 5s,系统版本是8.4

b.Cycript Cycript是由Cydia创始人Saurik推出的一款脚本语言,Cycript 混合了Objective-C javascript语法的解释器,这意味着我们能够在一个命令中用Objective-C或者javascript,甚至两者兼用。它能够挂钩正在运行的进程,能够在运行时修改应用的很多东西。Cycript的安装简单,可在越狱设备上从Cydia搜索Cycript并安装即可

IMG_4783.PNG

c.越狱设备打卡Cydia搜索安装OpenSSH

IMG_4782.PNG

d.打开Mac 终端 ,下载dumpdecrypted工具源码,git clone dumpdecrypted

Paste_Image.png

然后 cd 到dumpdecrypted源码所在目录,执行make命令,编译生成砸壳工具dumpdecrypted.dylib

Paste_Image.png
2.砸壳,这里是以微信为实验对象

打开Mac终端,使用ssh链接到越狱设备,默认的密码是:alpine,这里注意要保证你的越狱设备与Mac是在同一网段内。

ssh root@设备的ip地址     (这里是一个🌰:ssh root@192.168.2.3)
Paste_Image.png
a.使用ps命令找出目标进程路径

登录上越狱设备后,在越狱设备上运行需要砸壳的对象,使用ps命令查看进程,懂Linux的小伙伴不用我解释了吧,不懂Google。执行ps -e命令后终端会显示越狱设备当前运行的所有进程,找到需要砸壳的应用,记录下路径和编号。本文以微信为🌰:搜索微信应用名的关键字WeChat,那么我是怎么知道微信应用名的呢?很简单,把越狱设备上所有应用都关掉,只留下你想要砸壳的那个应用,这样使用ps -e打印出来就会只有目标应用了。

iPhone-5:~ root# ps -e
1091 ??         0:03.35 /var/mobile/Containers/Bundle/Application/A5960257-7E26-45EC-A28C-315FCBB15852/WeChat.app/WeChat
Paste_Image.png
b.使用Cycript找出目标应用的 Documents 目录路径

Cycript查找应用的Documents 目录了:命令行中输入 cycript -p WeChat 然后在输入NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0] 命令,最后就能打印出Documents 目录路径了。

Paste_Image.png
(🌰这个是我是手机上微信的Documents路径:/var/mobile/Containers/Data/Application/05330136-5902-48C1-96A6-3C03F275DC73/Documents)
拿到我们想要的路径后使用Ctrl + D退出Cycript模式
c.将步骤1中生成的dumpdecrypted.dylib拷贝到目标应用的Documents 目录下

打开新的终端,在终端中输入以下命令:

$scp ~/dumpdecrypted.dylib root@192.168.2.3:/var/mobile/Containers/Data/Application/05330136-5902-48C1-96A6-3C03F275DC73/Documents

注意ip地址换成自己的手机的ip,dumpdecrypted.dylib 路径换成你自己的路径


Paste_Image.png
*d.开始使用dumpdecrypted.dylib砸壳

Mac 终端ssh 连上 越狱设备,然后在终端上输入以下命令:

$ cd /var/mobile/Containers/Data/Application/05330136-5902-48C1-96A6-3C03F275DC73/Documents
$ DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/mobile/Containers/Bundle/Application/A5960257-7E26-45EC-A28C-315FCBB15852/WeChat.app/WeChat
Paste_Image.png Paste_Image.png

注意上条命令格式: DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib路径 空格 目标进程路径
以上命令执行完成后,在目标应用的Documents目录下生成一个WeChat.decrypted文件, 这就是砸壳后的文件。ls -l查看 Documents目录结构

Paste_Image.png
e.将目标应用的Documents目录下的WeChat.decrypted拷贝到Mac上

Mac打开新的终端,输入以下命令:

$scp root@192.168.2.3:/var/mobile/Containers/Data/Application/05330136-5902-48C1-96A6-3C03F275DC73/Documents/WeChat.decrypted ~/dumpdecrypted
Paste_Image.png

WeChat.decrypted拷贝到Mac上 ~/dumpdecrypted 文件中。至此,iOS ipa 的整个解密流程就走下来了。下一篇文章将介绍使用class-dump 将ipa头文件导出。

上一篇下一篇

猜你喜欢

热点阅读