iOS学习笔记iOS DeveloperiOS学习开发

iOS_逆向_dumpdecrypted

2017-04-26  本文已影响65人  丶纳凉

一丶介绍

砸壳工具

“从AppStore下载的App(以下简称StoreApp)是被苹果加密过的(从其他渠道下载的一般没有加密),可执行文件被套上了一层保护壳,而class-dump无法作用于加密过的App。在这种情况下,想要获取头文件,需要先解密App的可执行文件,俗称“砸壳”。”

二丶使用:

2.1准备阶段:

2.1.1 dumpdecrypted下载:
$git clone git://github.com/stefanesser/dumpdecrypted/
2.1.2用cydia安装adv-cmds

后面会用到,主要是可以用ps命令

2.1.3用cydia安装Cycript

Cydia自带源Cydia/Telesphoreo里面找Cycript
后面会用到;

2.1.4 用Cydia安装OpenSSH

后面用到

2.1.5 iPhone和PC在同一个Wifi下
2.1.6 iFunBox

http://www.jianshu.com/p/e9d0630ef3c0

2.2 使用

2.2.1编译

在dumpdecrypted文件夹中,使用

$make

文件夹内会出现dumpdecrypted.dylib 的动态库;

2.2.2 把它放到需要砸壳的document目录下
“StoreApp对沙盒以外的绝大多数目录没有写权限。
dumpdecrypted.dylib要写一个decrypted文件,
但它是运行在StoreApp中的,与StoreApp的权限相同,
那么它的写操作就必须发生在StoreApp拥有写权限的路径下才能成功。
StoreApp一定是能写入其Documents目录的,
因此在Documents目录下使用dumpdecrypted.dylib时,
保证它能在当前目录下写一个decrypted文件,
这就是把dumpdecrypted.dylib拷贝到Documents目录下操作的原因。”

摘录来自: 沙梓社 吴航 著. “iOS应用逆向工程(第2版)"

获取你目标app的路径方法:
利用sycript查找App路径;先把所有App关闭;只运行目标App

假如目标App:XXXX

$ssh root@192.168.3.90
$ps -e
xzbde-iPhone:~ root# cycript -p XXXX
cy# [[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask][0]

最终要获取2个路径:

#可执行文件:
/var/mobile/Containers/Bundle/Application/CEAF4585-2B65-426F-944E-F616EB1F81DC/XXXX.app/XXXX
#Document:
var/mobile/Containers/Data/Application/B058D33F-F133-4555-8212-E6D1AE42B7E7/Documents/

可以使用iFunBox把dumpdecrypted.dylib拷贝到Doucument里;

切换到Document里面

$cd /var/mobile/Containers/Data/Application/B058D33F-F133-4555-8212-E6D1AE42B7E7/Documents/

执行: $DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib + 空格+执行文件path

$DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/mobile/Containers/Bundle/Application/CEAF4585-2B65-426F-944E-F616EB1F81DC/XXXX.app/XXXX

最终效果:

Paste_Image.png

三丶提取

在document里会多了个.decrypted文件;copy到pc上,就可以使用class-dump丶IDA等工具了;

Paste_Image.png
上一篇下一篇

猜你喜欢

热点阅读