原文在此

一、Reveal

1 一般使用

    Reveal是ITTY BITTY发布的UI分析工具,可以很直观的查看App的UI布局。如下图所示:

    Reveal是需要付费的,需要89美元,也可以免费使用30天,不过和其它软件一样,网上都有破解版。推荐另一位博主的博客,里面有破解版安装和简单使用教程:iOS张诚的博客——Reveal使用教程。 另外也将软件Fork了一份到GitHub:https://github.com/mddios/Reveal.git

2 程序逆向

    上面的介绍对于我们自己程序的调试,查看UI布局,改动控件尺寸后实时显示已足够;但是对于程序逆向来说显然不能满足我们的要求,能够查看别人App的布局才是我们的目的,介绍如下:

下面的操作需要用到越狱手机

  • 在越狱手机安装Reveal Loader

    在Cydia中搜索安装Reveal Loader,安装完成后检查/Library/目录下有没有RHRevealLoader文件夹,如果没有,则根据下图提示,通过PP助手、iTools等手机助手自己创建一个RHRevealLoader文件夹,一定要在/Library/目录下。

  • 拷贝动态库到手机

    在MacBook下打开已经安装的Reveal,选择标题栏Help下的Show Reveal Library in Finder子选项,将会显示如下界面:

    将libReveal.dylib文件通过PP助手拷贝到刚才创建的RHRevealLoader文件夹下,至此Reveal Loader安装完毕。

  • 配置Reveal Loader

    打开手机设置,找到Reveal(一般在设置的最下面),然后点击Reveal,进入后再点击Enabled Applications就进入配置页面,如果想看哪个App则打开后面的按钮。假设我们查看系统自带的天气应用,那么打开后面的按钮,然后回到手机主界面点击启动天气应用(如果已经启动,关闭后再次启动),最后再在MacBook的Reveal中选择对应的应用即可,如下图所示:

    下面为系统天气应用UI布局图,还是很清晰的,使用了大量的Label和ImageView控件,再配合class-dump(如何使用参考此处)出的头文件,对应用程序就有整体认识:

二、Hopper Disassemble与IDA

    根据class-dump和Reveal只能对程序整体有个框架性的认识,但是具体到某个功能、函数则需要反汇编工具,甚至能够在线调试它们,打印出我们想要的信息等等。Hopper Disassemble与IDA都是反汇编/调试器工具,两款软件选择哪个都可以,IDA支持Windows、Linux、Mac OS X多平台的反汇编/调试器,Hopper Disassemble更倾向于Mac OS X平台。可以去官网下载安装:

    这两款软件也都是有破解版的,已上传到了csdn,可以直接下载(IDA是免积分的;Hopper Disassemble下载需要一个积分,上传后才发现不能取消,需要管理员权限才可以,先谢谢大家的积分)

  • 下面是Hopper Disassemble的预览图片,使用时直接将可执行文件拖进程序即可,另外图中红色圈主的部分,是两个按钮打开后可以点击下试试,会经常使用。

iOS程序逆向Mac下常用工具——Reveal、HopperDisassemble、IDA的更多相关文章

  1. Mac下常用工具

    MySql--Sequel Pro

  2. Mac上常用工具总结

    iOS开发辅助工具 Reveal :Xcode辅助界面调试工具 官网地址:https://revealapp.com/download/ 图标: SimPholders : 快速打开模拟器中的应用程序 ...

  3. Mac OSX常用工具

    换Mac有几个月了,刚换的那个月折腾了整整一个月,初用OSX很不适应,这是一种错觉,就好比说了十几年汉语,突然说英语肯定很别扭,适应后就会觉得英语更加实用. Life weiboX(http://we ...

  4. [MAC OS] 常用工具

    1.Charles mac下的抓包.代理神器 比如我想本地配置 到我的开发机上面.我可以通过Charles 下Tools  -> Map Remote 配置跳转. 2.Postman chrom ...

  5. 我Win下常用工具清单

    GoAgent 搞研发的没有一个FQ访问Google的工具,真没法工作,所以第一主推这个, 相关按照方式请参考: http://www.cnblogs.com/ghj1976/category/696 ...

  6. IntelliJ IDEA windows与mac下常用快捷键

    摘自: http://www.th7.cn/Program/java/201604/817219.shtml 1.找文件找代码找引用 shif双击在项目的所有目录查找 ctrl+f(mac下:comm ...

  7. iOS 开发用到的常用工具

    如果你去到一位熟练的木匠的工作室,你总是能发现他/她有一堆工具来完成不同的任务. 软件开发同样如此.你可以从软件开发者如何使用工具中看出他水准如何.有经验的开发者精于使用工具.对你目前所使用的工具不断 ...

  8. CocoaPods :为iOS程序提供依赖管理的工具(yoowei)

    修改于:2016.11.18   2017.1.10  2019.01.31 CocoaPods 源码 : https://github.com/CocoaPods/CocoaPods CocoaPo ...

  9. Mac下常用快捷键(转)

    前提,先熟读键盘快捷键符号:http://www.cnblogs.com/EasonJim/p/6350075.html 基本操作: Command-Z 撤销 Command-X 剪切 Command ...

随机推荐

  1. 如何用perl将表格中不同列的数据进行拼凑,然后将拼凑后的数据用“|”连接在一起

    最近写了一个perl脚本,实现的功能是将表格中其中两列的数据进行拼凑,然后将拼凑后的数据用“|”连接在一起. 表格内容如下: 员工号码 员工姓名 职位 入职日期 1001 张三 销售 1980/12/ ...

  2. 关于Java中的transient关键字

    Java中的transient关键字是在序列化时候用的,如果用transient修饰变量,那么该变量不会被序列化. 下面的例子中创建了一个Student类,有三个成员变量:id,name,age.ag ...

  3. java.util.ConcurrentModificationException异常处理

    ConcurrentModificationException异常处理 ConcurrentModificationException异常是Iterator遍历ArrayList或者HashMap数组 ...

  4. 【JUC】JDK1.8源码分析之ConcurrentHashMap(一)

    一.前言 最近几天忙着做点别的东西,今天终于有时间分析源码了,看源码感觉很爽,并且发现ConcurrentHashMap在JDK1.8版本与之前的版本在并发控制上存在很大的差别,很有必要进行认真的分析 ...

  5. 【JUC】JDK1.8源码分析之LinkedBlockingQueue(四)

    一.前言 分析完了ArrayBlockingQueue后,接着分析LinkedBlockingQueue,与ArrayBlockingQueue不相同,LinkedBlockingQueue底层采用的 ...

  6. jQuery-1.9.1源码分析系列(十四) 一些jQuery工具

    为了给下一章分析动画处理做准备,先来看一下一些工具.其中队列工具在动画处理中被经常使用. jQuery.fn. queue(([ queueName ] [, newQueue ]) || ([ qu ...

  7. 【原创】基于日志增量,统计qps,并基于ip排序

    增量统计日志行数(只统计上一秒) dns_qps.py #!/usr/bin/env python #_*_coding:utf-8_*_ import datetime import re impo ...

  8. Linux打包与压缩及tar命令详解

    打包和压缩   在linux中,打包和压缩可以说是两个不同的概念,弄清这两个概念对于我们理解复杂的文件后缀有非常大的帮助 打包 将若干个文件和目录打包在一起变成一个大的文件,这时只是简单的打包,所以一 ...

  9. animation-fill-mode的一些思考

    animation-fill-mode是css3动画的一个属性,它能够控制元素在动画执行前与动画完成后的样式.一个带有延迟,并且按正常方向执行的动画(正常方向是指从0%运行到100%),执行一次的过程 ...

  10. 4.DB Initialization(数据库初始化)[EF Code-First系列]

    前面的例子中,我们已经看到了Code-First自动为我们创建数据库的例子. 这里我们将要学习的是,当初始化的时候,Code-First是怎么决定数据库的名字和服务的呢??? 下面的图,解释了这一切! ...