iOS脱壳技术

文章结构

前言

在iOS开发中,经常遇到需要去对别人的app做一些参考或者修改。在app被打包到 app store后,ipa可执行文件会被加密并加壳,那么我们如何解密并脱壳已达到使用 class-dump 命令或者 Hopper 软件查看ipa文件的结构呢?下面我将介绍两个开源库。

Clutch工具

安装方法

进入 github 下载最新的插件,我这里以 2.0.4版本号为例

image.png

将下载后的文件拖到Mac桌面并重命名为 Clutch (方便后续的更新)。将Clutch文件放入到 iPhone => user/bin 目录下,这样做的目的是为了在iPhone终端中直接敲出 Clutch 命令

Clutch存放路径

如果在输入 Clutch 命令后提示 Permission denied,可以使用如下命令

权限不足解决方法

使用方法

iPhone:~ root# Clutch
Usage: Clutch [OPTIONS]
-b --binary-dump <value> Only dump binary files from specified bundleID
-i --print-installed     生成安装后未破解的序号
-d --dump <value>        输入序号或者BundleID开始破解
   --clean               Clean /var/tmp/clutch directory
   --version             Display version and exit
-? --help                Display this help and exit
-n --no-color            Print with colors disabled

1.使用Clutch -i查看未脱壳的app,并生成序号
2.使用Clutch -d 加上序号或者BundleID开始脱壳

脱壳成功后保存的路径

3.将脱壳成功后生成的ipa保存到Mac本地,方便后面使用

对比是否脱壳成功

查看未脱壳mach-o文件

找到在iPhone中安装好后未脱壳的app mach-o 文件(可执行文件)。

iPhone:~ root# ps -A | grep WeChat
  942 ??         0:43.14 /var/mobile/Containers/Bundle/Application/DCBB48DF-CD56-4B2E-ACAB-1941FEF8FBE5/WeChat.app/WeChat

将文件拖拽到Mac桌面,用于对比


未脱壳 mach -o

使用MachOView库或者otool查看cryptid

查看cryptid

如果cryptid值大于0就表示改mach-o未脱壳

查看已脱壳mach-o文件

将保存到Mac本地并且已经脱壳成功后的ipa解压,将其中的可执行mach-o文件拖到桌面

找到 mach-o 文件

使用MachOView库或者otool查看cryptid

查看cryptid

可以看到,脱壳成功后,改cryptid值已经变成0。这样在使用class-dump或者Hopper时,就没有任何障碍了。

dumpdecrypted工具

安装方法

进入 github,下载后解压,并使用make命令进行编译

make命令生成的动态库

可能产生的报错和解决方法:

报的错:
xcrun --sdk iphoneos --find gcc  "iphoneos" cannot be located
解决方法:
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer/

将生成的dumpdecrypted.dylib文件传入到iPhone => /var/root下(方便在root根环境下使用)

使用方法

1.终端进入root目录
2.使用DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib 手机端mach-o文件地址
3.生成的WeChat.decrypted会在保存在/var/root目录下

生成的mach-o文件

ps:可以使用ps -A | grey 查询的关键字来进行app运行期间的进程模糊搜索

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,377评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,390评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,967评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,344评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,441评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,492评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,497评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,274评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,732评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,008评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,184评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,837评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,520评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,156评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,407评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,056评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,074评论 2 352

推荐阅读更多精彩内容

  • 为了表示我对简书『饱醉豚』事件的不满,简书不再更新,后续有文章只更新 个人博客和 掘金 欢迎移步 个人博客或者 掘...
    eagleyz阅读 1,395评论 0 3
  • 为了表示我对简书『饱醉豚』事件的不满,简书不再更新,后续有文章只更新 个人博客和 掘金 欢迎移步 个人博客或者 掘...
    eagleyz阅读 7,222评论 0 4
  • Cycript简介 Cycript是Objective-C++、ES6(JavaScript)、Java等语法的混...
    斑驳的流年无法释怀阅读 800评论 0 0
  • 逆向工程的目的 1)分析竞品的最新研究或者产品原型(包括所用的技术,所使用的框架) 2)学术/学习目的。 3)破解...
    零度_不结冰阅读 690评论 0 2
  • 说明: 本文所有iPhone:~ root#为前缀的命令指的是SSH远程登录手机后执行的命令 SSH远程登录iPh...
    烟影很美阅读 2,486评论 3 4