查看任意App的UI,就问你心不心动
开篇
曾经我还是一名开发仔的时候(现在也还是一个开发仔啦>_<),对各大厂的App产品有着很强的好奇心的,但苦于手边没有合适的越狱设备,心愿一直没能达成。就在昨天发现了一个神器,可以满足你一窥优秀产品UI结构的愿望,想想都敲开心对不对,反正昨天我是折腾了一整天,把感兴趣产品的UI都看了一遍。
首先看一下渣浪的UI开开胃:
Reveal是什么想必大家也都知道,不知道也可以自行搜索了解,用Reveal的需要有两个前提条件:
1、App要是自己的;
2、真机调试是需要将动态库注入程序的;
那么如果有这么一个超强的工具,将已经砸壳的ipa文件进行重签名并且将Reveal的动态库放到本地的工程里面重新生成.app格式文件,那这样是不是就满足上述两点,问题就迎刃而解啦。
开始动手
1.安装Reveal
首先要去Reveal官网下载最新的试用版Reveal 10,目前市面上能搜到的破解版(Reveal1.6.3、Reveal 2、Reveal 4)都是不能用的,还是老实点用试用版吧(如果你是逆向大神自己动手绕过了验证,请务必联系我),毕竟14天的也够用了。
在本案例中Reveal是不需要自己配置的,单独运用到其他项目中大家可以自行搜索。
2.IPA下载
这一步相对来说比轻松,如果你图方便可以直接在PP助手里下载已经砸壳的IPA文件,或者你喜欢自己动手亲自砸壳也未尝不可。
3.安装MonkeyDev
跟着MonkeyDev的wiki一步步走就可以安装好。主要用到的命令行有:
sudo git clone --recursive https://github.com/theos/theos/git /opt/theos
brew install ldid
git clone https://github.com/AloneMonkey/MonkeyDev.git
cd MonkeyDev/bin
sudo ./md-install
ps:默认clone的路径为Finder中的个人(Home),没有安装HomeBrew的童鞋可以用
ruby -e"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
需要注意有两点:
1、要用自己的Provisioning Profile;
2、要用真机运行,第一次运行会提示Build failed,没关系的,继续Run就可以成功。
ps: wiki里面提到MonkeyDev用的是最新版Reveal动态库,如果想用其他版本的可以自己更换Reveal的动态库,但是在测试的工程发现,有些版本的Reval直接是no connect,有些版本在最终查看UI的时候会提示需要更新,在此也说明一下。
这里扯开谈一下,一个砸壳的App重新安装到你自己的设备上同时可以用Reveal查看需要这么几个步骤:
1、将Cycript.framework注入到xxx.app中
2、将RevealServer.framework注入到xxx.app中
3、对其进行重签名
同时,在实际使用过程中我测试了各大厂的产品,除了蚂蚁家某宝存在启动闪退外,其他项目均可以正常使用(猪厂的云音乐做了重签名验证无法显示数据),从准确性、上手程度上来讲MonkeyDev算是站在巨人的肩膀上的一个好作品。
另外,关于重签名的项目像iOSAppHook、EasyResign、iReSign。都提供了重签名的功能,大家可自行测试。
后记
如果说把一个App比做一座房子,了解了UI就相当于最直观的明白了这座房子是什么一个架构,哪一个模块是什么结构,至于内部业务逻辑是怎么运转都可以循着UI的变动去找到蛛丝马迹,反过来如果你想依照逻辑来设计UI其实也可以成立的。只不过对我而言,单纯通过反编译出来的代码来理 清一个App的架构太过痛苦了。
最后,如果大家有更好的想法,欢迎评论。
声明:文中示例仅作为学习交流用,不用于任何商业用途,否则后果自负。