本文转载至 http://blog.csdn.net/wbdwsqwwn/article/details/40476139

Reveal是一个很强大的UI分析工具,与其他几个功能相近的工具(比如PonyDebugger)相比,其最大的特点就是非常直观,用来查看app的UI布局非常方便。其常规用法是将framework集成至Xcode工程中,可参见Reveal的官网http://revealapp.com/,但我们这次讲述的却是非常规用法。 在12/21的#阿里技术嘉年华#上,我给听众展示了使用Reveal查看任意app的效果,估计是当时所展示的工具中最亮眼的一个。既然如此,我就提前在这里把Reveal的这个技巧详细的列出来。 1、越狱设备,iPhone/iTouch/iPad都可以,iOS6以上(惊闻iOS7也已经越狱了); 2、安装Reveal,Trail或正式版都可以,然后越狱设备与安装Reveal的Mac在同一wifi内。 3、点击菜单Help / Show Reveal Library in Finder,获取libReveal.dylib 图1 找到libReveal.dylib 4、将libReveal.dylib上传到设备的/Library/MobileSubstrate/DynamicLibraries 图2 上传libReveal.dylib到指定目录 5、同时编辑并上传一个libReveal.plist,格式如下: 图3 设定BundleID 注意,此时是可以指定多个BundleID的,也就是说,你可以同时监控任意多的app;再扩大一步说,如果你愿意,不上传这个libReveal.plist,你可以监控所有app,只要你不觉得机器很慢。。。 6、re-spring或重启iOS设备,打开你想看的app,再从Reveal界面左上角选择要连接的机器,进入不同的页面之后还可以点击右上角的刷新钮来刷新监测的页面信息。 图4 看图说话 以上是不写一行代码就能够查看任意app的方法,各位看别人app爽的时候,也可以摸摸脖子想想自己的app。 这种“高级技巧”从来没有被Reveal官方提起过,而是我们接触到Reveal之后逐步发现的。一开始的方法比较粗暴,是直接hook想看的app,把libReveal.dylib插进去;后来经过@卢明华 的进一步探索,才总结出这个更简单粗暴的方法。 虽然Reveal是最直观的一个工具,但是在iOS逆向这个领域,它占的比重连1/10都不到,真正的大块头都有点难啃,相信各位都是理解的。 最后,相信我们的书出来之后,会给朋友们更多深度撞击的感觉。 准备工作 1)已越狱的设备,并且已安装了OpenSSH,MobileSubstrate等实用工具(Cydia源里安装) 2)本地已安装了Reveal 操作步骤 1)拷贝framework和dylib到越狱机 scp -r /Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/Reveal.framework root@192.168.0.X:/System/Library/Frameworks scp /Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib root@192.168.0.X:/Library/MobileSubstrate/DynamicLibraries 2)编辑libReveal.plist a.可以ssh登录到越狱机上,并且越狱机已安装了编辑器工具例如nano,在/Library/MobileSubstrate/DynamicLibraries/下创建文件libReveal.plist,指定app的Bundle,可以指定多个 { Filter = { Bundles = (“com.apple.AppStore”); }; } b.也可以在本地创建好libReveal.plist在scp到指定位置/Library/MobileSubstrate/DynamicLibraries/下 3)重启越狱机 a.执行 killall SpringBoard b.也可以重启设备 然后就可以到Reveal看看别人的app怎么布局的了,苹果的appstore:

最新文章

  1. springmvc @responsebody 406/415问题解决
  2. About_Smarty
  3. ios 关于问题 no matching provisioning profiles found
  4. ListView只允许展开其中一个item的方法
  5. 关于在线预览word,excel,ppt,pdf的需求处理方法。
  6. [bzoj3694]最短路
  7. [转]在SqlServer 中解析JSON数据
  8. CAShapeLayer--备用
  9. SAP一句话入门 .
  10. java_method_删除事务回滚
  11. Codeforces 138D World of Darkraft
  12. JS--switch 语句
  13. springboot 注册dao层 service 层
  14. HDU 2204 Eddy's 爱好 (容斥原理)
  15. ns2.34 移植MFLOOD协议时出现的问题
  16. pacbio bax.h5文件处理及ccs计算
  17. MSI-X 之有别于MSI
  18. Web Api 的 路由机制
  19. 在Hadoop上运行基于RMM中文分词算法的MapReduce程序
  20. C++泛型和算法

热门文章

  1. PTA 10-排序4 统计工龄 (20分)
  2. 13-数组的API方法遍历
  3. DIV垂直/水平居中2(DIV宽度和高度是动态的)
  4. 648. Replace Words
  5. jenkins执行自动化用例(详细、有用、mark 优先级高高高)
  6. uva 10090 二元一次不定方程
  7. 济南学习 Day 5 T1 晚
  8. WAMP本地环境升级php版本
  9. Spring 定时器 定时访问数据库并发送邮件
  10. (5)ASP.NET Core 中的静态文件