学习
实践
活动
工具
TVP
写文章

使用dumpDecrypted凿壳

iOS逆向工程中一项重要环节就是导出app所有类的.h文件,由此查看所有类及类的方法。所使用到的就是class-dump.但是在此之前我们需要得到所逆向的app凿壳后的二进制可执行文件。那么我们凿壳的工具之一dumpDecrypted。下面来介绍使用方法

前往 https://github.com/stefanesser/dumpdecrypted 下载并解压,终端cd进目录后make一下,同目录下即可生成dumpdecrypted.dylib

第二步,需要将此dumpdecrypted.dylib拷贝到所逆向app的沙盒文件中,那么我们先来寻找所逆向app的沙盒路径。在iOS设备中,app的沙盒文件放在目录var/mobile/Containers/Data/Application下如图所示

每个文件夹对应一个app的沙盒文件夹。那么怎么找出你所逆向app是哪个文件夹呢。我们先回忆一下,平时我们做正向开发的时候,是如何得知沙盒路径的呢,ok,就是NSHomeDirectory()函数,那么结合我们前面使用的SSH+Cycript让对应进程执行此函数,不就可以知道对应app的沙盒路径了吗。下面我们以迅雷app为例。

ssh登录我们的iOS设备,ps -e打印我们的所有进程名,保证iOS设备前台运行迅雷app,cycript -p iThunder注入到迅雷进程。输入函数NSHomeDirectory()即可得到迅雷的沙盒路径。如图

最终得到沙盒路径/var/mobile/Containers/Data/Application/6045B9FB-9FC9-42CD-97FA-623CE57F1B24,同时我们记下迅雷app可执行文件的地址,后面会用到。

使用scp命令将我们的dumpdecrypted文件拷贝到沙盒Documents文件目录下

接下来就是凿壳了,先cd到dumpdecrypted所在目录

cd /var/mobile/Containers/Data/Application/6045B9FB-9FC9-42CD-97FA-623CE57F1B24/Documents/

执行凿壳命令DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib 被凿壳的二进制文件,例如下

DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/mobile/Containers/Bundle/Application/889381C7-A8C8-49CF-8C39-E0B055C5AD53/iThunder.app/iThunder

等待命令执行完成后,会在Documents目录下生产同名的iThunder.decrypted文件,最后我们使用scp命令将凿壳后的二进制文件拷贝mac端,等待class-dump或是使用IDA or Hopper等工具进行反汇编

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180424G0E5QV00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

同媒体快讯

扫码关注腾讯云开发者

领取腾讯云代金券