iOS逆向开发之环境配置

一:越狱环境的配置

1、关于iOS越狱(Jailbreak)

iOS越狱是指开发者利用iOS系统的漏洞、获取到iOS系统的最高权限(Root权限)、从而可以操作之前种种不能操作的限制

2、越狱的优缺点

优点:自由安装app、文件管理方便灵活、拥有个性化的iPhone

缺点:不予保修、耗电增强、系统更新受限、安全性较差容易被恶意攻击

3、关于完美越狱和不完美越狱

完美越狱:越狱后的手机可以正常的关机、重启

不完美越狱:有两种情况属于手机不完美越狱的表现

1-手机重启后之前已经安装的破解软件都不能正常使用、出现闪退的情况

2-手机关机再开机将一直停留在启动页面,也就是所谓的“白苹果”

关于越狱方法的推荐可以参考教程:越狱教程

4、关于如何查看手机是否越狱

1-界面显示:看手机桌面上是否有Cydia


iOS逆向开发之环境配置_第1张图片
Cydia图标

2-工具判断:使用pp助手等软件可以查看手机状态信息显示越狱状态

3-代码判断:Bool类型返回值

[[NSFileManager defaultManager] fileExistsAtPath:@"/Applications/Cydia.app"];

5、关于Cydia

1- Cydia可以认为是越狱后的App Store,手机越狱之后可以通过Cydia来安装各种第三方的软件,如逆向开发相关的各种插件、补丁等

2- 通过Cydia安装软件的步骤:

打开Cydia--------->在软件源中选择编辑------->点击左上角的添加按钮------>输入想要下载的软件源的地址(如pp助手的为http://apr.25pp.com)-------->安装后即可在列表中查看到自己添加的软件源------->安装需要的软件

当然,也可以选择搜索软件、然后进行安装

3- 有的软件安装后需要重启手机桌面、这时候手机会出现“重启 SpringBoard”的字样,点击重启即可

6、常用必备软件介绍

Mac端:

iFunBox:管理手机文件系统、电脑和手机连接后可以通过iFunBox来查看手机上的文件系统

PP助手:自由安装或卸载各种app

iPhone端:

文件补丁: Apple File Conduct ''2'' ,可以访问整个iOS设备的文件系统

ipa补丁:AppSync Unified ,可以绕过系统验证、随意安装、运行破解的ipa安装包



二:逆向环境的配置

1、关于远程登录

iOS和Mac OSX 都是基于Darwin开源系统内核的、Mac上可以使用终端来进行操作、iOS同样也可以。为了让Mac终端的命令行能够在iPhone上起作用、就要将两者建立连接。而Mac正是通过远程登录的方式来和iPhone建立连接的。

通常远程登录有两种途径:OpenSSH、USB-SSH

2、SSH

Secure Shell 的缩写,指安全外壳协议

使用SSH协议可以将所有的传输数据进行加密、能防止DNS欺骗和IP欺骗

SSH的版本有两种:SSH-1 和 SSH-2

较常用的是SSH-2,客户端(Mac)和服务端(iPhone)的版本要保持一致

查看SSH版本 (配置文件的Protocol字段)

客户端:/etc/ssh/ssh_config

服务端:/etc/ssh/sshd_config

1- OpenSSH 远程登录步骤

Open SSH 是SSH的开源版本,可以通过OpenSSH 的方式让Mac远程登录到iPhone

在iPhone上通过Cydia安装OpenSSH工具,软件源地址为 http://apt.saurik.com

SSH使用的是tcp协议,故而需要保证Mac和iPhone在同一局域网下

在Mac终端输入指令:ssh 账户名@服务器ip地址

初始密码为alpine, 退出指令为exit

登录成功后就可以使用终端命令行来操作iPhone

2-常用账户root和mobile

root:最高权限的账户,$Home是/var/root

mobile:普通权限账户,智能操作一些普通文件,不能操作系统级别的文件,$Home是/var/mobile

登录root账户:ssh root@手机ip地址

登录mobile账户:ssh mobile@手机ip地址

root和mobile的初始登录密码均为alpine

修改密码:root对应命令为passwd,mobile对应命令为passwd mobile

3- 关于USB-SSH登录

通过端口映射实现登录,具体如下:

首先下载usbmuxd工具包:地址 主要是使用python-client的tcprelay.py脚本文件

可以在下载后将版本号去掉直接存储为usbmuxd文件名

然后将iPhone的22端口映射到Mac本地的自定义端口(只要不是保留端口就行)

终端输入: cd ~/Downloads/usbmuxd/python-client

python tcprelay.py -t 22:18200 (此处的18200为我的自定义端口)

新开终端窗口,进行登录:

ssh root@localhost -p 18200

在操作过程中注意要保持之前usbmuxd的终端任务一直运行,否则将断开连接

4- SSH的通信过程

SSH的通信主要有三大步骤,分别是

建立安全连接-------->客户端认证--------->数据传输

建立连接的过程主要是为了确认服务器身份信息是否正确,这个过程中服务区会把公钥等相关信息传输过来、客户端进行存储 known_hosts

如果出现服务器地址更改,疑似有中间攻击等,在确定连接对象正确的情况下、操作室删除原来的公钥文件:

ssh-keygen -R ip地址

或者是

vim known_hosts  编辑模式下选中对应行dd进行删除 :wq保存并退出 即可

客户端认证有两种方式:基于密码的验证和基于秘钥的免密码验证

秘钥方式:

客户端通过 ssh-keygen -t rsa 生成公钥、私钥文件:id_rsa.pub 和 id_rsa 

将生成的公钥文件追加到服务器的授权文件的尾部:ssh-copy-id 服务器地址

以上、基于秘钥的免密码登录即可成功

再次输入ssh root@手机ip地址 就可以成功登录而不需要输入密码了。



以上就是本篇文章关于iOS逆向开发的相关环境配置的内容了。

你可能感兴趣的:(iOS逆向开发之环境配置)