今天来介绍一个工具dumpdecrypted
从AppStore下载的APP 都是经过apple加过密的,可执行文件被套上了一层壳。class-dump 无法作用于加密过的APP。在这种情况下,想要获取APP的头文件,就必须解密APP的可执行文件,俗称“砸壳”。dumpdecrypted就是有越狱社区的知名人士Stafan Esser 出品的一款砸壳工具,被广泛运用于iOS 逆向工程中。
首先,获取dumpdecrypted
sudo git clone git://github.com/stefanesser/dumpdecrypted
编译:make
在当前目录下会生成一个 dumpdecrypted.dylib文件
$ ls
Makefile dumpdecrypted.c dumpdecrypted.o
README dumpdecrypted.dylib
$ssh root@iOSIP
然后打开targetApp
$ps -e
可以清楚的看到TargetApp
~ root# cycript -p Meilishuo
cy# [[NSFileManager defaultManager]URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask][0]
#"file:///var/mobile/Containers/Data/Application/DEEAB8F8-3E18-436D-9D9B-65BA5241E153/Documents/"
cy#
这样我们就找到了document 的路径了
然后将dumpdecrypted 拷贝到Docments目录下
scp dumpdecrypted.dylib
root@192.168.2.15:/var/mobile/Containers/Data/Application/D11ABC62-5CF4-48B9-ACD8-973F4DF87500/Documents/
拷贝过去后,开始砸壳
具体命令:
$cd /var/mobile/Containers/Data/Application/D11ABC62-5CF4-48B9-ACD8-973F4DF87500/Documents/
$DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/mobile/Containers/Bundle/Application/835D7556-F2DA-49C5-ADF4-B33E4A00B686/Meilishuo.app/Meilishuo
砸壳后会在documents目录中生成一个对应的decrypted 文件
root# ls /var/mobile/Containers/Data/Application/DEEAB8F8-3E18-436D-9D9B-65BA5241E153/Documents/
Meilishuo.decrypted dumpdecrypted.dylib* lua/
TCSdkConfig.plist local_log/ tencent_analysis_qc.db
然后将这个decrypted 文件考到电脑中即可,使用class-dump IDA 等工具进行分析。
使用class-dump 进行分析,
$class-dump -S -s -H WeChat.decrypted -o wechat.h
[wechat.h]$ ls -l |wc -l
6447
再用上述命令查看,我们可以看到微信的庞大,膜拜一下吧!