導讀
0x00.交個朋友
0x01.TB編輯器Run命令詳解
0x02.系統級Hello World
0x03.TB系統級API
0x04.程序級Hello World
0x05.TB程序級API
0x06.開發模式
0x07.外掛模式
0x08.下篇再見
0x09.定製服務
0x00.交個朋友手遊從業者模擬器玩家請關注雲遊模擬器PantaWin;
Android開發者請關注雲遊模擬器PantaWin/PantaMac/PantaLinux;
iOS越獄開發者請關注曉文框架Textobot;
Android外掛開發者請關注FIT框架Fridobot;
移動偵錯程式重度使用者請關注利達偵錯程式LidaDbg;
我們的產品推薦使用git下載和更新,在碼雲搜尋geekneo即可。
0x01.TB編輯器Run命令詳解前置宣告,下文中TBROOT指本產品的根目錄,TB指Textobot。
前兩篇文章《iPhone手機環境部署及核心元件簡介》、《VSCode環境部署並執行第一個TB外掛》我們已經完成了iPhone手機與VSCode的環境部署,並且也配置好了目標手機的IPv4地址。現在,我們就具備了開發Python或者JavaScript程式碼併發送到手機執行的基礎條件。TB編輯器匯出的Textobot Editor - Run命令就是幫助我們通過HTTP協議連線iPhone端Textobot後臺服務的。執行這個命令的時候當前開啟的文件必須以.py或者.js結尾的檔案,否則將會報如下的錯誤:
另外,由於執行指令碼程式碼與HTTP協議是非同步進行的,所以如果我們想要檢視指令碼輸出的日誌內容,我們需要手動執行Textobot Editor - Log命令獲取遠端日誌檔案內容,如下:
小技巧:VSCode會記住當前頻繁使用的外掛命令,所以我們記住Command Palette的快捷鍵再配合上下鍵就可以高效率的操作TB編輯器的命令。
0x02.系統級Hello World我們在VSCode中新建一個檔案並另存為test.py,並輸入如下程式碼:
print('hello world')然後執行Run命令(macOS快捷鍵Command+R、Windows快捷鍵CTRL+R),然後執行Log命令,我們就成功以root使用者在系統級別執行了上述Python程式碼,結果如下:
這其實就和我們在桌面寫Python程式碼一模一樣了,我們不需要有任何iOS、Xcode等方面的前置知識,只需要按照一個通用Unix系統一樣寫Python程式碼就可以實現在iPhone手機上執行我們的指令碼程式碼。
0x03.TB系統級API為了方便我們開發外掛,Textobot匯出/集成了一些實用API,在此我們簡單羅列一下,後面開發例子外掛時再詳細介紹。如果現在就想了解這些API的功能,可以檢視TBROOT/Doc/textobot.md。
0x04.程序級Hello World程序級程式碼執行依託於Frida,如果要寫出有意義的JavaScript指令碼程式碼,需要有iOS SDK的開發經驗。不過當前我們只是輸出Hello World,也是很簡單的。用VSCode新建一個檔案並另存為test.js,輸入如下程式碼:
console.log('hello world');如果上述程式碼我們想在系統設定App裡面執行,那麼我們需要配置Target為設定App的名字或者BundleID,如下:
設定com.apple.Preferences然後Command+R或者CTRL+R執行上述程式碼,然後執行Log命令我們就可以得到如下的輸出:
0x05.TB程序級APITB程序級API主要是擴充套件Frida執行時,方便我們開發實用的外掛。當前程序API是以C介面的形式匯出的,這在使用時需要用Frida API轉換一下,這在TBROOT/Template模版外掛中已經實現了一部分,後面我們通過例子外掛詳細介紹,現在可以移步TBROOT/Doc/textobot.md檢視功能說明:
0x06.開發模式
我們通過Run命令執行程式碼的模式稱之為開發模式,這樣不需要頻繁打包、安裝外掛,提高開發效率。執行過Run命令也會啟用手機端Textobot後臺服務的開發模式,這樣會全域性性的收到各類App的UI事件,而不需要指定Target。這種Hotcode模式和目前Google主推的Flutter+Dart的模式很像,都是即寫即執行,大大提高開發效率。看到這裡,我想朋友們應該能理解《換個輕鬆高效的方式開發iOS越獄外掛》這篇文章想要表達的“效率”的意義了。
0x07.外掛模式我們通過Textobot Editor - Install命令安裝之後再執行的模式稱之為外掛模式,這是我們開發完了一個外掛交付給別人使用或者需要脫離VSCode執行程式碼時使用的模式。它遵循Textobot定義好的生命週期:
0x08.下篇再見到此,我們就完整地介紹了Textobot環境搭建以及程式碼編寫的所有內容。從下一篇開始,我們將由簡至繁開發一些例子外掛,然後在這個過程中把TB匯出的API以及開發/除錯技巧分享給大家,希望對朋友們有幫助。
0x09.定製服務我們團隊雖小,但個個都是一頂三的技術精英,因此技術能力是嚴重過剩的。所以如果您有任何關於iOS/Android底層的疑難雜症、雲遊模擬器掛機/二次開發、曉文/FIT外掛定製等方面的個性化需求,歡迎通過私信聯絡我們。
我的自媒體賬號將圍繞PantaEmu、Textobot、Fridobot、LidaDbg為使用者朋友們傳道、授業、解惑。歡迎各位朋友關注、點贊、轉發,謝謝大家。