Theos
首先要感謝作者DHowett,還有后期維護(hù)的一大波高手
之前在iOS逆向之旅(進(jìn)階篇) — HOOK(Logos)的Logos就是Theos其中的一個(gè)組件快耿。
theos主要是用來寫越獄插件,之前我們注入代碼都需要對ipa包座菠,砸殼-注入代碼-重簽名-重裝洲敢,現(xiàn)在有了插件我們就只不需要那么麻煩了,直接安裝插件即可【前提在越獄環(huán)境下】敌土。
Theos的安裝
官方文檔,我也是照著文檔來运翼,高手請忽略
- 安裝包管理工具Homebrew
- 安裝ldid【這個(gè)是類似codesign的簽名工具】
- 配置環(huán)境變量 THEOS
echo "export THEOS=~/theos" >> ~/.profile
備注:~/theos 是安裝路徑返干,寫到~/.profile后最好source一下,最好再echo $THEOS 一下看看配好了沒血淌。已經(jīng)很啰嗦了矩欠,高手請忽略
- clone一下
git clone --recursive https://github.com/theos/theos.git $THEOS
必須Clone,別直接download悠夯,里面涉及不少依賴
- 最后把Theos的bin目錄寫到PATH里面癌淮,我們需要用里面的nic.pl
搗鼓一個(gè)插件
- 第一步創(chuàng)建一個(gè)tweak項(xiàng)目
注:[iphone/tweak] MobileSubstrate Bundle filter [com.apple.springboard]: com.tencent.xin
這里是填入的是,你最終想把代碼注入到哪一個(gè)項(xiàng)目的BundleID
- 修改新建項(xiàng)目下的Makefile,填上手機(jī)的IP地址和端口【這里用的是USB連接沦补,不懂可以參考iOS逆向之旅(越獄篇) — SSH】
- 第三步直接 make package 編譯成deb包
如果你使用的是Xcode10會出現(xiàn)以下問題
原因是:Apple在Xcode10中徹底拋棄了GNU的C++標(biāo)準(zhǔn)庫乳蓄,實(shí)現(xiàn)libstdc++切換到LLVM的libc++上
解決辦法是修改Makefile文件,如下:
- 編譯結(jié)果如下
- 最后通過
make install
就可以把插件裝到手機(jī)上了
- 如果你還遇到其他坑策彤,請看最后一個(gè)小標(biāo)題
搞個(gè)小案例
- 我再Tweak.xm下寫了點(diǎn)hook代碼,hook登錄按鈕【怎么分析哪個(gè)控制器栓袖,哪個(gè)方法我之前說過了匣摘,我現(xiàn)在就不贅述了】
- 結(jié)果:每次點(diǎn)擊按鈕的時(shí)候店诗,就會打印222
- 盜號的原理也就是獲取密碼輸入框的文本,然后調(diào)用通過http請求把你的賬戶密碼給暴露出去
編譯過程出現(xiàn)的各種坑音榜,我這里小小的總結(jié)一下
- 不要在中文目錄下編譯工程.否則報(bào)錯(cuò)
- packageName(包名稱),全部小寫!!!
- Error: IO::Compress::lzma 沒有l(wèi)zma這個(gè)壓縮軟件庞瘸,需要下載lzma(或者修改配置使用gzip)
- Error: You do Not an SDK: 需要指定Xcode ,需要安裝一下MonkeyDev