iOS逆向之砸壳

AppStore上下载的应用是经过苹果加密过的,可执行文件被套上了一层保护壳,而class-dump无法作用于加密过的App。在这种情况下,想要获取头文件,需要先解密App的可执行文件,俗称“砸壳”。dumpdecrypted就是由越狱社区的知名人士Stefan Esser出品的一款砸壳工具,被越狱社区广泛运用在iOS逆向工程研究中。

  • 准备工具:
    • dumpdecrypted
    • OpenSSH
  • 砸壳步骤:
    • 1 获取dumpdecrypted.dylib,具体步骤如下:
      • 下载 dumpdecrypted
      • 打开终端,cd 到dumpdecrypted目录下, $ make,生成dumpdecrypted.dylib文件
    • 2 找到要砸壳APP的沙盒路径,以微信为例,将上一步生成的dumpdecrypted.dylib拷贝到沙盒中的Documents目录下,具体步骤如下:
      • 手机端安装OpenSSH:打开Cydia,点击软件源->编辑->添加->http://apt.so/uu4519/; 点击搜索->OpenSSH,找到威峰源的,安装(搜索的时候,发现有的OpenSSH安装不了,经查找,发现威锋源的可以用
      • 确保手机和Mac在同一局域网,打开终端,执行命令$ ssh [email protected](手机IP)
      • 输入密码,默认密码alpine,建议登录root后,最好修改密码,因为Ikee等病毒有可能通过sshroot用户登录iOS,拿到最高权限,所有数据包括短信、电话、AppleID账号密码等敏感信息都有可能被泄漏。iOS上的用户有2个:rootmobile,可以用命令passwd rootpasswd mobile分别修改两者的密码:
      • 连接成功后,当前终端用户会显示iPhone:~root,接着执行命令:$ ps -e,会列举出当前活跃的进程,从中找到WeChat
        iOS逆向之砸壳_第1张图片
      • 执行命令cycript -p WeChat
      • 这里可以写OC代码,再输入:[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask][0]找到沙盒路径。
      • dumpdecrypted.dylib拷贝到Documents, 新建一个终端窗口,执行命令:$ scp dumpdecrypted.dylib路径 root@设备IP:Documents路径.
      • 回到iPhone终端窗口,按住Control+D,退出cycriptcd到沙盒,可以看到dumpdecrypted.dylib文件已经拷贝进来:
        iOS逆向之砸壳_第2张图片
    • 3 开始砸壳
      • 执行命令:DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib路径 可执行文件路径
      • 砸壳失败,网上查找解决方案,参考链接http://blog.csdn.net/hk_5788/article/details/52425519,解决方法:在ssh登录成功后,执行命令$ su mobile,再按上述操作即可:
        iOS逆向之砸壳_第3张图片
      • 砸壳成功后,在Documents文件夹下会生成WeChat.decrypted文件,拷贝出来即可反编译

你可能感兴趣的:(iOS逆向之砸壳)