美文网首页iOS逆向iOS开发
iOS逆向工程之砸壳

iOS逆向工程之砸壳

作者: 可惜你不是我的双子座 | 来源:发表于2018-01-05 00:27 被阅读149次

    在逆向砸壳过程中,遇到许多问题,在此把它记录下来,以备不测。废话不多说,进入主题!
    在这里,我们以微信为例(树大招风😄)。

    1.连接ssh

    打开Mac的终端,用ssh连上自己的iPhone(注意:确保自己的iPhoneMac在同一个网段)。openSSHroot密码默认为:alpine

    ssh登录手机
    遇到的问题
    ssh一直连不上手机,终端输入ssh root@之后,一直无反应。各种百度之后,发现可以用usb连接手机,很好,可以连上手机,但砸壳之路太过艰难,各种报错,网上也没有用usb连接手机砸壳的教程,只好放弃。这个问题卡了三天左右终于找到解决办法。
    1.1 iPhone版本是iOS 10.1.1,机型为SE
    解决办法
    1.进入以下路径:/private/var/containers/Bundle/Application/yalu102/yalu102.app/
    2.用文本编辑器打开 dropbear.plist 文件。
    3.替换 127.0.0.1:22 为 22。
    4.重启设备,重新使用越狱工具恢复越狱。
    注:越狱之后一定不要再装 OpenSSH 了,已经安装过的可以卸载掉。不然无法通过 WIFI 进行 SSH 连接。
    经过以上步骤,就可以愉快的使用终端通过 WIFI 连接你的 iPhone 了。
    

    1.2 iPhone版本是iOS 10.0.1,机型为iPhone 7

    
    1、卸载open ssh
    2、添加源: [http://cydia.ichitaso.com/test,cydia中搜索Dropbear并安装 59](http://cydia.ichitaso.com/test%EF%BC%8Ccydia%E4%B8%AD%E6%90%9C%E7%B4%A2Dropbear%E5%B9%B6%E5%AE%89%E8%A3%85)
    3、重新安装open ssh
    然后重试ssh root@iPhone ip,就可以了
    
    2.寻找微信可执行文件

    接下来我们需要找到微信的可执行文件的具体位置 ,我们先把iPhone上的所有程序都关掉,唯独留下微信。然后输入命令 ps -e,保存可用。

    可执行文件
    3.寻找Documents具体路径

    最后我们需要用Cycript找出微信的Documents具体路径。输入命令cycript -p WeChat
    进入cy#模式输入NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0]就能找出Documents的具体路径,保存可用。

    Documents具体路径
    提示:control+D 可退出模式
    4.编译dumpdecrypted

    dumpdecrypted下载地址
    进入dumpdecrypted源码的目录,输入指make来编译dumpdecrypted。一般make后会在当前目录下生成一个dylib文件。

    编译dumpdecrypted流程
    5.rsync拷贝指令

    题外话,之所以不用scp拷贝指令,是因为执行时报错了,并且rsyncscp更有优势。输入:rsync -avzu --progress 源文件路径 root@ip:目标文件路径

    rsync
    6.开始砸壳

    重新连接ssh,cdDocuments具体路径下,输入dumpdecrypted的指令:DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /PathTo

    砸壳
    遇到的问题
    砸壳报错了,看错误提示,很明显,dumpdecrypted.dylib缺少所需的代码签名,那么我们给他签名就是了。
    dumpdecrypted.dylib: required code signature missing for 'dumpdecrypted.dylib'
    

    解决办法
    终端输入

    ldid -S /Users/zy/Desktop/dumpdecrypted-master/dumpdecrypted.dylib
    

    然后再重复第六步,此时砸壳成功。然后就会生成.decrypted的文件,这个就是砸壳后的文件。我们接下来就可以对他做操作了,比如导出头文件。

    砸壳成功
    7.rsync远程下载到本地

    输入:rsync -avzu --progress -r root@ip:文件目录/文件名 /目的地

    拷贝文件到本地
    8.导出微信头文件

    使用class-dump为刚刚砸壳后的文件WeChat.decrypted进行头文件提取。不会安装请看mac 工具集(1)之class-dump
    输入:class-dump -H 需要导出的框架路径 -o 导出的头文件存放路径

    头文件
    至此,砸壳成功!
    参考:

    萌新提问,在线等!ssh 连不上手机是怎么回事
    用rsync代替scp在iOS和OSX之间传输数据
    OS逆向基础-砸壳+class-dump
    iOS逆向开发-砸壳
    Mac ssh 登录 iphone 无响应问题请教

    主要参考:【IOS应用逆向工程:分析与实战】

    相关文章

      网友评论

        本文标题:iOS逆向工程之砸壳

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