iOS反向——砸壳与反编译
创作者:瘋狂的蛋神
近期对iOS反向十分很感兴趣,就在碎片时间里自身在网上找了各种各样材料学习培训,发觉很多材料针对一些关键点叙述的不足详尽,因此 也踩了许多坑,因为我将自身踩的一些坑小结出去,期待对大伙儿有一定的协助。
注:反向是为了更好地学术研究\\学习培训的目地而去探寻,不为了更好地不法赢利或别的不正当行为而开展的。文中若有侵犯隐私或别的随时欢迎,我将在第一时间整顿或删掉。
1、Mac Book Pro(小编做iOS开发设计,暂时没有科学研究Windows自然环境下的一些专用工具或是配备,也许有一丝不一样)。
2、一部苹果越狱机器设备(沒有苹果越狱机器设备的,能够下载爱思助手等专用工具开展一键越狱,在一键越狱那里有相匹配的版本信息,这儿也不对苹果越狱太多叙述。这儿我提前准备的是一部8.3版本号的iPhone 5s)
爱思助手
3、dumpdecrypted(砸壳专用工具)
4、pp助手(用以下载提前准备砸壳的App运用)
5、iFunBox(用以将砸壳进行后的文件导出来)
6、iTools Pro(用以导进编译程序后的dumpdecrypted.dylib文件,及其对比查询文件文件目录)
7、Terminal(终端设备,大家会很多的应用到这一专用工具)
8、class-dump(砸壳专用工具)
1、下载App运用
应用pp助手下载大家提前准备砸壳的App运用(这儿我就用的是手机微信做示范性)。
目标软件——手机微信
2、手机上OpenSSH联接
把手机与Mac根据USB联接,确保手机上与Mac处于同一WiFi自然环境下,为了可以联接上手机上。
①点一下手机里的设定->Wi-Fi->已连接上的WiFi最右边的惊叹号->BootP或
②点一下手机里的设定->Wi-Fi->已连接上的WiFi最右边的惊叹号->IPV4详细地址挑选BootP,挑选右上方储存。
这时候大家的机器设备的IP地址已固定不动,那么做是为了更好地避免动态性IP的状况下IP地址被占有或详细地址变更。
3、开启终端设备
输入ssh 及其大家上一步展现的IP地址。
比如:ssh
它是大家必须输入OpenSSH的联接登陆密码,联接登陆密码的初值为alpine。
到这儿大家取得成功联接上手机了。
4、进到我们要砸壳的相匹配文件目录下
最先大家将手机上中的全部过程杀掉,回到桌面,随后点开我们要砸壳的App运用,让运用维持在前台接待。
随后在终端设备输入ps -e,大家会发觉一个很是怪异的过程。
手机微信
再开启iTools Pro依据标出的相匹配文件目录开展查询,大家会发觉这一文件目录便是手机微信所属的文件目录,假如找不着的同学们能够试一下不在进入微信和进入微信后根据ps -e指令輸出的結果不同之处在哪里,就能找到。
在WeChat.app文件夹中包括了很多的素材图片文件,配备文件及其WeChat新项目文件,此刻大家先看一下这一新项目文件是不是免杀,与不免杀有什么不同。
这时大家将WeChat.app导出来至Mac中,鼠标右键挑选WeChat,挑选表明包內容,新创建一个终端窗口,cd到包內容所属的路径中。
在终端设备输入:otool -l WeChat | grep crypt,大家会见到一个关键的信息内容,cryptid 1,这说明这一新项目文件还未没砸壳,0则表明早已进行砸壳。
总体目标文件剖析大概到这里早已达到大家必须的,下面逐渐宣布进到砸壳。
1、下载并缓解压力dumpdecrypted.zip文件(感觉Github慢的同学们能够在上原文中寻找相匹配的下载详细地址)。
我们可以见到里边包括的文件非常简单,便是三个文件,分别是一个.c文件,一个是Make编译程序文件,一个是README表明文件。
大家开启一个新的终端窗口,并cd到Makefile所属的路径,输入make。
编译程序dumpdecrypted.dylib库
编译程序进行
编译程序进行后会获得dumpdecrypted.dylib文件,随后我们要对这一文件开展一次签名,如果不对该文件开展签名, 事后砸壳的实际操作会不成功。
在终端设备输入security?find-identity -v -p codesigning,会复印出mac上边早已安裝的资格证书,这儿我就用自身的本人账户开展检测签名。
输入--force --verify --verbose --sign "iPhone Developer: XXXXX (XXXXX)" dumpdecrypted.dylib开展签名。
签名取得成功
这儿早已完成了对dumpdecrypted.dylib文件的签名,如果有发生下列提醒,则是由于在钥匙串中存有失效或是很多反复的资格证书造成 ,必须在钥匙串中删掉失效的资格证书。
存有反复资格证书
2、寻找WeChat的文件目录
WeChat路径及ID序号
从图中中我们可以见到手机微信在运作是的路径及其ID序号,在终端设备中大家输入cycript -p XXXX就可以钩住过程,根据OC英语的语法搜索到文件文件目录。(下面的图我重新启动了机器。。。过程序号就更改了,别在乎 - -)。
取得成功钩住过程
假如发生输入cycript -p XXXX后提醒-sh: cycript: command not found,则是由于机器设备中沒有安裝Cycript软件,开启Cydia,检索Cycript并安裝重新启动后就可以。
Cycript软件
钩住过程后,大家输入[[NSFileManager defaultManager]URLsForDirectory:NSDocumentDirectory inDomans:NSUserDomainMask][0]后,会复印出WeChat的Document文件目录所属路径。
复印路径
依据这一路径,大家开启iFunBox专用工具,按照这一路径将大家签名后的dumpdecrypted.dylib文件拷贝进来。
挑选Copy From Mac,将文件导进
按control d撤出勾子,cd到Document文件目录中,再输入DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /WeChat所属的WeChat.app路径
砸壳
输入后会呈现以下几点,表明砸壳成功了,取得成功后会转化成WeChat.decrypted文件,这就是我们下一步要反编译的文件了。
砸壳取得成功
根据ls命令,我们可以看到WeChat.decrypted文件就储放在Documents,大家根据iFunBox能够见到文件,并导出来到Mac中
WeChat.decrypted文件
导出来文件到当地
在当地把WeChat.decrypted文件的文件后缀名除掉,再用otool -l WeChat | grep crypt命令查询。
砸壳取得成功
显著的见到这儿表明的是cryptid 0,也就是蜕壳了。这时候再应用class-dump -H WeChat命令将总体目标文件反编译出去。大家会见到反编译出去好多好多的头文件。大家梳理到一个文件夹里。
反编译取得成功
到这儿大家的砸壳与反编译早已进行。接下来就可以依据获得的头文件开展剖析及其Hook这些。
事后会再次对反向这一方位开展深层次的科学研究,热烈欢迎诸位巨头赐教,原文中有很多不够的地区多多指教。
热烈欢迎诸位巨头给与批评意见,让我们一起学习进步。
零信任:网络信息安全防御力构思的完全转型
Mount Locker勒索病毒方案对于税务部门总体目标进行进攻
应用 TinyCheck 专用工具得到大量的隐私保护操纵
亚信安全:2020年勒索软件导致的财产损失升高50%
春节假期,这种网络信息安全预防方法铭记心头!