上篇文章介绍了: Reveal UI 分析工具简单使用
这里介绍如何使用 Reveal UI 分析工具来进行手机 App UI 界面的分析。
前提准备:
(1)已安装 Reveal 的 Mac
(2)已越狱的 iPhone
(3)良好的网络环境
原理:
回想起我们使用 Reveal 来分析 iPhone 模拟器的 App 时,我们是在 Xcode 的指定工程里引用并加载 Reveal.framework 文件,从而当 App 运行时,打开 Reveal 选中连接当前 App 就可以进行他的 UI 界面分析了。关键点就在于「指定工程里引用并加载 Reveal.framework 文件」。
而手机 App 是已经部署到我们手机里了,我们不可能对 App 的安装包“动手脚”让他能加载 Reveal 相关的文件,那我们该怎么办呢?
这问题问得很好,然而我们在越狱的 iPhone 里,通过 iFile App 发现 iOS 存在共享动态库的目录「/Library/MobileSubstrate/DynamicLibraries」,存放在此目录的.dylib 后缀文件能被 App 按需调用。那么问题又来了,怎么从 Mac 中拷贝 Reveal 相关的文件到 iPhone 的此目录下呢?
答案就是:先在 iPhone 中通过 Cydia App 安装「OpenSSH」;然后在 Mac 的终端中,通过命令进行 SSH 协议的文件传输。
PS:OpenSSH 为 WinSCP 依赖的基础通讯服务协议:OpenSSH 是一种广泛使用的 SSH 程序,SSH 就是 Secure Shell 的缩写,既安全命令行,SSH 是一种可以保证用户远程登录到系统的协议,而 iOS 实际上就是一个基于 BSD 底层的 Linux 内核的定制 OS X 系统,所以可以通过这个通讯协议来远程(非在本机)登录已有 SSH 协议的设备,从而达到在 PC(Mac)上远程输入命令来操作 iOS 设备的目的。
接下来,让我们开始实践吧。
步骤:
1、在 iPhone 上安装 OpenSSH
- 打开 iPhone 上的 Cydia
- 选择右下角的搜索,输入 OpenSSH
- 在搜索到的结果中选择 OpenSSH
- 点击屏幕右上角的安装
2、测试 Mac 是否能连接 iPhone
- 让 Mac 和 iPhone 处于同一 wifi 环境中
- 在 Mac 终端输入ssh [email protected](这个 IP 是 iPhone 上的 IP,比如我的 iPhone 上的 IP 为 192.168.0.101,此时输入命令是:ssh [email protected])
- 等待一会后,输入密码(无回显操作),默认是 alpine(默认密码建议不要改,但为了安全考虑,可以修改。具体操作看第3步)
- 连接成功后,就可以管理 iPhone 上的文件了
- 输入 exit 退出(我们这里只是测试一下能不能连上 iPhone)
3、修改 iPhone 的 root 和 mobile 账户密码(注意:操作需非常谨慎,确保记住修改后密码:例如我设置密码为自己易记的拨号账户)(可选操作)
1 //使用 root 账户登录 2 ssh [email protected]192.168.0.101 3 //输入账户密码登录成功后,再输入以下命令,然后按需输入旧密码和新密码(无回显),进行修改 root 账户密码 4 passwd 5 //注销登录 6 exit
1 //使用 mobile 账户登录;可以考虑在 root 账户已登录的情况下,输入「su - mobile」命令切换为 mobile 账户登录 2 ssh [email protected]192.168.0.101 3 //输入账户密码登录成功后,再输入以下命令,然后按需输入旧密码和新密码(无回显),进行修改 mobile 账户密码 4 passwd 5 //注销登录 6 exit
4、准备上传文件
- 打开 Reveal,点击菜单栏上的 Help, 选择 Show Reveal Library in Finder
- 将 libReveal.dylib 拷贝到桌面,方便操作
- 在桌面创建 libReveal.plist,输入想分析的 App 的 BundleId,可以多个。比如AppStore(其实可以不输入, 这时能分析所有的 App,但是机器会慢到你无法想象,或者开机白苹果啥的,建议还是指定分析 App 比较好)
1 { 2 Filter = { 3 Bundles = ( 4 "com.apple.AppStore" 5 ); 6 }; 7 }
5、上传文件到 iPhone(Mac 终端操作)
1 //上传 libReveal.dylib 和 libReveal.plist 到 iPhone(192.168.0.101是 iPhone 上的 IP) 2 scp Desktop/libReveal.dylib [email protected]192.168.0.101:/Library/MobileSubstrate/DynamicLibraries 3 scp Desktop/libReveal.plist [email protected]192.168.0.101:/Library/MobileSubstrate/DynamicLibraries
6、重启 iPhone(关机、开机进行重启)
如果你成功的完成了上面的步骤,并且 iPhone 成功重启,OK,下面就可以分析 App 了。
- 打开Reveal,打开 iPhone 上你指定的 App,在 Reveal 左上方选择 App
- 切换页面后,可以点击 Reveal 右上角的刷新按钮