如何非越狱下 查看App UI结构
网上还是有很多各种个样的方法解决这个问题。
其中我介绍一种高级的。
首先,感谢AloneMonkey的MonkeyDev。它是什么呢?这是一款Xcode 新建 Hook 的工程模板。
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
MonkeyApp.png填写Product Name,Team
Target App 是在越狱下使用 这里不涉及,略过。
9A93EAFC-3154-4DF7-A73D-DAF2A1250D08.png
然后进入XCode工作页面
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了。
来个效果图:
C55C327D-291A-4BA0-B167-7083907182D9.png
网友评论