说明

  • 在越狱的iOS设备上,解析UCWeb应用的头文件

直接将从苹果商店上下载的ipa导出头文件

class-dump -H UCWEB.app -o UCWEB

由于该ipa文件加了壳,不能解析出头文件。

砸壳

使用dumpdecrypted工具
下载地址:https://codeload.github.com/stefanesser/dumpdecrypted/zip/master
下载后解压,然后cd到该目录下,执行make命令进行编译

  1. `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
  2. `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 

开始砸壳

  1. DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/mobile/Containers/Bundle/Application/78241EAF-781C-475C-BA53-84EF7C4FE23D/UCWEB.app/UCWEB
  2. mach-o decryption dumper

会生成app砸壳后的文件xx.decrypted. 这里就是 UCWEB.decrypted

文件导出到电脑

  1. root# scp UCWEB.decrypted root@192.168.1.105:/private/tmp
  2. Password:
  3. UCWEB.decrypted 100% 193KB 192.9KB/s 00:00

导出头文件

使用class-dump工具导出头文件

class-dump -H UCWEB.decrypted  -o output/

*好放一张解析成功的图片,可以看到右6502个文件(包含第三方sdk的类)。分析应用的头文件基本可以了解应用如何搭建。

 

%title插图%num