在iOS逆向工程中,Reveal扮演着重要角色,一般情况下,Reveal在iOS开发过程中可以分析UI界面的状态,同样也可以应用于分析其他任意的App。Reveal是一个很强大的UI分析工具,可非常直观地查看app的UI布局,不仅限于自己的app,其他app的UI布局也一览无余。
必须要一台越狱手机
越狱教程:http://www.taig.com
安装openSSH(Cydia源里安装)
在mac终端通过openSSH命令连接越狱机
1.越狱机与mac必须连接同一网络
2.在终端命令中输入ssh root@越狱机网络IP
,如:ssh root@192.168.2.2
3.输入您修改过的Root密码,默认:alpine
注意:连接越狱机时,可能出现下面错误(未出错请忽略这块)
RSA host key for 192.168.2.2 has changed and you have requested strict checking.
Host key verification failed.
这是openssh-server重装引起的,执行以下命令即可解决
ssh-keygen -R 192.168.2.2
(192.168.2.2换成你要连的手机网络IP)
安装MobileSubstrate(Cydia源里安装)
...
安装Reveal(Mac上)
1.官网:http://revealapp.com
2.可下载试用版:download a trial (当然你也可以买滴~~)
3.如果之前下载过又过期了,可以调整系统时间(调前一两年)
1.打开Revela,找到libReveal.dylib
、Reveal.framework
2.拷贝Reveal.framework
到越狱机 (注意:重新开个终端,无需连接越狱机)
scp -r /Users/apple/Desktop/Reveal.framework root@192.168.2.2:/System/Library/Frameworks
可到越狱机查看注入的文件:
3.拷贝libReveal.dylib
到越狱机
scp -r /Users/apple/Desktop/libReveal.plist root@192.168.2.2:/Library/MobileSubstrate/DynamicLibraries/
4.在本地创建libReveal.plist
,编辑libReveal.plist
,指定app的Bundle identifier
(可以指定多个Bundle identifier
),下面添加App Store
与简书
的Bundle identifier
(注意:如何找app对应的Bundle identifier
请看后面)
拷贝libReveal.plist
到越狱机
scp -r /Users/apple/Desktop/libReveal.plist root@192.168.2.2:/Library/MobileSubstrate/DynamicLibraries/
可越狱机查看注入的文件:
# cd /Library/MobileSubstrate/DynamicLibraries/
# ls
重启手机(或执行命令killall SpringBoard
),打开App Store
或简书app
,随后在Reveal右上角选择
(注意:有可能白苹果,解决方案请看后面)
如何找到app的Bundle identifier?
1.终端连接越狱机后,输入:cd /private/var/mobile/Containers/Bundle/Application
2.查看手机所有app资源文件输入:ls
(列出手机上所有app的资源文件,怎么找?)
3.打开iTunes->我的应用程序->右键简书app
->在Finder中显示->解压ipa->进入解压文件->Payload->右键应用程序->显示包内容->找到可执行文件
(黑色)->复制文件名
可执行文件
:
查找简书app
资源文件路径:find . -name 'Hugo*'
简书app
资源文件名:BE1895C3-5CB0-4894-8A9E-FE4EEF4C7989
4.安装iFile(Cydia源里安装)
进入iFile打开iTunesMetadata.plist:/private/var/mobile/Containers/Bundle/Application/BE1895C3-5CB0-4894-8A9E-FE4EEF4C7989/iTunesMetadata.plist
下图红框里的comjianshu.Hugo
即为简书的Bundle identifier
重启手机后白苹果,无法进入界面
预估原因:libReveal.plist文件格式错误导致
第一种方法:
长按【home键】+【电源键】->在白苹果刚刚出现的时候->按住iPhone的音量增加键->iPhone进入Safe Mode->正常重启->将libReveal.plist文件删掉
第二种方法:
第一步:重新恢复系统
1.打开iTunes,越狱机与电脑连接 -> 长按【home键】+【电源键】6秒强制关机 -> 随后长按【home】键6秒,直到在电脑上看到识别到DFU状态下的USB设备时就进入到DFU模式
2.随后你有两个选择,升级更高系统或恢复出厂状态。(系统都会自动会升级到最高版本8.4.1)第二步:降低系统,目前越狱只支持8.4以下(8.4.1只能降到8.4)
1.找到8.4的固件(下载地址: http://jailbreak.25pp.com/gujian/固件区分: http://bbs.25pp.com/thread-108715-1-1.html)
2.手机连接mac->打开iTunes->选择设备->摘要->option + 点击更新
/恢复iPhone
)->选择下载的固件 -> 自动安装直到成功第三步:越狱
1.用太极软件越狱 (下载地址:http://www.taig.com) (ps:pp助手,8.4越狱失败)
1:网易新闻 a.首页(NTESNBNewsListPageController) 顶部:NTESNBNewsNaviBarlnnerView 头部:NTESNBChannelSlideView -UICollectionView -NTESNBChannelSlideViewCell 主页:NTESNBPreventScrollingScrollView tabbar:NTESNBTabBar
2:今日头条 a.首页(ArticleTabBarStyleNewsListViewController) UITransitionView -TTFeedCollectionViewController 主页:-UIcollectionView -TTFeedCollectionNewsListCell -UITableView 顶部:-TTTopBar -TTCategorySelectorView 头部:-UIScrollView TTTabbar -TTArticleTabBarController