逆向

10.2.1 逆向越狱环境搭配

Posted by BeyoundCong on June 15, 2018

越狱.jpg

越狱(Jailbreaking)是什么?

  • 用于获取苹果公司便携装置操作系统 iOS 最高权限的一种技术手段,用户使用这种技术及软件可以获取到 iOS 的最高权限,甚至可能可以进一步解开运营商对手机网络的限制。
  • 用途
    • 解除 iOS 上的限制,安装 App Store 以外以及未经 Apple 许可的社群软件以及自由软件,甚至自行编译软件。
    • 改装操作系统
    • 使用命令行 shell 程序
    • 访问 root 内部的文件,可写入
    • 提取重要文件(如移植系统功能等需要破解提取文件)

完美越狱和不完美越狱的区别

  • 完美越狱不会因为手机的重启而导致越狱失败。
  • 不完美越狱是指 iOS 系统设备在越狱后,并没有完全破解了其操作系统的权限;有部分信息或功能应用不佳;比如;关机以后必须去连接越狱软件来引导开机;或者重启会导致越狱的失效;这样的越狱称为“不完美越狱”。

iOS 10.2.1 的不完美越狱

  • 爱思助手一键越狱。
  • 或者使用 Impactor + saigon。
  • 一次越狱不成功就多试几次。

越狱后的环境搭建

  • 手机越狱过程中,会安装一个叫做 Cydia 的软件。相当于越狱后的 App Store。

  • 想在电脑上登录越狱设备,需要配置 SSH 远程登录。

    SSH 是一种网络协议,用于计算机之间的加密登录,它有多种实现方式,根据 iOS 系统的版本要做不同的版本设置。

    iOS 8 和 iOS 9 的越狱设备可以通过安装 OpenSSH来登录访问。

    iOS 10 的系统有一个相对轻量级的 SSH 服务 dropbear,直接使用。

    这里就只说 dropbear 的配置。

    • 连接默认密码是 alpine。

    • 首先,在 Cydia 中安装 MTerminal 和 adv-cmds ,在 MTerminal 执行 ps aux grep dropbear 命令。(USB 连接)
    • 如果想在 Mac 上直接 SSH 登录,需要添加以下命令

      /usr/local/bin/dropbear -F -R -p 22
      

      在 Mac 上直接 SSH 登录

      ssh root@设备的 ip 地址(同一网络环境下)
      
    • USB 登录设备

      WiFi 情况下登录,如果网络不稳定,输入命令时会出现卡顿,这里提供一种通过 USB 端口转发的方法登录,保证连接的稳定和流畅。

      brew install libimobiledevice
      iproxy 10010 22 (不要关闭)
      ssh root@localhost -p 10010 (这个是另起一个终端输入)
      

      如果觉得麻烦,可以建立一个 .sh 文件来快捷登录

    • 用户角色

      zzz$ (mobile):操作普通文件,不能操作系统文件。

      root# (root):系统中权限最高的用户,对系统文件具有完全控制权。

  • Mac 需要装的软件

  • iOS 需要装的插件(Cydia 中安装)

    • iFile (文件管理器)

    • Apple File Conduit “2”(安装了就能在 iFunBox 中查看系统文件)

    • Appsync (直接修改一个应用的结构或文件会破解应用本身的签名信息,安装修改后应用会出现 “Failed to verify code signature of XXX” 错误,按安装了appsync,让系统不再检验应用的签名)

    • scp (iOS 10后没有 scp 这个工具了,如果想用,就通过 iFunBox 把源码复制到设备的 /usr/bin/ 目录下)

      链接: https://pan.baidu.com/s/1cxalD6geBgceDpEjOpBAbQ 密码: 4q7j
      

      然后设备中输入以下命令

      因为要更改权限,所以要在 root 用户下执行
      cd /usr/bin/
      ldid -S scp
      chmod 777 scp
      

越狱设备的文件系统目录

  • Applications

    存放所有的系统 App 和来自 Cydia 的 App,不包括从 App Store 下载的 App。

  • Developer

    供开发者使用。

  • Library

    系统资源,用户设置。例如,Logs 是系统日志,Ringtones 是系统自带铃声,Launch Daemons 是启动 daemon 程序。其中比较重要的目录是 /Library/MobileSubstrate,里面存放了所有基于 Cydia Substrate 的插件(需要在 Cydia 中安装 Cydia Substrate)。

  • System

    • /System/Library/Carrier Bundles

      里面是运营商的一些配置。

    • /System/Library/Frameworks 和 /System/Library/PrivateFrameworks

      里面是系统中各种公开和未公开的 Framework。

    • /System/Library/CoreServices/SpringBoard.app

      桌面管理器,是用户和系统直接交互的部分。

    • /System/Library/PerferenceBundles

      里面存放的是系统设置中的一些设置项。

  • User

    用户目录,实际指向 /var/mobile 。

    • /User/Media/

      里面存放的是相册等。

    • /User/Library/

      里面存放的是短信、邮件等。

  • bin

    存放用户二进制文件,例如 mv 、ls 等。

  • dev

    设备文件。每个设备在 /dev 目录下都有一个对应的文件(节点)。

  • etc

    存放系统脚本、hosts 配置、SSH 配置文件等,实际指向 /private/etc。

  • sbin

    存放系统级二进制文件,例如 reboot 、mount 等。

  • usr

    用户工具和程序

    • /usr/include 中存放标准 C 头文件。
    • /usr/lib 中存放库文件。
  • var

    一些经常改动的文件,包括 keychains 、临时文件、从 App Store 下载的应用。

其中遇到的问题

安装 Apple File Conduit “2” 的时候报错

subprocess pre-installation script returned error exit status 1

sub-process/usr/libexec/cydia/cydo returned anerror code(1)

错误的图片.png

解决方法 使用 iFile 然后去 private -> etc -> hosts 修改名字就行了。

感谢您的阅读,有什么错误请留言,看到了第一时间回复。

此内容部分借鉴 iOS应用逆向与安全(有兴趣的同学可以上天猫搜索购买)。

QQ技术交流群:214541576

微信公众号:shavekevin

开发者头条:

热爱生活,分享快乐。好记性不如烂笔头。多写,多记,多实践,多思考。