手把手教你刷微信运动步数,抢占微信运动第一名

 

利用Android Hook进行微信运动作弊

跟着带协处理器和买手环的人越来越多,微信运动一会儿火了,只需你在微信重视微信运动,手机就能自动记录你每天行走的步数,还可以跟朋友圈里的老友PK运动量。并且每日排名第一的用户可以占有当日排行榜的封面。这充沛激起了我们的求胜的希望,所以出现了许多勉励的和哀痛的故事……


IMG_3410_副本.png

0x01微信运动做弊大法


其实想要拿第一没有那么费事,只需会一点Android的Hook常识,就可以轻松冲到排行榜第一名。接下来我就手把手教你怎样变成第一。

首要我们需求一台带协处理的root后的android机器,比如说nexus 5。然后我们装上做弊用的XPosed Hook结构和做弊插件。这两个apk可以在我的github上下载到。

https://github.com/zhengmin1989/WechatSportCheat

下载完后,先设备XPosed.apk。接着翻开Xposed,选择“设备/更新”,然后根据提示重启手机。

重启完后,再设备xposedwechat.apk插件。然后翻开Xposed的模块界面,会看到xposedwechat这个插件。我们在这里将它选中,然后再根据提示重启手机。


接下来就是见证奇观的时间…你随意走两步,然后翻开微信运动,咦,怎样就多了1000步?再随意走几步,咦,怎样又多了1000步?… demo视频如下:


只是刷步数仍是不够过瘾吧?微信运动还推出了益行家活动,可以用每天的步数交流爱心捐款。有了微信运动做弊大法,我们可以每天在家随意走几步然后交流爱心捐款(如图所示)。



0x02 微信运动做弊原理


我们是怎样做弊的呢?简略来说,当微信运动想要知道我们走了多少步的时分,微信app会问询android系统的计数传感器,随后计数传感器会回来我们行走的步数。因而,如果我们可以阻挠微信运动和计数传感器之间的对话,然后编造一个步数传递给微信运动就可以抵达我们想要的做弊效果。

具体怎样做呢?首要我们可以用Xposed结构来hook计数传感器的队伍函数dispatchSensorEvent(),这个函数在 android.hardware.SystemSensorManager$SensorEventQueue这个类中。随后在微信运动每次问询行走步数的时分,我们先获取当前步数,然后在现在的步数的基础上加1000步,然后将信息回来给微信运动。微信运动就会误以为我们运动了1000步,然后抵达了诈骗的效果。

要害代码如下:

首要hook android.hardware.SystemSensorManager$SensorEventQueue这个类的dispatchSensorEvent()函数:

1
2
final Class sensorEL = findClass("android.hardware.SystemSensorManager$SensorEventQueue",lpparam.classLoader);
XposedBridge.hookAllMethods(sensorEL, "dispatchSensorEvent", new XC_MethodHook()

接着我们在记步传感器把步数信息回来给微信运动之前,将回来的步数加上1000步:

1
2
3
4
5
6
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;

其他我们还可以运用一些传感器的接口获取一些数据的信息:

1
2
3
Sensor ss = ((SparseArray) field.get(0)).get(handle);                            
XposedBridge.log("   SensorEvent: sensor=" + ss);
enter image description here

enter image description here

比如说x就代表开机以来行走的步数,timestamp是获取步数时分的时间戳等。

其他,我们不仅在android上可以hook计步器,在iOS上也是可以通过越狱后hook iHealth的API接口抵达相同的做弊效果,有兴趣的同学可以继续研讨。




0x03微信运动反做弊建议


怎样避免这种做弊发作呢?我的第一个建议是加强服务器端的逻辑检测功用。比如说一个人是不可能十分钟内走一万步的,如果他做到了,那么他一定是在做弊。 我的第二个建议是增加对hook的检测功用。虽然微信运动作下弊无非就是满意一下我们争强好胜的虚荣心,并不会对我们的隐私和工业发作丢掉。但是已然微信运动可以被hook,相同也意味着语音谈天,微信支付等功用也是可以被hook的,当黑客运用hook技能对你的隐私和工业发作危害的时分可就不是那么好玩的事了。之前我们在Hacking Team工作中也亲眼目睹了运用hook技能来获取微信语音消息的android木马,所以一定要增加针对hook的检测才行。


0x04 总结


此文只是介绍了Android Hook的简略场景运用,关于Android Hook的原理以及更多的运用方法,比如说调试,要害API阻挠,外挂等技巧,敬请期待WooYun Book系列的文章《安卓动态调试七种武器之离别钩 - Hooking》。