美文网首页
砸壳与class dump

砸壳与class dump

作者: 清雪飘香 | 来源:发表于2016-06-17 14:57 被阅读485次

    title: 砸壳与 class dump

    date: 2016-05-04 16:55:53

    砸壳

    以前,总觉得,用的少的,没必要记录,因为你不知道下次用是什么时候。
    后来,才明白,越是用的少的,才有记录的必要,因为用的少,也很容易忘记,记录的也少,查起来也不是那么简单。
    这些步骤网上都有,而重写的目的是因为真实执行起来还是有些不同。所以还是予以记录,方便下次查阅这遍砸壳文章记录的还挺详细。不过最后步骤有点繁琐。这里推荐比较简单的做法吧。

    1.dumpdecrypted
    源代码下载地址 , 解压后,

    $ cd /Users/gap/iOSRe/dumpdecrypted-master/
    $ make
    

    或者从github 上clone

    $git clone git://github.com/stefanesser/dumpdecrypted/ 
    $cd dumpdecrypted/ 
    $make
    

    上面的make命令执行完毕后,会在当前目录下生成一个dumpdecrypted.dylib文件,这就是我们等下砸壳所要用到的榔头。此文件生成一次即可,以后可以重复使用,下次砸壳时无须再重新编译。


    上面准备了砸壳需要的工具,下面就是砸壳步骤了。在这,极力推荐使用iFunBox这个工具, 因为可视化的操作和基于USB 的操作,会很方便快捷。这里的步骤也是基于iFunBox搭配操作的,全代码的操作可以参考这个iOSRe和上面提到的砸壳


    1.如果你手机越狱成功,打开ifunbox,连接手机,会显示你的手机系统和手机上的应用程序。

    ifunbox.png

    2.双击右侧出现的,你想砸壳的app ,会有Documents 文件夹,将mac 端上的dumpdecrypted.dylib 拖拽到Documents文件夹中。

    wechatfile.png

    3.打开terminal,通过ssh 连上你的手机

       #ssh root@yourIP 
       ~ root# ps -e   (保持你需要砸壳的应用程序在前台)  
       10679 ??         0:14.58 /var/mobile/Containers/Bundle/Application/F6DB6407-4C2D-4C04-B5C2-9942DCC8870B/WeChat.app/WeChat
    10681 ??         0:00.43 /usr/libexec/misagent
    10687 ??         0:00.21 /usr/libexec/online-auth-agent
    10696 ??         0:11.96 /var/mobile/Containers/Bundle/Application/    2B97BE49-B373-4906-A8EC-B4BD2DF7683F/Twitter.app/Twitter
    10731 ??         0:00.44 /System/Library/PrivateFrameworks/SyncedDefaults.framework/Support/syncdefaultsd
    10734 ??         0:00.37 sshd: root@ttys000 
    10738 ??         0:00.20 /System/Library/Frameworks/UIKit.framework/Support/pasteboardd
    

    /var/mobile/Containers/Bundle/Application/字样的结果就是TargetApp可执行文件的全路径。如果像上图有多个,/var/mobile/Containers/Bundle/Application/,找准哪个是你需要砸壳的app就行,这里以wechat为例。

    ~ root# cd /var/mobile/Containers/Data/Application/19ECCADD-7DAE-4647-AD3A-A706056E54FD/Documents/  (图二上的路径)
    Documents#DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib  /var/mobile/Containers/Bundle/Application/F6DB6407-4C2D-4C04-B5C2-9942DCC8870B/WeChat.app/WeChat (上面ps-e 命令找出来的路径)   
    

    最后会生成.decrypted 为扩展名的文件--(在图二中的Documents文件夹中)。把它拷贝到电脑上,使用Hopper Disassembler 软件打开,打开方式是tool 上的file ,然后通过read executable..导入,

    cltr +d 退出cycript 模式。
    

    class dump

    下载class dump http://stevenygard.com/projects/class-dump/
    然后将class-dump 复制到/usr/bin下,然而,这会报错cp: /usr/bin/class-dump: Permission denied ,可以参考iosre论坛的这篇文章解决
    安装好后,键入class-dump,会显示版本号和参数

    classdump.png
    使用方法
    class-dump -S -s -H path/xxx.decrypted -o path/Headers/ 
    

    对逆向感兴趣的,建议多多翻阅iOS逆向工程,入门的不二选择。

    相关文章

      网友评论

          本文标题:砸壳与class dump

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