class-dump和砸壳
孙德本
2023-12-01
class-dump -H (target file) -o (result header file path)
如果导出来只有一个空的头文件,就是加密的,要先砸壳。
下载砸壳工具dumpdecrypted https://github.com/stefanesser/dumpdecrypted
终端cd到目录,输入make,生成dumpdecrypted.dylib。
重新签名:
security find-identity -v -p codesigning
codesign --force --verify --verbose --sign "iPhone Developer: xxx xxxx (xxxxxxxxxx)" dumpdecrypted.dylib
一个越狱手机。通过cydia安装openssh,cycript。
ssh连接手机。我这个是pp助手越狱的,ssh root@ip 连不上,用mac pp助手软件-》设备工具=〉打开ssh通道,可以。
手机清掉所有后台应用,打开需要砸壳的应用,处于前台。在终端输入 ps ax 或者 ps -e ,找到需要砸壳的应用,像这样:
2323 ?? Ss 0:02.20 /var/containers/Bundle/Application/A7B21EC0-5A44-4030-9A0F-D7219131B223/WeChat.app/WeChat,拷贝一份。
终端输入:cycript -p 2323(pid),输出cy#说明成功。
打印沙盒根目录:[NSString stringWithString:NSHomeDirectory()],像这样:/var/mobile/Containers/Data/Application/483EF7A4-224E-434B-BFA7-74E08F5DA230,拷贝一份。
退出cycript:control+d
进入沙盒根目录:cd 刚才打印的
把dumpdecrypted.dylib拷贝进来。由于我这台手机没法进行原始的ssh连接和sftp的操作,只能通过iFunBox,pp助手这种可视化工具。
可视化工具:打开iFunBox,进入User Applications,找到需要砸壳的应用,比如WeChat,单击进入应用沙盒,把dumpdecrypted.dylib拖进来。
或者命令:
scp dumpdecrypted.dylib root@192.168.1.22:/var/mobile/Containers/Data/Application/E2ABB23B-EC66-4DA4-AD3E-E14E20D680B5
执行 DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib "/var/containers/Bundle/Application/A7B21EC0-5A44-4030-9A0F-D7219131B223/WeChat.app/WeChat"
当前目录会有一个这样的: WeChat.decrypted,说明成功。我这里操作都是在沙盒根目录下。把.decrypted拷出来再class-dump就可以了。