微信運動是否存在作弊刷步數的可能?
動手指關注下我哦!隨著帶協處理器和買手環的人越來越多,微信運動一下子火了,只要你在微信關注微信運動,手機就能自動記錄你每天行走的步數,還可以跟朋友圈里的好友PK運動量。并且每日排名第一的用戶可以占據當日排行榜的封面。這充分激起了大家的求勝的欲望,于是出現了很多勵志的和悲傷的故事……
1微信運動作弊大法
其實想要拿第一沒有那么麻煩,只要會一點Android的Hook知識,就可以輕松沖到排行榜第一名。接下來我就手把手教你如何變成第一。
首先我們需要一臺帶協處理的root后的android機器,比如說nexus 5。然后我們裝上作弊用的XPosed Hook框架和作弊插件。這兩個apk可以在我的github上下載到。
https://github.com/zhengmin1989/WechatSportCheat
下載完后,先安裝。接著打開Xposed,選擇“”,然后根據提示重啟手機。
重啟完后,再安裝插件。然后打開Xposed的模塊界面,會看到xposedwechat這個插件。我們在這里將它選中,然后再根據提示重啟手機。
接下來就是見證奇跡的時刻…你隨意走兩步,然后打開微信運動,咦,怎么就多了1000步?再隨便走幾步,咦,怎么又多了1000步?… demo視頻如下:
僅僅刷步數還是不夠過癮吧?微信運動還推出了益行家活動,可以用每天的步數換取愛心捐款。有了微信運動作弊大法,我們可以每天在家隨便走幾步然后換取愛心捐款(如圖所示)。
2 微信運動作弊原理
我們是如何作弊的呢?簡單來說,當微信運動想要知道我們走了多少步的時候,微信app會詢問android系統的計數傳感器,隨后計數傳感器會返回我們行走的步數。因此,如果我們能夠攔截微信運動和計數傳感器之間的對話,然后偽造一個步數傳遞給微信運動就可以達到我們想要的作弊效果。
具體怎么做呢?首先我們可以用Xposed框架來hook計數傳感器的隊列函數,這個函數在這個類中。隨后在微信運動每次詢問行走步數的時候,我們先獲取當前步數,然后在目前的步數的基礎上加1000步,然后將信息返回給微信運動。微信運動就會誤以為我們運動了1000步,從而達到了欺騙的效果。
關鍵代碼如下:
首先這個類的函數:
final Class<?> sensorEL = findClass("android.hardware.SystemSensorManager$SensorEventQueue",lpparam.classLoader); XposedBridge.hookAllMethods(sensorEL, "dispatchSensorEvent", new XC_MethodHook()
接著我們在記步傳感器把步數信息返回給微信運動之前,將返回的步數加上1000步:
protected void beforeHookedMethod(MethodHookParam param) throws Throwable { XposedBridge.log(" mzheng Hooked method: " + param.method); ((float[]) param.args[1])[0]=((float[]) param.args[1])[0]+1000*WechatStepCount; WechatStepCount+=1; …
另外我們還可以使用一些傳感器的接口獲取一些數據的信息:
Sensor ss = ((SparseArray<Sensor>) field.get(0)).get(handle); XposedBridge.log(" SensorEvent: sensor=" + ss);
比如說x就代表開機以來行走的步數,timestamp是獲取步數時候的時間戳等。
另外,我們不僅在android上可以hook計步器,在iOS上也是可以通過越獄后hook iHealth的API接口達到同樣的作弊效果,有興趣的同學可以繼續研究。
3微信運動反作弊建議
如何防止這種作弊發生呢?我的第一個建議是加強服務器端的邏輯檢測功能。比如說一個人是不可能十分鐘內走一萬步的,如果他做到了,那么他一定是在作弊。 我的第二個建議是增加對hook的檢測功能。雖然微信運動作下弊無非就是滿足一下大家爭強好勝的虛榮心,并不會對大家的隱私和財產產生損失。但是既然微信運動可以被hook,同樣也意味著語音聊天,微信支付等功能也是可以被hook的,當黑客利用hook技術對你的隱私和財產產生危害的時候可就不是那么好玩的事了。之前我們在Hacking Team事件中也親眼目睹了利用hook技術來獲取微信語音消息的android木馬,所以一定要增加針對hook的檢測才行。
4 總結
此文只是介紹了Android Hook的簡單場景應用,關于Android Hook的原理以及更多的利用方式,比如說調試,關鍵API攔截,外掛等技巧,敬請期待WooYun Book系列的文章《安卓動態調試七種武器之離別鉤 - Hooking》。 https://github.com/zhengmin1989/TheSevenWeapons
5.參考文章
Android.Hook框架xposed篇(Http流量監控)
人手一份核武器 - Hacking Team 泄露(開源)資料導覽手冊
http://drops.wooyun.org/tips/7488
http://drops.wooyun.org/news/6977