iOS 砸壳教程(iOS 9.0)
砸壳后可以对APP进行反编译, 可以看到ipa内头文件, 具体请查看我之前写的:反编译 iOS APP .当然, 关于逆向工程有太多的教程了, 但一般都比较复杂, 本着能偷懒就偷懒, 能不造轮子就不造轮子的坚定理念, 我正努力地学习偷懒...
声明:本文纯粹技术上的探讨, 用作他途的后果自负.
1.准备工作
一台越狱了的iOS9.0.x的手机(iOS 9的其他越狱手机也行, 但是iOS9.3.3以上会遇到更麻烦的情况), 越狱软件上需要安装ssh插件OpenSSH ,命令行下和应用交互的插件Cycript.
pp助手(可以直接进入应用的Document目录, 省去用命令行拷贝dumpdecrypted.dylib
到Document)
dumpdecrypted.dylib 编译时要和自己的手机iOS版本对应, 也可以直接下载别人编译好的这位老哥已经编译好的动态库自取
从APP store下载一个app(本文以腾讯视频为例)
2.获取APP Document目录和APP进程目录
2.1手机连上Mac分享出来的WiFi,然后打开腾讯视频, 把后台所有的APP都关闭. 然后终端输入ssh root@192.168.2.x 这个ip地址是你在本地局域网的地址, 在你链接的WiFi详情里面有. 接着会让你输入密码, 如果你没改过密码默认是alpine
2.2 接着你需要输入ps -e | grep /var/mobile 找到腾讯视频对应的进程, 如下图
Snip20180117_4.png
保存好这个路径, 之后会用到
2.3 用cycript找出Document(可以不看这节, 因为通过pp助手可以得到这个Document路径)
终端输入cycript -p 2340(这个2340就是上图中的进程号, 代表着腾讯视频APP进程)
接着输入[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask][0]
然后就能看到Document目录了, 如下图
Snip20180117_9.png
保存好这个路径/var/mobile/Containers/Data/Application/6C69A0C2-F564-4524-A7FA-61D4CD637D78/Documents/"
2.4 退出cycript
特意说一下是因为之前我困在这挺久的…终端输入control + D就能退出了
3.把dumpdecrypted.dylib放入APP的Document目录中
这一步可以用scp dumpdecrypted.dylib路径 Document路径来完成, 注意要用绝对路径, 推荐另一种方法, 用pp助手完成.
首先拷贝好dumpdecrypted.dylib, 然后打开pp助手, 找到腾讯视频点进去, 如下图
进入腾讯视频Documents.jpg
点进去后你会看到Documents目录, 点进去后直接把dumpdecrypted.dylib拖进去,如下图
将dumpdecrypted拖入.jpg
4.砸壳
终于, 到了激动人心的时刻啦! 呃, 好吧, 其实这里还有个坑, 我们刚刚命令行应该执行到下图这里了
Snip20180117_9.png
然后我们cd 到上图的Document目录下, 接着执行su mobile(这两步必不可少 , 请一定要注意别遗漏), 执行完后 执行
DYLD_INSERT_LIBRARIES=/var/mobile/Containers/Data/Application/6C69A0C2-F564-4524-A7FA-61D4CD637D78/Documents/dumpdecrypted.dylib /var/mobile/Containers/Bundle/Application/134D4FAB-CF7B-49EE-A713-886F1DD31F4F/live4iphone.app/live4iphone
解释下 其实就是让动态库插入到app中, DYLD_INSERT_LIBRARIES=后面接的是dumpdecrypted.dylib这个库在Document目录下的绝对路径, 然后记得空格, 第二个路径就是app的路径了.简单点就是下图所示
DYLD_INSERT_LIBRARIES=dumpdecrypted.dyli绝对路径 空格 app绝对路径
打完上面这行命令直接回车, 然后进入app的Documents目录, 刷新下, 就能发现砸完壳的文件了, 如下图
Snip20180117_10.png
5.结语
终于大功告成了, 有没有很开心? 这也就是我们作为开发人员最开心的时刻吧. Enjoy it !