美文网首页iOS
ios逆向入门教程(一)

ios逆向入门教程(一)

作者: 小丶悟空 | 来源:发表于2018-05-26 14:18 被阅读1310次

    需要更多关于ios开发资料的可以加我的iOS交流群714042473:,不管你是小白还是大牛欢迎入驻面试经验,讨论技术, 大家一起交流学习成长!希望帮助开发者少走弯路,微信如下

    1.准备工作:

    (1)一台越狱手机,并装有以下软件:cycript,openssh

    (2)下载工具库,内容列表:

    (3)在越狱手机上,从appstore上,下载WeChat(微信)。

    2.ssh到手机终端

    (1)打开Mac的终端窗口,运行工具库的USBSSH目录下的tcprelay.py,执行命令:

              /Users/fujin/Desktop/USBSSH/tcprelay.py -t 22:2222

    (2)另打开一个Mac的终端窗口,执行命令:

             ssh root@127.0.0.1 -p 2222

            运行后,提示输入密码:alpine(默认密码)

    3.安装Theos开发工具:

    (1)另开启一个Mac终端窗口,cd到Theos-Script-master目录,执行命令:

           ./TheosScript.sh    回车,运行效果如图,输入 1  回车:

    (2)安装完毕后,在终端输入cd /opt/theos,如果有内容说明安装成功 ,如图:

    4.砸壳和导出微信头文件:

    (1)手机运行微信,保持在前台。找到刚才ssh成功的终端窗口,执行命令:ps -e,然后找到微信运行的进程id。

    (2)追加微信进程id ,执行命令:cycript -p 5409,继续执行命令(注意保持微信在前台运行):[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory   inDomains:NSUserDomainMask][0],如图

    (3)按快捷键control+D,退出cycript。

    (4)拷贝dumpdecrypted.dylib到微信的Documents目录下,dumpdecrypted.dylib在工具库的Crack-file-master目录下。另开启一个终端窗口,执行命令:

    scp -P 2222 /Users/fujin/Desktop/逆向/Crack-file-master/crack\ file/dumpdecrypted.dylib  root@127.0.0.1:/var/mobile/Containers/Data/Application/3F928AD9-8FE7-4BA0-BDD9-568F101B542F/Documents

    运行后输入密码:alpine

    (5)砸微信的壳,找到之前ssh手机的那个终端窗口,执行命令:

              命令1 :cd /var/mobile/Containers/Data/Application/3F928AD9-8FE7-4BA0-BDD9-568F101B542F/Documents/

              命令2: DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/containers/Bundle/Application/C698FCB3-AB86-4E06-BAE2-9765AECA5998/WeChat.app/WeChat(注意:“/var/containers/Bundle/Application/C698FCB3-AB86-4E06-BAE2-9765AECA5998/WeChat.app/WeChat” 这个是之前让记下来的地址!)

    (6)蒋砸壳后的文件和微信的安装app拷贝到到Mac上。操作步骤,在另一个终端窗口,执行命令:

          1.首先在Mac上建立一个文件夹,名字任意。

          2.在终端窗口,执行命令:

              (a)scp -P 2222 root@127.0.0.1:/var/mobile/Containers/Data/Application/3F928AD9-8FE7-4BA0-BDD9-568F101B542F/Documents/WeChat.decrypted /Users/fujin/Desktop/逆向/wechat

            (b)scp -r -P 2222 root@127.0.0.1:/var/containers/Bundle/Application/C698FCB3-AB86-4E06-BAE2-9765AECA5998/WeChat.app  /Users/fujin/Desktop/逆向/wechat

    (7)导出微信头文件:

        1.继续执行命令:cd Theos-Script-master/ 到这个目录下

        2.执行命令:./TheosScript.sh  ,回车,输入 2 ,回车,然后新建一个文件夹(我的叫头文件),然后按终端窗口的提示拖拽文件,WeChat.decrypted和上面刚建的头文件夹,回车。

      3.成功以后,会在头文件夹内有文件生成:

    (8)hook微信的登陆页的某个按钮的逻辑:

        1. 回到刚才ssh成功到手机的终端窗口,手机运行微信,并返回到微信的登陆页,然后终端执行命令:ps aux | grep WeChat (查看微信的进程)

      2.执行命令:cycript -p 6416 (注入微信进程)

                            UIApp.keyWindow.recursiveDescription().toString()(查看当前页view层级)

    我们可以随机的选取一个节点不要太靠树叶,也不要太靠树根,例如我选的是标红的部分,把这个节点的内存地址copy出来,这个内存地址,就代表了这个节点的view对象,ios开发的老油条们都知道,通过view的nextResponder方法,可以找出它所属的视图控制器ViewController,所以我么在cycript的控制台中持续输入如下的命令:

    结果发现,登陆页是WCAccountLoginFirstViewController这个控制器。

    3.在header文件夹内找到WCAccountLoginFirstViewController.h文件,发现有个函数叫-     (void)onChangeLanguage;我们准备hook这个函数。现在使用Logify,它是theos的一个模块,作用就是根据头文件自动生成tweak,生成的tweak会在头文件的所有方法中注入NSLog来     打印方法的入参和出参,非常适合追踪方法的调用和数据传递。

    在pc端的终端窗口执行命令:/opt/theos/bin/logify.pl /Users/fujin/Desktop/逆  向/weixin/header/WCAccountLoginFirstViewController.h >Tweak.xm,然后修改Tweak.xm内容,成下图这样(其实就是内部加了alert对话框).

    4.创建theos项目:

    我们进入终端,然后cd进入你要放工程的文件夹目录比如桌面上我新建好的一个文件夹“逆向”,然后执行启动 NIC(New Instance Creator)。如下:

    我们可以看到iphone/tweak,所以我们输入 11 选择一个tweak工程,然后回车确定后,会让我们输入一些名字 id 等等信息,如图:

    注意,要被hook的app的bundleId,也就是微信app的bundleId,可以在咱们导出来的WeChat.app的里面找到info.plist,查看bundleId。创建成功以后:

    然把上一步生成的Tweak.xm和这里的Tweak.xm进行替换。

    接下来修改Makefile文件内容跟下图一样:

    最后打包运行,执行命令:cd  到wachatapp目录下,

                                                  export THEOS=/opt/theos,

                                                  make package install (期间会提示输入两次ssh密码:alpine)

    运行以后,手机会自动重启,打开微信,进入到登陆页,点击右上角的切换语言(简体中文)按钮,会弹出alert提示框,如下图:

    这个alert弹出框,就是Tweak.xm文件里写的内容!

    那本章的内容就结束了,主要了解一下,大致的逆向的流程,下一篇(ios逆向傻瓜入门教程(二)),需要的可以加我的iOS交流群714042473:,不管你是小白还是大牛欢迎入驻面试经验,讨论技术, 大家一起交流学习成长!希望帮助开发者少走弯路,微信如下

    相关文章

      网友评论

        本文标题:ios逆向入门教程(一)

        本文链接:https://www.haomeiwen.com/subject/cojmjftx.html