首先介绍下这俩个工具的作用:
dumpdecrypted.dylib: 本身是一个动态库, 通过它给App的可执行文件砸壳.
class-dump: 给砸壳后的可执行文件导出头文件.
下面介绍下使用流程, 我们以腾讯视频为例子:
0. 默认在苹果商店下载的app是加密了的, 可以使用 otool -l 可执行文件路径 | grep cryptid 查看, 如果是1代表是加密的, 如果是0则是没有加密.
1. 通过OpenSSH连接到手机, 输入密码默认是alpine ssh root@192.168.1.101
2. 把用不到的App退出, 打开腾讯视频, 然后在终端执行 ps -e 查看当前手机进程, 然后找到腾讯视频的进程, 进入到腾讯视频的进程并记录当前的文件目录(其实就是可执行文件的目录)
/var/mobile/Containers/Bundle/Application/21399F3D-94F9-4253-9C43-F71744AA515A/live4iphone.app/live4iphone
执行命令后看到如下标志就证明进入成功
3. 执行 NSHomeDirectory() 获取当前的Documents文件目录, 并把我们的砸壳工具放入这个目录下 (/var/mobile/Containers/Data/Application/719D0845-A8BB-4ADD-AF30-598272A4D3D7/Documents/)
看到如下截图就成功了:
4. cd到我们的Documents文件下执行我们的砸壳操作命令 DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/mobile/Containers/Bundle/Application/21399F3D-94F9-4253-9C43-F71744AA515A/live4iphone.app/live4iphone
下面就是成功的截图, 这时去可执行文件目录下看看, 你就发现会多一个 live4iphone.decrypted 的文件 , 这个就是我们砸壳后的文件
5. 把砸壳得到的文件保存到电脑桌面上
scp root@192.168.1.101:/var/mobile/Containers/Data/Application/719D0845-A8BB-4ADD-AF30-598272A4D3D7/Documents/live4iphone.decrypted ~/Desktop/live4iphone.decrypted
然后就等着吧, 这里如果网速不好也可以使用PP助手直接拉到桌面上也可以.
这样就成功了:
6. 然后就可以使用class-dump进行导出操作了
class-dump --arch arm64 破解的文件路径 -H -o 要存放的目录路径 (加 arm64的目的是指定dump的目标可执行文件的架构, 因为砸壳不是把可执行文件的所有架构都进行砸壳, 而是对其中手机当前架构的可执行文件进行砸壳)
执行后就发现多了很多.h文件, 这说明我们成功了.
错误解析:
上图错误一般就是cd到的路径不对, 正常应该cd到 Documents文件下.
上图错误一般是dumpdecrypted.dylib 签名问题, 需要重新签名即可.
好了到这里就结束了, 其实没什么难度的, 只是网上的资料比较零散, 所以找起来耗费时间, 这里我都写在一起了, 以后用到的时候看一下就可以了.