上篇文章介绍了: 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的更多相关文章

  1. 使用KRPano资源分析工具分析动态网站资源

    软件交流群:571171251(软件免费版本在群内提供) krpano技术交流群:551278936(软件免费版本在群内提供) 最新博客地址:blog.turenlong.com 限时下载地址:htt ...

  2. VS2010自带的性能分析工具分析.NET程序的性能

    这篇博文给大家分享的是,如何使用VS自带的性能分析工具来分析我们编写的.NET程序,一边找出程序性能的瓶颈,改善代码的质量.在实际开发中,性能真的很重要,往往决定一个产品的生死~良好的用户体验的基础之 ...

  3. (appium+python)UI自动化_02_appium启动手机app

    前提:需先安装配置好appium+python自动化环境,已配置好环境的小伙伴可以参考以下步骤启动Android app,具体步骤如下: 一.USB连接手机 (1)手机USB连接电脑 (2)手机打开开 ...

  4. 网站运维工具使用iis日志分析工具分析iis日志(iis日志的配置)

    我们只能通过各种系统日志来分析网站的运行状况,对于部署在IIS上的网站来说,IIS日志提供了最有价值的信息,我们可以通过它来分析网站的响应情况,来判断网站是否有性能问题,或者存在哪些需要改进的地方 对 ...

  5. Reveal UI 分析工具简单使用

    官网下载地址(30天免费试用):http://revealapp.com/ 作用: 在 iOS 开发中,我们有时很希望有一款类似 Web 开发中的 UI Debug 工具(例如:Firebug),让我 ...

  6. Android动态逆向分析工具ZjDroid--脱壳神器

    项目地址:https://github.com/BaiduSecurityLabs/ZjDroid 前提条件: 1.Root手机一部 2.须要通过Xposed installer( http://dl ...

  7. Android Studio - HPROF文件查看和分析工具

    Android Studio 翻译的官方文章 原文链接 当你在Android Studio中使用Android Monitor里的Memory Monitor工具监视内存使用情况时,可以把Java堆快 ...

  8. 安装php xdebug调试工具及性能分析工具webgrind for windows

    安装php xdebug调试工具及性能分析工具webgrind for windows 第一步:查看php版本等信息 phpinfo(); 上面是 x86 NTS VC14 第二步: 下载xdebug ...

  9. MySQL监控、性能分析——工具篇

    https://blog.csdn.net/leamonjxl/article/details/6431444 MySQL越来越被更多企业接受,随着企业发展,MySQL存储数据日益膨胀,MySQL的性 ...

随机推荐

  1. php: 学习记录

    1.get_object_vars($obj) 获取对象$obj的属性数组 2.类和对象 <?php // 类和对象 echo "类和对象" . "\n" ...

  2. 从ASP了解Http Buffer

    he Buffer property specifies whether to buffer the output or not. When the output is buffered, the s ...

  3. postMessage

    postMessage 父页面 e.target.contentWindow.postMessage(messageData, '*'); /*******onMessage处理******/ fun ...

  4. Linux编程之驱动

    增加自己写的驱动程序:http://blog.chinaunix.net/uid-23065002-id-115739.html http://os.51cto.com/art/201108/2840 ...

  5. GUI 测试

    图形用户界面( GUI )对软件测试提出了有趣的挑战,因为 GUI 开发环境有可复用的构件,开发用户界面更加省时而且更加精确.同时, GUI 的复杂性也增加了,从而加大了设计和执行测试用例的难度.因为 ...

  6. 【修改端口号】linux下修改apache,nginx服务端口号

    一.linux下修改apache端口号 yum安装后,apache配置文件: /etc/httpd/conf/httpd.conf 找到apache目录下的 httpd.conf, 使用vi 打开,找 ...

  7. Using Spring Boot without the parent POM

    Using Spring Boot without the parent POM: 问题 spring boot项目一般情况下的parent如下: <parent> <groupId ...

  8. Windows Server 2003从入门到精通之Windows Media Server流媒体服务器架建[转]

    今天我们来做一个windows media server流媒体格式文件的流媒体服务器. 现在市面上能够买到的一些电影文件有 rm格式和wmv格式.还有一些是DivX技术的avi格式,要想让你的服务器对 ...

  9. bzoj 2878: [Noi2012]迷失游乐园

    #include<iostream> #include<cstring> #include<cstdio> #define M 100005 #define ld ...

  10. 内存管理单元(MMU)和协处理器CP15介绍(转)

    内存管理单元(MMU)和协处理器CP15介绍内存管理单元(MMU)介绍嵌入式系统中,存储系统差别很大,可包含多种类型的存储器件,如FLASH,SRAM,SDRAM,ROM等,这些不同类型的存储器件速度 ...