原文:http://zhuanlan.zhihu.com/iOSRe/19646016spring
Reveal是一个很强大的UI分析工具,与其余几个功能相近的工具(好比PonyDebugger)相比,其最大的特色就是很是直观,用来查看app的UI布局很是方便。其常规用法是将framework集成至Xcode工程中,可参见Reveal的官网Reveal App,但咱们此次讲述的倒是很是规用法。app
在12/21的#阿里技术嘉年华#上,我给听众展现了使用Reveal查看任意app的效果,估计是当时所展现的工具中最亮眼的一个。既然如此,我就提早在这里把Reveal的这个技巧详细的列出来。工具
一、越狱设备,iPhone/iTouch/iPad均可以,iOS6以上(惊闻iOS7也已经越狱了);布局
二、安装Reveal,Trail或正式版均可以,而后越狱设备与安装Reveal的Mac在同一wifi内。spa
三、点击菜单Help / Show Reveal Library in Finder,获取libReveal.dylibcode
图1 找到libReveal.dylibget
四、将libReveal.dylib上传到设备的/Library/MobileSubstrate/DynamicLibrariesit
图2 上传libReveal.dylib到指定目录class
五、同时编辑并上传一个libReveal.plist,格式以下:监控
图3 设定BundleID
注意,此时是能够指定多个BundleID的,也就是说,你能够同时监控任意多的app;再扩大一步说,若是你愿意,不上传这个libReveal.plist,你能够监控全部app,只要你不以为机器很慢。。。
六、re-spring或重启iOS设备,打开你想看的app,再从Reveal界面左上角选择要链接的机器,进入不一样的页面以后还能够点击右上角的刷新钮来刷新监测的页面信息。
图4 看图说话
以上是不写一行代码就可以查看任意app的方法,各位看别人app爽的时候,也能够摸摸脖子想一想本身的app。
这种“高级技巧”历来没有被Reveal官方提起过,而是咱们接触到Reveal以后逐步发现的。一开始的方法比较粗暴,是直接hook想看的app,把libReveal.dylib插进去;后来通过@卢明华 的进一步探索,才总结出这个更简单粗暴的方法。
虽然Reveal是最直观的一个工具,可是在iOS逆向这个领域,它占的比重连1/10都不到,真正的大块头都有点难啃,相信各位都是理解的。
最后,相信咱们的书出来以后,会给朋友们更多深度撞击的感受。