ipa砸壳解析出头文件
说明
- 在越狱的iOS设备上,解析UCWeb应用的头文件
直接将从苹果商店上下载的ipa导出头文件
class-dump -H UCWEB.app -o UCWEB
由于该ipa文件加了壳,不能解析出头文件。
砸壳
使用dumpdecrypted工具
下载地址:https://codeload.github.com/stefanesser/dumpdecrypted/zip/master
下载后解压,然后cd到该目录下,执行make命令进行编译
`xcrun --sdk iphoneos --find gcc` -Os -Wimplicit -isysroot `xcrun --sdk iphoneos --show-sdk-path` -F`xcrun --sdk iphoneos --show-sdk-path`/System/Library/Frameworks -F`xcrun --sdk iphoneos --show-sdk-path`/System/Library/PrivateFrameworks -arch armv7 -arch armv7s -arch arm64 -c -o dumpdecrypted.o dumpdecrypted.c
`xcrun --sdk iphoneos --find gcc` -Os -Wimplicit -isysroot `xcrun --sdk iphoneos --show-sdk-path` -F`xcrun --sdk iphoneos --show-sdk-path`/System/Library/Frameworks -F`xcrun --sdk iphoneos --show-sdk-path`/System/Library/PrivateFrameworks -arch armv7 -arch armv7s -arch arm64 -dynamiclib -o dumpdecrypted.dylib dumpdecrypted.o
显示如上内容,编译成功。
make命令执行完毕后,会在当前目录下生成一个dumpdecrypted.dylib文件,这就是我们等下砸壳所要用到的榔头。此文件生成一次即可,以后可以重复使用,下次砸壳时无须再重新编译。
上传文件
ssh连接到手机(我的手机ip地址是192.168.1.181)
ssh root@192.168.1.181
执行命令,找到所有进程
ps -e | grep var
查找到uc的路径
/var/mobile/Containers/Bundle/Application/78241EAF-781C-475C-BA53-84EF7C4FE23D/UCWEB.app/UCWEB
进入/var/mobile/Containers/Bundle/Application/78241EAF-781C-475C-BA53-84EF7C4FE23D/UCWEB.app路径下
利用cycript工具勾住UCWEN应用
cycript -p UCWEB
执行代码
[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask][0]
获取当前应有的Document目录,然后进入到当前Document目录下。
将我们刚刚编译好砸壳工具dumpdecrypted.dylib上传到该文件夹下。
scp dumpdecrypted.dylib root@192.168.1.181:/var/mobile/Containers/Data/Application/72D29CE0-C288-4BEB-B319-41595DA3F64A/Documents/dumpdecrypted.dylib
提示输入密码,输入手机root密码,然后提示上传进度。
dumpdecrypted.dylib 100% 193KB 192.9KB/s 00:00
开始砸壳
DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/mobile/Containers/Bundle/Application/78241EAF-781C-475C-BA53-84EF7C4FE23D/UCWEB.app/UCWEB
mach-o decryption dumper
会生成app砸壳后的文件xx.decrypted. 这里就是 UCWEB.decrypted
文件导出到电脑
root# scp UCWEB.decrypted root@192.168.1.105:/private/tmp
Password:
UCWEB.decrypted 100% 193KB 192.9KB/s 00:00
导出头文件
使用class-dump工具导出头文件
class-dump -H UCWEB.decrypted -o output/
最好放一张解析成功的图片,可以看到右6502个文件(包含第三方sdk的类)。分析应用的头文件基本可以了解应用如何搭建。