广州公司网站提供,帮别人做ppt赚钱的网站,电商平台代运营服务,标识设计公司网站作者#xff1a;疯狂的蛋神近来对iOS逆向十分感兴趣#xff0c;就在业余时间里自己在上网找了各种资料学习#xff0c;发现许多资料对于一些细节描述的不够详细#xff0c;所以也踩了很多坑#xff0c;我也将自己踩的一些坑总结出来#xff0c;希望对大家有所帮助。注疯狂的蛋神近来对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 root192.168.1.1这是我们需要输入OpenSSH的连接密码连接密码的初始值为alpine。到这里我们成功连接上手机了。4、进入我们要砸壳的对应目录下首先我们将手机中的所有进程杀死回到桌面然后点开我们要砸壳的App应用让应用保持在前台。然后在终端输入ps -e我们会发现一个很是奇怪的进程。微信再打开iTools Pro根据圈出的对应目录进行查看我们会发现这个目录就是微信所在的目录如果找不到的同学可以试试在不打开微信和打开微信后通过ps -e命令输出的结果不同点在哪儿就能找到了。iTools Pro下微信完整路径在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将文件导入按controld退出勾子cd到Document目录中再输入DYLD_INSERT_LIBRARIESdumpdecrypted.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等等。后续会继续对逆向这个方向进行深入的研究欢迎各位大佬指教文中有许多不足的地方多多包涵。欢迎各位大佬给予批评意见让我们一起学习进步。