iOS应用逆向笔记(一):环境搭建
homebrew 安装jtool/jtool2 报错
jtool/jtool2
(下面简称jtool) 是一个功能强大的分析二进制的工具,用它可以替代系统自带的 otool
命令。因为 jtoo2 版本更加新一些,所以下面我都以 jtool2 为例展开说明。
安装方式:
- 我们可以在它的官网直接下载,将文件放到
/user/local/bin/
目录下。 - 也可以通过
homebrew
下载安装jtool
,和其他工具不同,jtool 需要通过brew cask
安装。
关于 brew 和 brew cask 有什么区别,可以参考这里
出于用 homebrew 统一管理的角度考虑,我更推荐采用 homebrew 来安装 jtool。
homebrew
的官网推荐我们使用 brew install --cask jtool2
命令来安装 jtool,但我在执行的过程中发现多次报错,信息如下:
~ % brew install --cask jtool2
==> Tapping homebrew/cask
Cloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask'...
fatal: unable to access 'https://github.com/Homebrew/homebrew-cask/': LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443
Error: Failure while executing; `git clone https://github.com/Homebrew/homebrew-cask /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask --origin=origin --template=` exited with 128.
一开始我并没有发现安装脚本有什么不同,直到看到这篇文章中提到,需要先安装 brew cask
,再执行 brew install --cask jtool2
命令。
再回到上面的报错信息,因为之前本地没有 brew cask
,因此需要去远程获取,但可能是因为 brew cask
关联的其他三方工具比较多,再加上国内访问 Github 的不稳定,报错就不足为奇了。
那么接下来的问题自然就变成了本地安装 brew cask
:执行 brew install cask
,安装过程持续了好几分钟。
在安装的过程中我发现它一共关联了很多其他三方库,也难怪远程拉取会报错了。
Installing dependencies for cask: gmp, bdw-gc, libffi, m4, libtool, libunistring, pkg-config, readline, guile, gettext, libidn2, libtasn1, nettle, p11-kit, openssl@1.1, libevent, c-ares, jemalloc, libev, nghttp2, unbound, gnutls, jansson and emacs
接下来再执行 brew install --cask jtool2
很快就安装成功了。
因为 jtool 实际上是一个执行文件,而且作者貌似没有通过苹果提供的方式为它签名,因此在首次安装执行时,系统(我的系统版本是MacOS 11.4)会提示未验证的开发者,需要在系统设置的安全性与隐私里开一下权限。
App 的越狱检测
银行、支付类的 app 都有检测,例如 支付宝、云闪付(银联)、买单吧(交行)、掌上生活(招行)、中国建设银行、邮储银行等
AppSync Unified
:卸载后,云闪付、买单吧无越狱提示afc2add
:卸载后,掌上生活无越狱提示Cydia
:卸载后,邮储银行无越狱提示- 移除越狱环境:支付宝可正常登录
- 建行一直提示越狱环境,重装也一样(像是bug)