iOS逆向01 -- JailBreak越狱

逆向App的思路

界面分析
  • Cycript与Reveal
代码分析
  • 对Mach-O文件的静态分析
  • MachOView,class-dump,Hopper Disassembler,ida等工具的使用
动态调试
  • 对运行中的App进行代码调试
  • debug server,LLDB工具的使用
代码编写
  • 注入代码到App中
  • 必要是还要重新签名,打包ipa

iOS JailBreak越狱

  • 利用iOS系统的漏洞,获取iOS系统的最高权限(Root),解开之前的各种限制,是合法的行为;

现在我们进入iOS逆向学习的第一个模块iPhone的越狱。

iOS JailBreak越狱的优点

  • 打造个性化,与众不同的iPhone;
  • 自由安装各种实用的插件,主题,App;
  • 修改系统App的一些默认行为;
  • 自由安装非AppStore来源的App;
  • 付费App秒变免费App;
  • 灵活管理文件系统,让iPhone可以像U盘那样灵活;
  • 给开发者提供了逆向工程的环境。

未越狱iPhone安装App的途径:

  • AppStore
  • 真机调试
  • 通过证书打包签名ipa安装

iOS JailBreak越狱的缺点

  • 不予保修;
  • 费电,越狱后的iOS系统会常驻一些进程,耗电速度约提升10%-20%;
  • 在新的iOS固件版本出来的时候,不能及时地进行更新;
  • 每个新版本的固件,都会修复上一个版本的越狱漏洞,使越狱失败;
  • 如果需要保持越狱状态,要等待新的越狱程序发布时,才能升级相应的固件版本;
  • 不再受iOS系统默认的安全保护,容易被恶意软件攻击,个人隐私有被窃取的风险;
  • 如果安装了不稳定的插件,容易让系统变得不稳定,变慢,甚至出现白苹果问题;

完美越狱

  • 越狱后的iPhone可以正常关机和重启;

不完美越狱

  • iPhone一旦关机后再开机,屏幕就会一直停留在启动画面,也就是白苹果状态;
  • 或者能正常开机,但已经安装的破解软件都无法正常使用,需要将设备与PC连接后,使用软件进行引导才能使用;
  • 一般来说,在苹果发布新的固件后,针对该固件的不完美越狱会先发布,随后完美越狱才能发布;

越狱方法推荐

  • PP助手,已经不更新了;
  • 爱思助手

如何判断是否越狱成功

  • 桌面是否有Cydia
  • 工具判断(比如PP助手)

Cydia

  • 可以看成越狱之后的App Store
  • 可以在Cydia中安装各种第三方的软件(插件,补丁,App)
  • 其作者为 Jay Freeman(saurik)

Cydia安装软件的步骤

  • 添加软件源(不同软件的软件源可能不同)
  • 进入软件源找到对应的的软件,开始安装;

SpringBoard

  • SpringBoard就是iOS的桌面系统;
  • 有时候通过Cydia安装完插件后,可能会出现重启 SpringBoard 提示界面

iPhone必备软件的安装

Apple File Conduit "2":可以在Mac上访问整个iOS设备的文件系统,类似的补丁还有,afc2,afc2add;
AppSync Unified:可以绕过系统验证,随意安装,运行破解的ipa安装包;越狱后在 Cydia 中添加源地址 cydia.akemi.ai,然后搜索 AppSync Unified并安装;
iFile:可以在iPhone上自由访问iOS文件系统,类似的还有Filza File Manager,File Brower;
PP助手:可以利用PP助手自由安装海量APP;

Mac必备软件安装

iFunBox:文件管理系统,https://www.i-funbox.com/en_download.html
PP助手:自由安装,卸载App,已经停止更新
爱思助手:自由安装,卸载App

安装包

通常情况下:

  • 通过Cydia安装的安装包时deb格式的(结合软件包管理工具apt)
  • 通过PP助手安装的安装包ipa格式的;

如果通过Cydia源安装deb失败:

  • 可以先从网上下载deb格式的安装包;
  • 然后将deb安装包放到/var/root/Media/Cydia/AutoInstall
  • 重启手机,Cydia就会自动安装deb

代码判断iPhone是否越狱

- (void)viewDidLoad {
    [super viewDidLoad];
    
    if ([[NSFileManager defaultManager] fileExistsAtPath:@"Applications/Cydia.app"]) {
        NSLog(@"此设备已越狱");
    }else{
        NSLog(@"此设备未越狱");
    }
}

提高工作效率的工具软件

Alfred:快捷搜索 https://www.alfredapp.com
go2shell:终端文件路径

越狱步骤

本人用的iPhone8 13.2的系统版本,采用安装uncOver软件进行越狱,点击uncOver进入下载页面;

  • 下载uncOver软件的ipa安装包;
  • 要对uncOveripa包进行签名,可以使用爱思助手,打开爱思助手并连接手机,然后用自己的apple Id账号进行签名,操作如下所示:
Snip20210607_76.png
Snip20210607_78.png
  • 签名成功后,使用爱思助手进行安装,最后使用uncOverapp进行越狱。

遇到的问题

问题一:使用uncOver越狱成功之后,由于是不完美越狱,手机重启之后,cydia打开直接闪退;
解决方案:打开uncOver软件,重新再越狱一次,重启之后就可以打开cydia了

问题二:由于uncOver是使用自己的开发者账号签名之后安装的,会存在掉签的情况导致uncOver打不开,若此时手机重启了,那么cydia也打不开了,然后将uncOver卸载了,重新签名再安装,这时总是会提示该设备未安装appSync越狱补丁,uncOver安装不了;
解决方案:使用另外一个越狱方式checkra1n,下载地址为:https://checkra.in
Mac安装完成之后,USB连接手机,然后按照上面的提示步骤,就能实现手机的越狱。

你可能感兴趣的:(iOS逆向01 -- JailBreak越狱)