本篇僅供學術使用
閱讀對象:不想要手機越獄,但又想要安裝帶有Tweak功能的應用
具備條件
- 一台Mac(PC我不熟🌚)
- 一台iOS設備,並且已經越獄
- 已經安裝Xcode,因為會使用到
otool
、install_name_tool
指令 - 看過這篇文章,知道怎麼ssh連線到你的越獄設備
- 下載libsubstrate.dylib先放在桌面
- 下載optool,放到
/usr/local/bin
針對optool在終端機下指令,權限不夠無法執行
1 | chmod +x optool |
找一個別人寫好的deb,這邊用Facebook的Messenger作為例子
沒有使用之前,有一則廣告
Tweak生效後,廣告消失了
Cydia安裝
攔截deb
點擊「重新啟動SpringBoard」後,deb就會被刪除
所以請停止在這個畫面,然後操作攔截流程
- 首先使用終端連線到越獄的設備
- 檢查該deb安裝檔案是否存在
1 | cd /private/var/mobile/Library/Caches/com.saurik.Cydia/archives/ |
由此,可以確認我們要的檔案存在於
1 | /private/var/mobile/Library/Caches/com.saurik.Cydia/archives/com.haoict.messengernoads_0.0.2_iphoneos-arm.deb |
利用SCP把檔案傳送到Mac裡
建議先把終端機的路徑移動到桌面
1 | scp -P2222 root@127.0.0.1:/private/var/mobile/Library/Caches/com.saurik.Cydia/archives/com.haoict.messengernoads_0.0.2_iphoneos-arm.deb ./ |
把deb裡面的dylib拆出來
使用betterzip把dylib拿出來
- 安裝betterzip
1 | brew cask install betterzip |
Extract data
持續解壓縮data並獲得Library
獲得dylib
把Messenger砸殼
桌面建立一個資料夾,裡面要有這些東西
- 砸殼的應用
- libsubstrate.dylib
- 插件的dylib
解壓縮砸殼應用
1 | unzip Messenger.ipa |
把libsubstrate.dylib、messengernoads.dylib丟進去Payload/Messenger
等等會用到
進入Payload/Messenger修改info.plist
- 把下圖內容刪除
這些是支援的設備,若要支援所有的設備這個KEY必須刪除
打開終端機並移動到Payload/Messenger底下
- 查看messengernoads.dylib
1 | otool -L messengernoads.dylib |
會看到越獄手機才會用到的CydiaSubstrate
- 利用install_name_tool替換CydiaSubstrate -> libsubstrate.dylib
1 | install_name_tool -change /Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate @loader_path/libsubstrate.dylib messengernoads.dylib |
- 再次查看messengernoads.dylib
1 | otool -L messengernoads.dylib |
會發現原來的文件路徑改為絕對路徑表示成功
利用optool把dylib注入到目標的二進文件
1 | optool install -c load -p "@executable_path/messengernoads.dylib" -t ./Messenger |
結果如下,表示成功
重新包裝iPA檔案
- 將Payload壓縮
- 更改壓縮檔案附檔名為xxx.ipa