Reveal UI 分析工具分析手机 App
上篇文章介绍了: 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 root@IP(这个 IP 是 iPhone 上的 IP,比如我的 iPhone 上的 IP 为 192.168.0.101,此时输入命令是:ssh root@192.168.0.101)
等待一会后,输入密码(无回显操作),默认是 alpine(默认密码建议不要改,但为了安全考虑,可以修改。具体操作看第3步)
连接成功后,就可以管理 iPhone 上的文件了
输入 exit 退出(我们这里只是测试一下能不能连上 iPhone)

3、修改 iPhone 的 root 和 mobile 账户密码(注意:操作需非常谨慎,确保记住修改后密码:例如我设置密码为自己易记的拨号账户)(可选操作)
//使用 root 账户登录
ssh root@192.168.0.101
//输入账户密码登录成功后,再输入以下命令,然后按需输入旧密码和新密码(无回显),进行修改 root 账户密码
passwd
//注销登录
exit
//使用 mobile 账户登录;可以考虑在 root 账户已登录的情况下,输入「su - mobile」命令切换为 mobile 账户登录
ssh mobile@192.168.0.101
//输入账户密码登录成功后,再输入以下命令,然后按需输入旧密码和新密码(无回显),进行修改 mobile 账户密码
passwd
//注销登录
exit
4、准备上传文件
打开 Reveal,点击菜单栏上的 Help, 选择 Show Reveal Library in Finder
将 libReveal.dylib 拷贝到桌面,方便操作
在桌面创建 libReveal.plist,输入想分析的 App 的 BundleId,可以多个。比如AppStore(其实可以不输入, 这时能分析所有的 App,但是机器会慢到你无法想象,或者开机白苹果啥的,建议还是指定分析 App 比较好)
{
Filter = {
Bundles = (
"com.apple.AppStore"
);
};
}



5、上传文件到 iPhone(Mac 终端操作)
//上传 libReveal.dylib 和 libReveal.plist 到 iPhone(192.168.0.101是 iPhone 上的 IP)
scp Desktop/libReveal.dylib root@192.168.0.101:/Library/MobileSubstrate/DynamicLibraries
scp Desktop/libReveal.plist root@192.168.0.101:/Library/MobileSubstrate/DynamicLibraries

6、重启 iPhone(关机、开机进行重启)
如果你成功的完成了上面的步骤,并且 iPhone 成功重启,OK,下面就可以分析 App 了。
打开Reveal,打开 iPhone 上你指定的 App,在 Reveal 左上方选择 App
切换页面后,可以点击 Reveal 右上角的刷新按钮

Reveal UI 分析工具分析手机 App的更多相关文章
- 使用KRPano资源分析工具分析动态网站资源
软件交流群:571171251(软件免费版本在群内提供) krpano技术交流群:551278936(软件免费版本在群内提供) 最新博客地址:blog.turenlong.com 限时下载地址:htt ...
- VS2010自带的性能分析工具分析.NET程序的性能
这篇博文给大家分享的是,如何使用VS自带的性能分析工具来分析我们编写的.NET程序,一边找出程序性能的瓶颈,改善代码的质量.在实际开发中,性能真的很重要,往往决定一个产品的生死~良好的用户体验的基础之 ...
- (appium+python)UI自动化_02_appium启动手机app
前提:需先安装配置好appium+python自动化环境,已配置好环境的小伙伴可以参考以下步骤启动Android app,具体步骤如下: 一.USB连接手机 (1)手机USB连接电脑 (2)手机打开开 ...
- 网站运维工具使用iis日志分析工具分析iis日志(iis日志的配置)
我们只能通过各种系统日志来分析网站的运行状况,对于部署在IIS上的网站来说,IIS日志提供了最有价值的信息,我们可以通过它来分析网站的响应情况,来判断网站是否有性能问题,或者存在哪些需要改进的地方 对 ...
- Reveal UI 分析工具简单使用
官网下载地址(30天免费试用):http://revealapp.com/ 作用: 在 iOS 开发中,我们有时很希望有一款类似 Web 开发中的 UI Debug 工具(例如:Firebug),让我 ...
- Android动态逆向分析工具ZjDroid--脱壳神器
项目地址:https://github.com/BaiduSecurityLabs/ZjDroid 前提条件: 1.Root手机一部 2.须要通过Xposed installer( http://dl ...
- Android Studio - HPROF文件查看和分析工具
Android Studio 翻译的官方文章 原文链接 当你在Android Studio中使用Android Monitor里的Memory Monitor工具监视内存使用情况时,可以把Java堆快 ...
- 安装php xdebug调试工具及性能分析工具webgrind for windows
安装php xdebug调试工具及性能分析工具webgrind for windows 第一步:查看php版本等信息 phpinfo(); 上面是 x86 NTS VC14 第二步: 下载xdebug ...
- MySQL监控、性能分析——工具篇
https://blog.csdn.net/leamonjxl/article/details/6431444 MySQL越来越被更多企业接受,随着企业发展,MySQL存储数据日益膨胀,MySQL的性 ...
随机推荐
- XAF应用开发教程(八) 汉化与多国语言支持
使用了XAF开发时,汉化是一个比较常的问题. 要实现汉化很简单: 1.在这里下载汉化资源文件.这里演示的版本是15.1.X的 2.文件下载后将:文件解压到目录 <你的项目>\BIN\ ...
- 《BI项目笔记》创建多维数据集Cube(2)
本节建立: 历年的初烟水分均值变化分析Cube:区域维度:地州,专县时间维度:年等级维度:大等级,小等级指标:水分均值 数据源视图: 数据处理: ) ) DELETE FROM T_QualMoist ...
- 如何将php的错误输出到nginx的error_log中去
参考文档:http://www.cnblogs.com/glory-jzx/p/3966082.html 通过FastCGI运行的PHP,在用户访问时出现错误,会首先写入到PHP的errorlog中如 ...
- python成长之路【第二篇】:列表和元组
1.数据结构数据结构是通过某种方式(例如对元素进行编号)组织在一起的数据元素的集合,这些数据元素可以是数字或者字符,甚至可以是其他数据结构.在Python中,最基本的数据结构是序列(sequence) ...
- Android pulltorefresh使用
pulltorefresh插件可以轻松实现上拉下拉刷新,github.com上直接搜索进行下载. 布局文件: <RelativeLayout xmlns:android="http:/ ...
- C++成员变量内存对齐问题,ndk下非对齐的内存访问导致BUS_ADRALN
同样的代码,在vs下运行正常,在android ndk下却崩溃: signal 7(SIGBUS),code 1 (BUS_ADRALN),fault addr 0xe6b82793 Func(sho ...
- Linux 下 git连接github的使用
1.安装git sudo apt-get install git 2.创建github帐号 3.Linux创建SSH密钥: ssh-keygen //一直默认 4.将公钥加入到Github账户信息A ...
- 用Application和Session统计在线人数[转]
在Global.asax全局变量文件中,修改其中的 Session_Start 和 Session_End 方法:代码如下: protected void Session_Start(object ...
- 编写高质量JavaScript代码的基本要点
全局变量 javaScript通过函数管理变量作用域.在函数内部声明的变量只在这个函数内部可用,函数外面不可用.另一方面,在任何函数外面声明的或是函数内未声明直接使用的变量叫做全局变量. 每个Java ...
- 介绍开源的.net通信框架NetworkComms框架之八 UDP通信
原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架 作者是英国人 以前是收费的 目前作者已经开源 许可是 ...