最近在學習 iOS 逆向開發的時候,為了練手,開發了一個 iOS 版的微信搶紅包 tweak,并且已經釋出到了 Github 上面。
微信搶紅包 Tweak 的 Github 位址 點選打開連結
但是,很多小夥伴表示不會安裝,特此寫了這篇iOS tweak 安裝教程。
說明:本篇文章隻是為了說明如何在 iOS 當中安裝 tweak,并不會涉及完整的逆向環境的搭建,也不會涉及到 tweak 的開發。如果對這方面有興趣的童鞋可以參考iOS應用逆向工程這本書。
何謂 tweak
tweak 在維基百科上的定義是:對複雜的系統——通常是電子裝置——進行微調或修改來增強其功能。
而在 iOS 當中,tweak 是指那些能夠增強其它程序功能的 dylib。
可以将 tweak 了解為就是一個外挂,隻不過這個外挂是以動态連結庫的方式注入到目标應用當中。我們已經很了解外挂就是用來作一些原本的應用無法做到的事情,當然搶紅包也屬于這樣的事。
如何安裝 tweak
上面已經講過,本篇文章不會涉及到 tweak 的開發,是以我們直接進入安裝的主題。
對裝置進行越獄
對裝置進行越獄是安裝 tweak 的首要前提,如果沒有越獄裝置,并且你不想對自己的裝置進行越獄,那麼也可以不用繼續往下看了。
衆所周知,蘋果的權限管理是很嚴格的,在沒有越獄的情況下,我們能對裝置進行的操控其實是很有限的。而越獄之後我們就可以獲得root權限,即最高權限。
現在國内最知名的越獄團隊就是盤古與太極了,他們都提供了 windows 版與 mac 版的越獄軟體,可以進行一鍵越獄。
需要注意的是,這兩家目前支援越獄的最新版本是 9.0.2。是以,如果你的裝置已經更新到 9.2 了,你可能需要重新找一台比較低版本的裝置。
使用工具進行越獄其實很簡單,在此也就不贅述了。
CydiaSubstrate
越獄完的裝置上面都會多出一個 App,即 Cydia。
Cydia 可以了解為越獄界的 App Store。隻不過 App Store 上面的都是經過蘋果稽核過的應用。而 Cydia 上面的各式各樣的 App,tweak都或多或少使用到蘋果在 App Store 稽核中禁用的功能特性,比如私有方法。
CydiaSubstrate 是 Cydia 的作者的另一個作品,它的主要功能就是對 App 進行 hook,替換 App 中代碼的實作,它是絕大部分 tweak 正常工作的基礎,Cydia 上的 tweak 都是基于 CydiaSubstrate 的。
一般情況下,越獄完之後就已經安裝了 CydiaSubstrate 了,如果你想看到軟體包的詳細資訊,可以直接在 Cydia 當中搜尋 Cydia Substrate。
安裝 OpenSSH
OpenSSH 會在 iOS 上安裝 SSH 服務,以供外界可以遠端登入到 iOS 系統當中。
安裝 OpenSSH 也很簡單,同樣在 Cydia 當中搜尋 OpenSSH,然後進行安裝就行了。
iOS 上的 OpenSSH 的預設使用者有 root 和 mobile,預設密碼都為 alpine。在這裡強烈建議大家對預設密碼進行修改,如果沒有修改,很多病毒就可以輕易地通過 ssh 以 root 身份遠端登入到 iOS 當中,這後果可是非常嚴重的。
修改密碼的步驟:
1. 確定你的電腦跟你的 iOS 裝置在同一個區域網路當中
2. 擷取 iOS 裝置的 IP:裝置 -> 無線區域網路 -> 檢視目前連接配接的 WIFI 的詳細資訊,就可以看到裝置的 IP
3. 在 Mac 上打開終端,執行指令
ssh [email protected]
,将 DeveiceIP 替換成你的裝置 IP
4. 輸入密碼進行登入,注意密碼是不會回顯的,也就是不會顯示普通的密碼星号,隻要繼續輸入就行了,輸入完後按回車
5. 登入後,修改root使用者密碼,執行指令
passwd root
,根據提示輸入新密碼
6. 再修改mobile使用者密碼,執行
passwd mobile
,根據提示輸入新密碼
至此,iOS 裝置上的環境就配置好了。
安裝 Theos
Theos 是一個越獄開發工具包,它可以生成 iOS 越獄APP以及tweak等程式的架構,并提供makefile來編譯、打包和安裝。
安裝 Xcode 和 Command Line Tools
會來看這篇教程的,我預設大家都是 iOS 開發者了,是以應該都已經安裝了Xcode了,Xcode 就已經附帶了 Command Line Tools。
從 Github 下載下傳 Theos
打開指令行,進行如下操作:
|
配置ldid
ldid是用于對 iOS 可執行文具進行簽名的工具,可以在越獄 iOS 中替換 Xcode 自帶的簽名工具。
從 http://joedj.net/ldid 下載下傳,将其移動到
/opt/theos/bin
目錄下,然後設定可執行權限。
|
配置CydiaSubstrate
運作 Theos 自動化配置腳本:
|
注:最新版的 theos 裡面已經沒有這個腳本了,可以跳過執行腳本這一步
接下來要做的就是從 iOS 上已經安裝的 Cydia Substrate 上複制 cydiaSubstrate 檔案到 theos 上。
要想在 Mac 上通路 iOS 裝置的檔案目錄,新手可以直接使用 iFunBox,或者如果你覺得不屑使用圖形化工具,也可以直接使用
scp
指令來進行拷貝。
需要拷貝的檔案位于 iOS 上的 “/Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate”,将其拷貝到 OSX 上,然後重命名為 libsubstrate.dylib 後放到 “/opt/theos/libsubstrate.dylib” 中。
配置 dpkg-deb
deb 是越獄開發安裝包的标準格式,而 dpkg-deb 是操作 deb 檔案的工具,有了這個工具,Theos 才能将工程正确地打包成 deb 包。
從 https://raw.githubusercontent.com/DHowett/dm.pl/master/dm.pl下載下傳dm.pl,将其重命名為 dpkg-deb 後,放到 “/opt/theos/bin/“ 目錄下,然後設定它的可執行權限:
|
其實,Theos 已經是一個 tweak 的開發環境了,但是由于這裡隻是因為需要編譯 tweak 而用到它,是以它的很多後續配置也沒有詳細講解了。
至此,我們的安裝環境就搭建完了,下一步可以正式地開始安裝 tweak 了。
正式安裝 tweak
根據上面的内容,我們大概知道了,如果要安裝一個别人的 tweak,最簡單的方法就是直接到 Cydia 上面進行下載下傳并自動安裝,但是前提就是你想要安裝的這個 tweak 的作者已經将這個 tweak 送出到 cydia 源當中了。
那你可能會問,那我為什麼不直接送出到 Cydia 呢,多友善,多簡單,反而還要繞這麼一大圈,然後特地又寫一篇部落格來說明怎麼從源碼進行安裝,是不是太久沒裝逼憋壞了?我的回答是:因為我還不會送出,哈哈哈。當然那隻是其中一部分原因,主要還是因為我做這個插件原來也是出于練手學習的目的,後來有很多小夥伴都跟我要,我才放到 Github 上的。而且,這種作弊式的插件有點破壞遊戲平衡了,原本搶紅包也都是圖個歡樂,如果作弊了就破壞了這種氣氛(道貌岸然狀)。
是以,經過我“苦口婆心”的勸說,你還是想安裝的話,就到我的Github去下載下傳吧(如果覺得好用,就點個星鼓勵一下吧)。
将倉庫拉取下來後,可以看到主目錄裡有一個
Tweak.xm
檔案,主要的代碼就寫在這個檔案中,其實裡面的代碼也就幾行,做 tweak 的主要精力還是花在找你的目标方法上,真正寫代碼其實不會太多。當然,你如果隻是單純想安裝的話,這個檔案就跟你無關了。
主要修改的是
Makefile
檔案,使用編輯器打開Makefile檔案,可以看到頭兩行是這樣的:
|
将 localhost 替換成你的 iOS 裝置的 IP,IP的擷取方法在上面已經提過了。然後将端口 2222 替換成 22。
修改并儲存後就可以進行安裝了。
在 Mac 下打開終端指令行,并切換到這個倉庫的目錄,首先確定你的 iOS 裝置上的微信是在運作中的,然後執行如下的指令:
|
之後,根據提示,輸入兩次密碼(這個密碼就是你剛剛修改過的密碼),然後安裝就完成了。
就是這麼簡單。
總結
洋洋灑灑寫了這麼多,其實真正的步驟是很簡單的,隻是我比較啰嗦,想把每個步驟都盡量講得詳細一點。
如果還有不清楚的地方,可以直接留言提問,或者直接到我的Github上提issue。
當然,我也是新手,剛開始學習逆向,可能有些地方了解不準确或有錯誤,歡迎批評指證。
再多啰嗦一句,這裡講的都是很淺很淺的東西,可以說跟逆向隻能搭上一丢丢的邊,如果你對逆向特别有興趣的話,強烈推薦去看下這本書iOS應用逆向工程。
