如何在非越狱下查看别人的App UI结构

如何非越狱下 查看App UI结构

网上还是有很多各种个样的方法解决这个问题。
其中我介绍一种高级的。
首先,感谢AloneMonkey的MonkeyDev。它是什么呢?这是一款Xcode 新建 Hook 的工程模板。

如何在非越狱下查看别人的App UI结构_第1张图片
模版.png

iOSOpenDev

说到MonkeyDev 必须提一下iOSOpenDev。
iOSOpenDev网站:http://www.iosopendev.com/
iOSOpenDev主要因为年久失修。所以AloneMonkey大神基于iOSOpenDev的底层重构了它。

MonkeyDev

原有iOSOpenDev的升级,非越狱插件开发集成神器!

*可以使用Xcode开发CaptainHook Tweak、Logos Tweak 和 Command-line Tool。

*只需拖入一个砸壳应用,自动集成class-dump、restore-symbol、Reveal、Cycript和注入的动态库并重签名安装到非越狱机器。

*支持调试自己编写的动态库和第三方App

*支持通过CocoaPods第三方应用集成SDK以及非越狱插件,简单来说就是通过CocoaPods搭建了一个非越狱插件商店。

安装前MonkeyDev环境要求

安装ldid,Dpkg

在越狱开发中,iOS文件的签名是使用ldid工具来完成的,也就是说ldid取代了Xcode自带的Codesign
Dpkg是Debian(Linux)软件包管理器的基础。

brew install dpkg ldid

上述使用homebrew安装,如果没homebrew

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

安装 theos

Theos是一个越狱开发工具包

sudo git clone --recursive https://github.com/theos/theos.git /opt/theos

路径是/opt/theos

/opt/theos的权限改为自己所拥有的

sudo chown $(id -u):$(id -g) /opt/theos

打开~/.bash_profile

vim ~/.bash_profile

把下面的两行代码加入

export THEOS=/opt/theos
export PATH=/opt/theos/bin/:$PATH

更新bash_profile

source ~/.bash_profile

MonkeyDev

MonkeyDev 安装很简单
如果你有多个XCode请注意,选择指定的XCode。

sudo xcode-select -s /Applications/Xcode.app 

默认安装的Xcode

xcode-select -p

终于要安装MonkeyDev了

sudo /bin/sh -c "$(curl -fsSL https://raw.githubusercontent.com/AloneMonkey/MonkeyDev/master/bin/md-install)"

至此,大功告成!
重启XCode就有了MoneyDev了,可以愉快的玩耍了。

使用

安装完成之后,打开Xcode,点击File - New - Project...,选择iOS滑动到最下方可以看到MonkeyDev提供的模块:

选择MonkeyApp

如何在非越狱下查看别人的App UI结构_第2张图片
MonkeyApp.png

填写Product Name,Team

Target App 是在越狱下使用 这里不涉及,略过。


如何在非越狱下查看别人的App UI结构_第3张图片
9A93EAFC-3154-4DF7-A73D-DAF2A1250D08.png

然后进入XCode工作页面


如何在非越狱下查看别人的App UI结构_第4张图片
37D685FA-6238-4915-AA71-D1180D2F39FF.png

先看Target App
上面有提示:put ipa or app here
也就是把我们的目标的app的ipa或者可执行文件放进去。
这里的App需要砸壳后的ipa。一般我建议大家从PP助手或者其他第三方获取。但是不能保证全部都是砸了壳的。楼主第一次用的1.8M的小型app竟然没有砸壳,以至于之前一直build失败。

HookJDAppDylib是将被注入到目标app的动态函数库,标记重要。以后我们自己写的hook代码可以放在里面写。AloneMonkey大神写了Demo,感谢。 fishhook是C函数。

创建的项目已经自动集成了RevealServer.framework和libcycript.dylib,如果选择Release编译的话是不会集成的。

填坑:从网上下载了Reveal破解版,与AloneMonkey大神的reveal的最新版不匹配。怪我没看仔细,哭。
原文如下:

集成的RevealServer.framework是最新版本的,所以你可能需要最新的Reveal,
否则使用自己的RevealServer.framework替换掉
/opt/MonkeyDev/frameworks下面的RevealServer.framework。

必须是真机

然后就是Build了。

来个效果图:


如何在非越狱下查看别人的App UI结构_第5张图片
C55C327D-291A-4BA0-B167-7083907182D9.png

你可能感兴趣的:(如何在非越狱下查看别人的App UI结构)