前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >iOS逆向开发之环境搭建

iOS逆向开发之环境搭建

原创
作者头像
conanma
修改2021-11-04 14:12:27
修改2021-11-04 14:12:27
2K0
举报
文章被收录于专栏:正则正则

什么是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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是iOS越狱(iOS Jailbreaking)
  • 如何判断iOS设备是否越狱
  • 搭建逆向开发环境
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档