修改 iOS微信運動的數據 很簡單,這裏記錄下實現步驟。git
首先要安裝Theos,具體安裝步驟就不說了。網上不少。github
大致安裝步驟:spring
sudo brew install dpkg sudo brew install ldid git clone --recursive https://github.com/theos/theos.git sudo chown $(id -u):$(id -g) theos
1、能夠用ssh,也能夠用usbmuxd。由於咱們公司的網絡還要用戶名密碼,麻煩,因此就用了usb的模式。xcode
先執行命令:微信
brew install usbmuxd
來安裝usbmuxd。網絡
而後執行app
iproxy 2223 22
,這樣就能夠將iphone上的端口號映射到電腦上的2223端口。ssh
後面在Makefile文件中 咱們會配置相關的ip和端口。iphone
後面的命令行都要新建一個終端 進行操做。ui
2、新建一個文件夾,咱們命名爲WeChatSportWeak,cd到該目錄,執行命令:
export THEOS=/opt/theos $THEOS/bin/nic.pl
模板選擇11:
Choose a Template (required): 11
MobileSubstrate Bundle filter輸入com.tencent.xin,以下:
MobileSubstrate Bundle filter [com.apple.springboard]: com.tencent.xin
截圖以下:
3、由於我用的是iphone6P,xcode9.2。因此修改目錄中的Makefile文件以下:
ARCHS = arm64 export SDKVERSION=11.2 export THEOS_DEVICE_IP=localhost export THEOS_DEVICE_PORT=2223 TARGET = iphone:latest:8.0 include $(THEOS)/makefiles/common.mk TWEAK_NAME = WeChatTweak WeChatTweak_FILES = Tweak.xm include $(THEOS_MAKE_PATH)/tweak.mk after-install:: install.exec "killall -9 SpringBoard"
修改Tweak.xm爲:
%hook WCDeviceStepObject - (unsigned int)m7StepCount { return 69999; } %end
4、而後cd到子目錄wechatsportweak中,
執行 make,再執行make package,最後執行make install。截圖以下:
5、打開微信,點擊查看微信運動,就發現步數變成了69999。第一名。微信不能和iPhone的健康關聯,不然失效。
效果以下:
6、實現原理
咱們怎麼知道要hook的類是WCDeviceStepObject類的m7StepCount方法。
從pp助手 或其餘平臺上下載 的微信是一級破殼的,能夠直接用class-dump解析出微信的全部.h文件。
class-dump的安裝很簡單,從 http://stevenygard.com/projects/class-dump/ 中下載,把下載的 class-dump.dmg文件拷貝到/usr/local/bin目錄中。
而後在命令行中修改權限:
sudo chmod 777 /usr/local/bin/class-dump
命令格式:class-dump -H [.app文件的路徑] -o [輸出文件夾路徑]
我本地的是:
class-dump -H /Users/jichanghe/Desktop/微信/Payload/WeChat.app -o /Users/jichanghe/Desktop/WeChatHeads
這樣就能夠解析出全部的.h文件。如圖:
找到WCDeviceStepObject文件。stepCount單詞的意思就是 步數,有兩個變量m7StepCount,hkStepCount。而後用上面的Theos試試 發現m7StepCount這個變量是能夠的。因此纔有了上面的hook代碼。
上面的代碼,微信.h文件都放到了 github裏:https://github.com/bugaoshuni/WeChatSportTweak