不越獄 繼續(xù)逆向 微信運(yùn)動

接下來還是在 非越獄 環(huán)境中進(jìn)行。

手動修改微信步數(shù)

上篇文章中討論了如何使用Hopper 來修改二級制文件實現(xiàn)逆向,雖然修改過程很簡單,但是由于只能針對于匯編語言進(jìn)行修改,所以還是有很大的局限性,如果能直接用源語言(Objective-c)來進(jìn)行修改,那就能為所欲為了。
所以這就是接下來要干的:

安裝 iOSOpenDev

提到越獄開發(fā),你可能知道Theos,它很大程度上簡化了越獄開發(fā),而 iOSOpenDev 提供了一系列關(guān)于越獄開發(fā)的模板,結(jié)合Theos可以讓開發(fā)Tweak跟開發(fā)普通應(yīng)用一樣簡單。

iOSOpenDev

由于作者很長時間已經(jīng)沒有更新iOSOpenDev,而Xcode版本在不停的變更,所以在新版本Xcode的安裝的過程中會遇到一些坑。
下面總結(jié)一些填坑的技巧:

  1. 首先,安裝失敗后 可以 通過 Commond + L 查看安裝錯誤信息,然后Google。
  2. 新版本的Xcode 更新后一些文件目錄的調(diào)整,導(dǎo)致iOSOpenDev 找不到。具體目錄結(jié)構(gòu)的調(diào)整,可參考 這篇文章。
  3. 在Xcode7.3 的iOS 9.3 的SDK 中蘋果去除了 PrivateFrameworks,我們可以通過下載9.2 SDK 中的去替代。下載
    SDK位置:
    /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library
  4. 將所有需要的文件位置調(diào)整好后,再重新安裝dmg。

開始Hook

在安裝好確定沒問題后,我們通過iOSOpenDev創(chuàng)建一個CaptainHook Tweak,是因為我們是在非越獄環(huán)境開發(fā),并且這個模板無需TheOS的支持。CaptainHook 是使用的Runtime 機(jī)制實現(xiàn),利用宏命令封裝類定義、方法替換等功能。

創(chuàng)建完成修改xxxxxx.mm文件,可以通過 Hook 獲取微信運(yùn)動步數(shù)的方法,修改成想要的步數(shù)。

CHDeclareClass(WCDeviceStepObject)

//宏格式:參數(shù)的個數(shù),返回值的類型,類的名稱,selector的名稱,selector的類型,selector對應(yīng)的參數(shù)的變量名。
CHMethod(0, unsigned int, WCDeviceStepObject, m7StepCount) {
    // 修改步數(shù)
    return 66666;
}

__attribute__((constructor)) static void entry() {
    // 在構(gòu)造方法中替換方法
    CHLoadLateClass(WCDeviceStepObject);
    CHClassHook(0, WCDeviceStepObject,m7StepCount);
}

這里把步數(shù)寫死了,然后每天都是一個步數(shù),假的連自己都不相信,如果能夠自由修改步數(shù),成自然狀態(tài)增長,那將可以裝逼于無形。
接下來將通過給自己發(fā)送消息的形式修改微信運(yùn)動的步數(shù):


修改步數(shù)

下面就不貼代碼了,實現(xiàn)原理類似,可以去Github下載
https://github.com/dimsky/runaway

寫完Hook 直接編譯不出錯的情況下就能夠拿到編譯之后的dylib文件了。

dylib

注入dylib

寫完dylib 我們需要將它注入原來的微信中,這樣才能是你的Hook有作用。
yololib 可以將dylib 注入進(jìn)WeChat 二進(jìn)制文件中,下載之后編譯得到y(tǒng)ololib 然后通過命令注入:

./yololib WeChat xxxx.dylib

再把WeChat 二進(jìn)制文件和xxxx.dylib 拷貝到WeChat.app 中替換原有文件。

簽名、打包

具體詳情可結(jié)合上篇文章

重新簽名

codesign -f -s "iPhone Developer: Tian Xiao (XXXXXXX)" WeChat.app/WechatTweakHook.dylib 
codesign -f -s "iPhone Developer: Tian Xiao (XXXXXXX)" WeChat.app/Watch/WeChatWatchNative.app/PlugIns/WeChatWatchNativeExtension.appex 
codesign -f -s "iPhone Developer: Tian Xiao (XXXXXXX)" WeChat.app/Watch/WeChatWatchNative.app 
codesign -f -s "iPhone Developer: Tian Xiao (XXXXXXX)" WeChat.app/PlugIns/WeChatShareExtensionNew.appex 
codesign -f -s "iPhone Developer: Tian Xiao (XXXXXXX)" --entitlements Entitlements.plist WeChat.app

打包

xcrun -sdk iphoneos PackageApplication -v WeChat.app  -o ~/WeChat.ipa

安裝

使用PP助手或者Itunes即可完成安裝。

注:

本文僅供學(xué)習(xí)交流,請勿用于商業(yè)用途。

參考: iOS冰與火之歌番外篇

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容