美文网首页
【iOS开发】iOS逆向开发之环境搭建

【iOS开发】iOS逆向开发之环境搭建

作者: 人月神话Lee | 来源:发表于2018-04-05 19:12 被阅读0次

    本文主要内容如下:

    本文要点

    什么是iOS越狱(iOS Jailbreaking)

    iOS jailbreaking. iOS jailbreaking is privilege escalation for the process of removing software restrictions imposed by Apple on iOS and tvOS.

    简单来说,iOS越狱是指获取iOS设备的root权限,解除各种限制,可以绕过App Store下载及安装各种App、插件等。

    如何判断iOS设备是否越狱

    1)看iOS设备桌面是否有Cydia这个应用

    2)借助第三方软件判断,如PP助手等。如下图所示,笔者的iPhone 6s是越狱设备。

    3)通过代码识别设备是否越狱,主要是判断设备中是否存在越狱设备相关文件。如下所示,可以简单地判断系统/Application文件夹中是否有Cydia.app。当然了,网上还有更多可靠的方法识别,可以自行去搜索。

    搭建逆向开发环境

    1)Mac远程登录iOS设备

    我们经常在电脑上通过terminal对电脑进行一些操作,那么是否可以通过电脑terminal远程访问iOS设备呢。答案是可以的。在terminal中操纵iOS设备,这在逆向开发中是经常要做的事。通过SSH登录即可。首先在iOS设备上安装openSSH,就是下面那个家伙。(SSH及openSSH本文不做介绍,参考阮一峰博士的这两篇博客进行了解)

    打开你的电脑terminal,输入:ssh root@iOS设备网络IP,然后回车输入密码即可登录了。要注意保证iOS设备和电脑在同一个局域网内。比如iOS设备网络IP为192.168.1.100,那么在输入 ssh  root@192.168.1.100回车输入密码即可登录iOS设备的root账户。iOS设备一般有一个root账户和一个mobile账户,默认密码都是alpine(如下图所示)。通过passwd及passwd mobile命令可以分别更改root用户和mobile用户的密码。

    2)利用Mac的服务程序usbmuxd进行SSH登录

    第一种方式是以网络连接的形式进行SSH登录,要求iOS设备连接WiFi,有时会效率低下。为了提升传输速度,可以利用Mac的服务程序usbmuxd,通过USB的方式进行传输。usbmuxd在/System/Library/PrivateFrameworks/MobileDevice.framework/Resources中,默认就启动。

    在Mac上下载usbmuxd工具包,解压放置任意位置(主要是用到tcprelay.py文件),由terminal cd进入到python-client目录中。

    然后执行命令:python  -tcprelay.py -t  22:10012。

    这一步是将iOS设备的22端口映射到Mac本地的10012端口。注意:10012端口是随意取的,只要不是保留端口号即可。这样就意味着,Mac以后要跟iOS设备通信,只需要跟本地的端口10012通信即可。

    也就是说之前的登录方式:ssh root@192.168.1.100(你的iOS设备WiFi IP)可以改成如下方式登录:

    ssh root@localhost -p 10012或者ssh root@127.0.0.1 -p 10012即可。注意:一定要另开一个终端页面。

    一切准备就绪啦~\(≧≦)/~  开始用Cycript搞起了

    Cycript是一门融合了Objective-C++、JavaScript等语言语法的脚本语言。通过Cydia安装Cycript,然后利用Cycript就可以调试App了。又是那个逼的家伙写的~~~

    启动Cycript:

    Cycript -p 进程ID或者进程名字,如下图所示调试网易云音乐。

    代码解释:

    UIApp相当于Objective-C中的[UIApplication sharedApplicartion],也就是获取当前进程的shredApplication单例对象,通过#对象内存地址 可以访问该对象,图中简单地获取了keyWindow和keyWindow的rootViewController。是不是很熟悉

    简单地使用了一下Cycript,更多语法请参考官方文档

    最后列举一些开发工具:

    Mac上的iFunBox、PP助手等,iOS上的iFile(可以认为是iOS上的iFunBox,都是文件管理系统)、Apple File Conduit、classdump、adv-cmds等。

    参考文档:

    1、SSH Over USB

    2、SSH原理与运用

    3、Cycript Manual

    相关文章

      网友评论

          本文标题:【iOS开发】iOS逆向开发之环境搭建

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