免费开源的iOS开发学习平台

Reveal:2-逆向工程:分析任意iOS应用的UI界面

在iOS逆向工程中,Reveal扮演着重要角色。一般情况下,Reveal在iOS开发过程中可以分析UI界面,另外,也可以应用于分析其他任意的App。特别是对于初学者来说,去了解其他优秀App的界面构成,对于提升开发能力也有极大帮助。

准备工作

在使用Reveal分析他人的app之前,请确保如下条件具备:

  • 一台越狱的iPhone。根据iOS系统版本的情况,选择对应的越狱方法,对iPhone进行越狱操作(推荐使用iOS7或iOS8);
  • Reveal,推荐使用1.6.x版本;
  • PP助手:电脑上安装PP助手或其他可以用于访问iOS设备文件系统的软件;
  • 文本编辑器:如UltraEdit等;
  • 一台无线路由器。需要保证MAC电脑与iPhone都连接到同一台无线路由器上。

cydia中安装软件

iPhone手机越狱完成后,需要通过cydia安装如下软件,安装完成后,请重启手机。

  • AFC补丁:Apple File Conduit(有些时候会自动装上,如果没有安装的话,手动安装)

  • Reveal Loader 1.0.0

文件上传

使用文档编辑工具(如:UltraEdit)创建一个名称为:libReveal.plist的文件,格式如下,把需要分析的App应用的BundleID填写在括号内。

{ 
    Filter = { 
        Bundles = (
                   "com.apple.AppStore",
                   );     
    }; 
}

使用PP助手,上传libReveal.plist文件到iPhone的如下目录:/Library/MobileSubstrate/DynamicLibraries

打开Reveal,点击菜单栏上的HELP,选择Show Reveal Library in Finder,然后把libReveal.dylib文件也上传到手机的/Library/MobileSubstrate/DynamicLibraries目录中。

开始分析

保证iPhone和Mac连接在同一台无线路由器下。打开iPhone的设置–>Reveal,选择需要分析的App。

在iPhone上,打开需要分析的App,然后返回Reveal,在左上角选中手机,即可分析界面构成。

注意点

  • 必须保证iPhone手机和Mac在同一个Wifi环境下,分析时,手机无需用USB线连接到电脑;
  • libReveal.plist文件,请用文本编辑器创建,不要使用Xcode创建,推荐用UltraEdit。
  • 必须上传libReveal.plist文件到手机中,否则会白苹果;如果因操作失误白苹果了,可以使用如下方法恢复:
  • 强制重启:电源键+HOME键长按;
  • 进入安全模式:开机后,苹果图标一出现,马上按住音量+,即可开机;
  • 开机后,使用PP助手,删除libReveal.dylib文件(注意是:dylib文件),然后重启,手机恢复正常。

由于该操作设计到对手机进行越狱操作,具有一定的风险性,对于手机熟悉程度不高的开发者建议谨慎尝试。