美文网首页NXiOS开发总结iOS Development
iOS 逆向工程--懒人的砸壳方法

iOS 逆向工程--懒人的砸壳方法

作者: Auditore | 来源:发表于2018-01-17 19:17 被阅读191次

    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 !

    相关文章

      网友评论

        本文标题:iOS 逆向工程--懒人的砸壳方法

        本文链接:https://www.haomeiwen.com/subject/gcguoxtx.html