Reveal
Reveal brings powerful runtime view debugging to iOS developers。
基于运行时的视图调试工具,这跟xcode提供功能相比:一不用中断运行调试,使用流畅;二视图搜索定位相当方便。当然在如今Hydrid混合开发大盛的情况下,似乎这些都微不足道。
工具环境
- Reveal15:荔枝数码,正版软件代理,价格优惠;
- iOS9.0.2:某宝2k多大洋弄了台6SP,机器不错;
- PP助手Mac版:比起iTools的收费你会更喜欢;
- Xcode9.4:或许你喜欢AppCode吧,我是余粮不足了。
工程集成
官方提供了多种使用方案,以后就直接到官网上看引导,度娘很多都是过期文案,半天下来玩不转:
总体分为,两种方式:
- 工程入侵方案:cocoapods(相当便利),linking库导入
- 工程Breakpoint调试:相当我(你会喜欢这种方式的)。
越狱环境查看其它App UI结构
准备环境:打开Cydia一波搜索安装
- OpenSSH:可以让你在PC或 Mac上远程输入命令操作 iOS 设备
- Cydia Substrate:Hooker工具
- Reveal2Loader(http://cydia.saurik.com/package/com.zidaneno5.reveal2loader/):Cydia有时候会搜索不出来,可以在软件源BigBoss插件下查找
- RevealServer:打开Reveal,选择help->Show Libraries in Finder->iOS-Libraries->RevealServer.framework,将其copy到桌面或者记录下路径:
/Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/RevealServer.framework
简单讲一下我所理解的运行原理(大神勿喷):在越狱环境下,通过配置DynamicLibraries动态库将RevealServer添加到系统服务中,实现动态库dylib注入,Hacker到其它App进行视图监听。实践两种方式:
1、逆向大神们的命令行
1.1、OpenSSH连接测试:
iOS设备安装好了OpenSSH后,连接wifi与PC保持同一局域网下,找到iOS设备wifi连接分配的iP地址,打开终端,
ssh root@192.168.xx.xx
弹出password时输入:alpine(通用),按enter
$ ssh root@192.168.31.199
root@192.168.31.199's password:
TQuerySky:~ root#
连接成功后,就能访问到iOS系统的root目录,这样表示你的OpenSSH安装成功了。
1.2、将RevealServer文件copy到iOS设备上,注意修改为自己的设备iP:
scp -r /Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/RevealServer.framework root@192.168.xx.xx:/System/Library/Frameworks
1.3、使用Reveal2Loader设置需要查看的App,设备->Reveal->Enabled Applications
1.4、最后,重启越狱机:执行 killall SpringBoard或者重启设备
当不行时,检查下iOS设备下/System/Library/目录有没RHRevealLoader文件夹,没用就新建一个
2、菜鸟们的GUI(PP助手)各种拖
- 打开以下目录 /System/Library/Frameworks,将RevealServer拷贝进去;
- 使用Reveal2Loader设置需要查看的App,设备->Reveal->Enabled Applications;
-
重启设备。
最终效果(图标显示才算成功):