iOS-对App进行砸壳

作者: James_Gong | 来源:发表于2017-10-10 14:23 被阅读920次

文章砸壳使用到了ssh连接手机,Cycript注入进程查看应用的一些路劲,以及越狱的手机,所以在开始对应用进行砸壳之前,要对这些做一些提前的准备,本文就不一一细说安装方式了.我们从AppStore上面下载的应用都是加密的.要想导出应用的头文件,就得先对它进行脱壳.脱壳需要的准备工具是dumpdecrypted,这是github上面的一个开源工具.地址如下
https://github.com/stefanesser/dumpdecrypted

刚下载下来的时候,里面只有三个文件,这三个文件,里面有Makefile文件.Makefile文件里面本身就指定了编译的先后顺序,这个文件有一个好处,你只要写好了,只需要使用大多数IDE都有的命令,make命令,这样整个工程就会完全自动编译.所以我们需要在终端对这文件执行下make指令.


Makefile文件.png

我们打开终端,cd到这个目录下.执行完make指令之后,就会多出来两个文件,一个dumpdecrypted.dylib动态库文件和dumpdecrypted.o的可执行文件

执行make后.png 多出的文件.png

注入dumpdecrypted.dylib到沙盒进行砸壳

我们已经得到了一个dumpdecrypted.dylib这样的一个动态库,把这个动态库注入到我们越狱手机的沙盒里面,因为沙盒是可写的,我们需要把从AppStore下载的应用中的可执行文件,砸壳到沙盒里面进行导出.
1.以对微信砸壳为实例,首先新建一个终端,用ssh连接手机之后,使用ps -e我们可以看到很多的进程,其中在/var目录下就可以看到微信的可执行文件位置.

iOS9.0系统的bundle路劲.png

2.重新新建一个终端,把这个WeChat这个可执行文件通过scp指令拷贝到桌面文件夹,在桌面文件夹里面使用otool -l 可执行文件 | grep crypt可以看看它是否是加过壳的.如果cryptid显示的是1就证明是有壳的,如果显示的是0表示已砸过壳.

加了壳与没加壳的区别.png

3.通过Cycript指令注入WeChat这个进程.然后使用NSHomeDirectory()查看它的沙盒路劲,我们要将dumpdecrypted.dylib这个动态库注入到沙盒的Documents文件夹里面.

沙盒路劲.png

4.找到动态库的位置,通过scp把dumpdecrypted.dylib拷贝到沙盒路劲的Documents文件夹里面去.中间的root接ip地址是你手机的wifi地址,要在一个局域网里面,我这边的wifi是连接的自己mac共享出的网络.拷贝期间提示要密码输入,默认都是alpine

拷贝到Documents中.png

5.接着到沙盒里面ls查看是否已经拷贝到了里面.查看到已经拷贝进来了,我们就可以砸壳了.

查看.png

6.砸壳,使用DYLD_INSERT_LIBRARIES这样的指令,把我们拷贝在沙盒里面的dumpdecrypted.dylib
插入到WeChat这个进程里.完了之后,在Documents文件夹里面就会多出一个decrypted为后缀的文件,那么这个文件就是砸过壳的文件,我们只要把它拷贝到桌面然后使用其它方式,导出它的头文件就行了.

使用指令砸壳.png 砸完壳的文件.png

导出头文件

1.继续使用scp把我们沙盒里面这个砸过壳的文件导出来.
scp root@192.168.2.15:"/var/mobile/Containers/Data/Application/E8F80CE4-F6B8-42A9-9739-8F15875CC7C9/Documents/WeChat.decrypted" /Users/James/Desktop/123

拷贝出来.png

2.完了之后,在我们使用class-dump来导出头文件,可以在github上面把class-dump下载下来,打开它进行编译.然后选择里面的文件,把class-dump文件拷贝到和砸过壳的文件夹下就行.
https://github.com/nygard/class-dump

编译class-dump.png 编译步骤.png image.png

3.使用终端到这个文件下面可以验证WeChat.decrypted它是否已经砸过壳,指令就是前面讲过的otool -l 可执行文件 | grep crypt

验证是否已脱壳.png

4.导出头文件,在当前文件夹下使用./class-dump -SsH 砸过壳的执行文件 -o 导出的头文件存放处这样就可以完成咱们的操作了.可以看到整个头文件文件夹还是蛮大的.

使用指令导出头文件.png 最后导出的头文件.png

相关文章

  • iOS-对App进行砸壳

    文章砸壳使用到了ssh连接手机,Cycript注入进程查看应用的一些路劲,以及越狱的手机,所以在开始对应用进行砸壳...

  • iOS 逆向 - 使用 dumpdecrypted 给 APP

    iOS 逆向 - 使用 dumpdecrypted 给 APP 砸壳 对 Google Sheets 进行砸壳 i...

  • 十、iOS逆向之《越狱砸壳/ipa脱壳》

    砸壳原理 砸壳顾名思义就是对软件进行逆向操作,对已加密的软件进行解密,从而获取真实软件源码。App Store下载...

  • 23-应用砸壳

    前言 要想破解别人的App,第一步就是拿到ipa包进行砸壳,砸壳也称作软件脱壳,顾名思义,就是对软件加壳的逆操作,...

  • iOS 逆向: 砸壳

    简介 所谓的砸壳, 指的是将从 App Store 上面下载的 App 进行破解的过程. 从 App Store ...

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

    iOS 砸壳教程(iOS 9.0) 砸壳后可以对APP进行反编译, 可以看到ipa内头文件, 具体请查看我之前写的...

  • APP砸壳

    工具 class-dumpdumpdecrypted一部越狱手机OpenSSH(Cydia)Cycript(Cyd...

  • iOS逆向与安全(三):砸壳

    前言 在App Store下载应用都会进行加密,破解加密称为砸壳。本节记录在学习砸壳中遇到的问题和解决方法。 三种...

  • 3步砸壳和导出头文件教程(最简单的教程)

    1) 砸壳(快速砸壳) ,越狱设备上安装 CrackerXI (单独 的app) https://www.jian...

  • iOS方法名混淆实践

    项目缘由:由于iOS手机越狱后可以对app进行砸壳,进而进行class-dump操作,从而获取到app中所有类及方...

网友评论

    本文标题:iOS-对App进行砸壳

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