iOS逆向 砸壳之dumpdecrypted
1.把app用iTools倒到电脑桌面,生成api的包,用归档实用工具打开
2.然后打开显示包内容,找到可执行文件,用Go2shell打开,在终端输入otool -l WeChat | grep crypt,查看文件加密还是不加密,cryptid 1为加密,cryptid 0为不加密
3.在终端输入: lipo -info WeChat, 结果Architectures in the fat file: WeChat are: armv7 arm64,armv7 arm64两个架构,都为加密状态
4.下载dumpdecrypted砸壳工具,下载地址 https://github.com/stefanesser/dumpdecrypted, 下载后 打开终端 进入该砸壳工具的路径 开始编译文件,获得图1里的dumpdecrypted.dylib
图1make
5.ssh连接到手机,打开你想砸壳的APP,在运行手机的终端 输入 ps -e
得到
2138 ?? 0:19.53 /var/containers/Bundle/Application/6A0A9377-9C98-426B-9BED-08AE81DC2DF2/WeChat.app/WeChat
6.手机终端输入cycript -p2138
7.然后输入 [NSHomeDirectory() stringByAppendingString:@"/Documents"]
进入后 可以执行相应的OC代码 此处要获取的是沙盒路径
/var/mobile/Containers/Data/Application/69E1EFA7-86DD-4D55-8F59-6D83D6974A23/Documents
8.对电脑上的dumpecrypted.dylib文件,进行签名
在新开的终端输入: security find-identity -v -p codesigning,选择证书
然后在电脑dumpecrypted.dylib文件所在目录,codesign --force --verify --verbose --sign "iPhone Developer: xxx xxxx (xxxxxxxxxx)” dumpdecrypted.dylib,签名以后
9.把dumpdecrypted.dylib拷贝到 第6步获取到的沙盒路径下
10.在终端输入exit(0)
11. cd到Documents的文件夹下,执行 DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib "可执行文件的路径(即之前获取到的Bundle路径)",即
2138 ?? 0:19.53 /var/containers/Bundle/Application/6A0A9377-9C98-426B-9BED-08AE81DC2DF2/WeChat.app/WeChat
12.12.终端输入ls,会有WeChat.decrypted 这个文件,砸壳成功,拷贝到电脑,现在你就可以开始用class_dump 、Hopper Disassembler、IDA工具等来分析了,下图是砸壳成功的显示