如何非越獄下 查看App UI結(jié)構(gòu)
網(wǎng)上還是有很多各種個樣的方法解決這個問題。
其中我介紹一種高級的。
首先,感謝AloneMonkey的MonkeyDev。它是什么呢?這是一款Xcode 新建 Hook 的工程模板。

iOSOpenDev
說到MonkeyDev 必須提一下iOSOpenDev。
iOSOpenDev網(wǎng)站:http://www.iosopendev.com/
iOSOpenDev主要因為年久失修。所以AloneMonkey大神基于iOSOpenDev的底層重構(gòu)了它。
MonkeyDev
原有iOSOpenDev的升級,非越獄插件開發(fā)集成神器!
*可以使用Xcode開發(fā)CaptainHook Tweak、Logos Tweak 和 Command-line Tool。
*只需拖入一個砸殼應用,自動集成class-dump、restore-symbol、Reveal、Cycript和注入的動態(tài)庫并重簽名安裝到非越獄機器。
*支持調(diào)試自己編寫的動態(tài)庫和第三方App
*支持通過CocoaPods第三方應用集成SDK以及非越獄插件,簡單來說就是通過CocoaPods搭建了一個非越獄插件商店。
安裝前MonkeyDev環(huán)境要求
安裝ldid,Dpkg
在越獄開發(fā)中,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是一個越獄開發(fā)工具包
sudo git clone --recursive https://github.com/theos/theos.git /opt/theos
路徑是/opt/theos
/opt/theos的權(quán)限改為自己所擁有的
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

填寫Product Name,Team
Target App 是在越獄下使用 這里不涉及,略過。

然后進入XCode工作頁面

先看Target App
上面有提示:put ipa or app here
也就是把我們的目標的app的ipa或者可執(zhí)行文件放進去。
這里的App需要砸殼后的ipa。一般我建議大家從PP助手或者其他第三方獲取。但是不能保證全部都是砸了殼的。樓主第一次用的1.8M的小型app竟然沒有砸殼,以至于之前一直build失敗。
HookJDAppDylib是將被注入到目標app的動態(tài)函數(shù)庫,標記重要。以后我們自己寫的hook代碼可以放在里面寫。AloneMonkey大神寫了Demo,感謝。 fishhook是C函數(shù)。
創(chuàng)建的項目已經(jīng)自動集成了RevealServer.framework和libcycript.dylib,如果選擇Release編譯的話是不會集成的。
填坑:從網(wǎng)上下載了Reveal破解版,與AloneMonkey大神的reveal的最新版不匹配。怪我沒看仔細,哭。
原文如下:
集成的RevealServer.framework是最新版本的,所以你可能需要最新的Reveal,
否則使用自己的RevealServer.framework替換掉
/opt/MonkeyDev/frameworks下面的RevealServer.framework。
必須是真機
然后就是Build了。
來個效果圖:
