iOS越狱之Mac登录iPhone

7 篇文章 1 订阅
3 篇文章 0 订阅

前言

随着iOS系统的逐步开放和与Android平台越来越多的相似性,很多以前只能通过越狱才可以使用的应用在现在的iOS系统中已经有了很多,所以越狱对于目前iOS用户来说,重要性比起以前有了很大的降低,很多用户都已经不再考虑iOS的越狱了。

那么作为iOS开发者,有没必要了解越狱,越狱完之后我们能干嘛?答案显然是肯定的。

什么是越狱

iOS是相对比较封闭的操作系统,用户和开发者所拥有的权限(自由)只能局限在特定的沙盒之中。那么iOS 越狱则指的是通过系统漏洞,打破这种限制的过程。使得用户最终能够以root权限访问文件系统和管理器,随心所欲的驾驭我们自己的iOS设备。

iOS developer 为什么要越狱

  • 了解整个iOS系统架构,能够在更高的维度看待问题
  • 查看私有的API,扩展APP功能
  • 实现更丰富的UI效果,比如CAAnimation未公开的API
  • 打开受限制的硬件特性,比如iOS7上实现视频硬解码
  • 获取已安装App列表以及App信息
  • 获取特殊的设备信息,比如IMEI,UDID等
  • 动态调试App,查看debugserver的权限问题

越狱与自身App安全

  • 核心代码保护,反逆向,开发时进行代码混淆
  • 保证自己App信息安全,本地数据存储加密,内存数据保护等
  • 防劫持,防注入,阻止GDB等动态调试工具依附
越狱分两种
  • 完美越狱:一次越狱成功后只要不升级系统,就会一直是越狱状态
  • 非完美越狱:手机重启后会造成越狱失败,需要重新使用工具进行越狱

登录iPhone基本流程

手机越狱后会默认安装Cydia

Cydia:是越狱后的另一种App Store.类似苹果在线软件商店iTunes Store 的软件平台的客户端,在越狱的过程中被装入到系统中的.Cydia的主要目的是为越狱的iOS用户提供一个高级包装工具的图形界面前端以安装不被App Store接受的程序。它也是一个软件仓库的聚合器,带有几个被社区信任的源以避免对某个服务器的过度依赖

1.Cydia 中安装openSSH.利用openSSH Mac 登录iPhone .

OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。SSH协议族可以用来进行远程控制, 或在计算机之间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)、 rcp ftp、 rlogin、rsh都是极为不安全的,并且会使用明文传送密码。OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控制和文件传输过程中的数据,并由此来代替原来的类似服务。

OpenSSH是使用SSH透过计算机网络加密通讯的实现。它是取代由SSH Communications Security所提供的商用版本的开放源代码方案。目前OpenSSH是OpenBSD的子计划。

  • WiFi登录(Mac iphone 在同一个网段下): $ ssh root@手机IP地址

Root Login

  • $ ssh mobile@手机IP地址

Root Login

iOS下有两个账户 root 和 mobile 默认密码都是 alpine ,可以通过passwd , passwd mobile 来修改对应账户的密码

这种登录方式优点是简单方便.缺点就是传输速度慢

SSH的通信过程
在建立安全连接过程中,服务器会提供自己的身份证明

Root server

在终端会有这样的提示

SSH - 基于密钥的客户端认证

  • 建立安全连接
  • 客户端的认证
  • 数据的传输
ssh的工作原理

  • 服务器建立公钥: 每一次启动 sshd 服务时,该服务会主动去找 /etc/ssh/ssh_host* 的文件,若系统刚刚安装完成时,由于没有这些公钥,因此 sshd 会主动去计算出这些需要的公钥,同时也会计算出服务器自己需要的私钥。

  • 客户端主动联机请求: 若客户端想要联机到 ssh 服务器,则需要使用适当的客户端程序来联机,包括 ssh, putty 等客户端程序连接。

  • 服务器传送公钥给客户端: 接收到客户端的要求后,服务器便将第一个步骤取得的公钥传送给客户端使用 (此时应是明码传送,反正公钥本来就是给大家使用的)。

  • 客户端记录并比对服务器的公钥数据及随机计算自己的公私钥: 若客户端第一次连接到此服务器,则会将服务器的公钥记录到客户端的用户家目录内的 ~/.ssh/known_hosts 。若是已经记录过该服务器的公钥,则客户端会去比对此次接收到的与之前的记录是否有差异。若接受此公钥, 则开始计算客户端自己的公私钥。

  • 回传客户端的公钥到服务器端: 用户将自己的公钥传送给服务器。此时服务器:具有服务器的私钥与客户端的公钥,而客户端则是: 具有服务器的公钥以及客户端自己的私钥,你会看到,在此次联机的服务器与客户端的密钥系统 (公钥+私钥) 并不一样,所以才称为非对称加密系统。

  • 开始双向加解密: (1)服务器到客户端:服务器传送数据时,拿用户的公钥加密后送出。客户端接收后,用自己的私钥解密 (2)客户端到服务器:客户端传送数据时,拿服务器的公钥加密后送出。服务器接收后,用服务器的私钥解密,这样就能保证通信安全。

把客户端的公钥内容追加到服务器的授权文件(~/.ssh/authorized_keys)尾部
ssh-copy-id root@服务器主机地址 需要输入root用户的登录密码
ssh-copy-id会将客户端/.ssh/id_rsa.pub的内容自动追加到服务器的/.ssh/authorized_keys尾部
22端口问题

21端口提供FTP服务

80端口提供HTTP服务

22端口提供SSH服务(可以查看/etc/ssh/sshd_config的Port字段)

iPhone 默认是使用22端口进行SSH通信的,采用的是TCP协议

为了加快传输速度,也可以通过USB连接的方式进行SSH登录
Mac上有个服务程序usbmuxd(它会开机自动启动),可以将Mac的数据通过USB传输到iPhone
/System/Library/PrivateFrameworks/MobileDevice.framework/Resources/usbmuxd

usbmuxd的使用

$ python tcprelay.py -t 22:100012

端口映射完毕后,以后如果想跟iPhone的22端口通信,直接跟Mac本地的10010端口通信就可以了

新开一个终端界面,SSH登录到Mac本地的10010端口

$ ssh root@localhost -p 10010

设备Cydia 中安装 adv-cmds 插件 用于查看所有进程
  • $ ps -A // 列出所有进程
    企业微信截图_c2e4c72f-01d2-492d-95ce-50703a137e49.png
  • $ ps -A | grep 关键词 // 用关键词过滤进行查询

设备Cydia 中安装 cycript

  • $ cycript // 开启
  • Control + D // 退出
    也可以这样开启 是进入某一个APP内部查看方法参数等.
  • $ cycript -p 进程号
  • 或者 $ cycript -p 进程名字
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值