首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

越狱开发新手篇

作为一个iOS开发者来说越狱开发是不可少的,很多人都不知道怎么入门,今天我心情好,写一篇文章给大家观摩观摩。

首先做一个自我介绍吧,大家可以叫我Roy,是一个久经沙场的…算了,废话不多说。

文章分为三个部分

一、什么是越狱开发

二、需要的那些工具,和掌握那些技能

三、简单的demo演示

只要跟着Roy的步骤走,你一定会成为一个合格的混子。

一、什么是越狱开发,在百度搜点资料随便看一下。

简单来说,就是iPhone越狱后,拿到root权限,做一些正常手机不能做的事,能衍生为逆向开发(后面文章会写逆向)。如果你想做APP插件越狱开发是必不可少的。

二、需要的那些工具,和掌握那些技能

这篇文章只介绍文章内需要用到的工具和技能,以后的每篇文章也是如此。

1、需要一台越狱设备,Roy的是iPhone 5c 9.3.4

2、iFunBox —Mac上用来查看越狱设备的系统文件。

3、openSSH —终端用来跟手机连接

4、Cycript — 一款脚本语言,Cycript 混合了Objective-C与javascript语法的解释器,我们能够在一个命令中Objective-C或者javascript,它能够挂钩正在运行的进程,能够在运行时修改应用的很多东西(非常重要!!!http://www.cycript.org/)。

1、安装 iFunBox下载安装即可(http://www.sdifen.com/1069/)

2、安装 openSSH

越狱成功后, 就会多出个Cydia,这个可是越狱后的神器. Cydia可以安装各种越狱插件, 当然也可以安装各种越狱软件, 当然最主要的就是用来逆向开发。

打开Cydia

搜索openssh, 选择安装

安装完这个工具后可以让你从mac登录进越狱设备, 然后进行一些基本操作. 想一下是不是很激动?

可以通过电脑来控制手机啦~! 既然可以实现自己电脑控制手机, 那么从其他电脑也可以登入您的手机(默认密码都是alpine), 也就导致了手机的不安全(当年的蠕虫病毒就是又这个引起的), 所以强烈建议您更改ssh的密码.

(1)修改ssh密码(注意:要在同一局域网内)

首先打开ssh通道, 终端输入一下命令

ssh root@您的手机IP地址

进入ssh后, iOS上的用户有2个, 分别是root和mobile, 修改密码的命令:

passwd root

修改root的密码, 按提示输入新的密码然后回车即可

passwd mobile

下面Roy介绍一种用USB连接手机的方法

即用来连接iOS设备的传输, 在逆向工程里面我们主要拿来连接iOS设备, 上面我们用到的ssh是通过wifi进行传输, 而usbmuxd就是可以让我们通过USB连接设备, ssh调试我们的设备. 加快设备的连接速度, 在后面说到的lldb以及debugserver就会用到usbmuxd用来加快连接速度

3、usbmuxd配置及使用(USB)

下载usbmuxd(https://link.jianshu.com?t=http://7xibfi.com1.z0.glb.clouddn.com/uploads/default/original/2X/a/aa9cecf05b47d08a59324edeaaeea3f17e0608ee.zip)

解压后得到几个文件, 我们需要用到的是tcprelay.py这个文件, usbmuxd的用法也比较简单, 先介绍加快ssh的速度:

新建第一个Terminal(终端)窗口, 把tcprelay.py拖入Terminal, 在Terminal中输入

/Users/luoziwei/Downloads/USBSSH/tcprelay.py(tcprelay.py的路径) -t远程iOS上的端口:本地OSX/Windows上的端口

即:/Users/luoziwei/Downloads/USBSSH/tcprelay.py -t 22:2222

出现如下,就说明是在等待转发状态了

Forwarding local port 2222 to remote port 22

再新建一个Terminal窗口, Terminal输入如下命令:

ssh root@localhost -p 2222

输入刚刚修改的密码,就连接成功了,如下:

root@localhost's password:

iPhone:~ root#

当然了, 也可以直接通过pp助手一键傻瓜式打开, 然后Terminal按提示输入即可如图:

通过上述操作你就可以成功终端连接手机了。

4 Cycript的安装:

打开Cydia

搜索Cycript, 选择更改->安装即可,安装完成后就可以用终端查看和修改越狱设备的属性了。

三、简单的demo演示

首先我们先查看一下手机的系统文件—输入ls

其实这并不是我们要看的根系统的文件——我们cd /一下再ls

这就是我们真正的系统文件,做逆向开发主要针对的是var这个文件,因为这个文件装着我们的APP我们可以进入这个文件看一下

APP在哪里呢? 我是谁?我在哪?这些都是啥?我现在应该怎么操作?

不着急,慢慢来比较快…混子也不是一天练成的。

我们在终端再cd一下cd containers/Bundle/Application再ls

图中出现的4个串串就是我们手机上安装的APP(出系统APP外)文件名是系统分配的全局唯一文件名,保证文件不重复。

我们再随便cd一个文件进去就能看到里面.app的包了,这个就是我们日后要操作的包文件了。是不是贼简单呢

既然该看的我们也看了,接下来就要开始真正的小demo演示了。

首先我们要注入进程。怎么注入呢?

就用我们刚刚安装的Cycript

用ssh接入手机后在终端输入cycript -p SpringBoard(SpringBoard 是进入我们设备一切眼睛能看到的地方 譬如:APP、状态栏 总之就是眼睛能看到的就是 我们SpringBoard 所要注入的)

显示cy#我们就注入成功了

这样我们就可以瞎几把修改。我们做一个眼睛能够看到的。

在cy# 后面输入alert = [[UIAlertView alloc] initWithTitle:@"Roy de xiao mi di" message:@"sa bi lao wang" delegate:nil cancelButtonTitle:@"OK" otherButonTitles:nil]

回车(我们在上面讲过Cycript解释器是支持oc语法和javascript)

回车后我们看到UIAlertView的frame和layer此事我们手机上还没有显示任何东西。因为我们的UIAlertView是要show一下的(oc语法)

我们再次在终端输入[alert show]然后回车

手机上就会显示我们注入的UIAlertView啦

注意:alert是我们刚刚定义的变量名,这里也支持用地址调用单例 如:[#0x1bf22f20 show] “#”是我们地址调用方法的语法更多高级语法法可在(http://www.cycript.org/)查看。

好啦,我们第一个demo就做完了,我们已经算是进了越狱开发的村了,接下来我们就要找一下越狱开发的门。

下一篇文章我们再记录一下如何修改越狱设备上的APP(其中包括APP砸壳、class-dump导出APP的.h 文件)想想都激动!

文章接着这篇写。

需要准备的东西:

1、手机上安装一个自己写的demo,到时候再说长什么样 嘻嘻~(我现在也没写)

2、在APPstore下载几个APP

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180325G0T0LJ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券