Xposed________给微信步数加上翅膀
严重声明本文的意图只有一个就是通过分析app学习更多的逆向技术,如果有人利用本文知识和技术进行非法操作进行牟利,带来的任何法律责任都将由操作者本人承担,和本文作者无任何关系,最终还是希望大家能够秉着学习的心态阅读此文。
你如果零基础请先看入门篇Xposed________给微信挂逼扫扫盲 我们先看看效果图:
排行榜的样子:
步数如果高会有什么好处?除了装逼,排名第一广告营销,好像也没别的了。
下面正文开始
微信如果要获取用户的步数,会采用以下几种方式:
1、通过Android自带的传感器(Sensor)
2、通过外接的各种硬件设备
3、通过其他的App共享步数
4、通过公众号调用微信Api发送步数
咱们现在通过第一种hook传感器返回值的方式来实现步数修改:
先看一下Sensor能做什么
重力感应/加速度传感器 (G-Sensor)
光感应 (Light-Sensor)
温度感应
方向感应
磁场、
临近性
等等.....总之,越高端的手机涵盖的传感器越多
这个东西在哪个类里面呢?
android.hardware.SystemSensorManager$SensorEventQueue
哪个方法呢?
dispatchSensorEvent
其中最重要的:
public static final int TYPE_STEP_DETECTOR = 18; (系统计步累加值)
public static final int TYPE_STEP_COUNTER = 19; (单次有效计步)
知道了这些,那么咱们要做的事情已经明确了,就是要对这个东西的返回值进行操作!(我这里是同时修改的QQ及微信,其他的应用同理)
这是将已经走过的步数*100倍后提交给微信
@Jione 大神的教程很好,经过一晚上痛苦的挣扎,终于把环境搭建起来了,我的第一个Xposed也是第一个Android程序跑了起来,感谢大神!好人一生平安! ss0001 发表于 2017-12-19 17:41
把你的git贴出来,我帮你看看
package com.my.alisport;
/**
* Created by GZP on 2017/7/26.
*/
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.util.SparseArray;
import java.lang.reflect.Field;
import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.XposedBridge;
import de.robv.android.xposed.callbacks.XC_LoadPackage;
import static de.robv.android.xposed.XposedBridge.log;
import static de.robv.android.xposed.XposedHelpers.findClass;
/**
* Created by Administrator on 2016/5/11.
*/
public class WeixinSport implements IXposedHookLoadPackage {
@Override
public void handleLoadPackage(final XC_LoadPackage.LoadPackageParam loadPackageParam) throws Throwable {
// filter
if (!loadPackageParam.packageName.equals("com.tencent.mm")) {
return;
}
log("运动 packageName: " + loadPackageParam.packageName);
final Class<?> sensorEL = findClass("android.hardware.SystemSensorManager$SensorEventQueue", loadPackageParam.classLoader);
XposedBridge.hookAllMethods(sensorEL, "dispatchSensorEvent", new XC_MethodHook() {
@Override
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
int intValue = ((Integer) param.args).intValue();
log("intValue: " + intValue);
Field declaredField = param.thisObject.getClass().getDeclaredField("mSensorsEvents");
declaredField.setAccessible(true);
Sensor sensor = ((SensorEvent) ((SparseArray) declaredField.get(param.thisObject)).get(intValue)).sensor;
if (sensor == null) {
log("传感器为NULL");
return;
}
int sensortype = sensor.getType();
log("sensortype: " + sensortype);
if (sensortype == 19 || sensortype == 18) {
float nowstep = ((float[]) param.args);
((float[]) param.args) = nowstep + 30;
}
}
});
}
}
跟你的没啥区别算是一致
xposed_init 文件 :com.my.alisport.WeixinSport zhujf 发表于 2017-12-19 08:46
现在刷步数的应用挺多的,大多都是一样的原理,但是很容易被封号,楼主可否研究研究怎么避免刷了步数后封号 ...
1、缓慢增加,0.5倍或者0.2倍
2、不开,这个功能实际上除了能够领到红包再无他用
哇偶!!!!!这么高? 哇哦,有没有iOS加个翅膀的 A丶小絮 发表于 2017-12-19 00:17
哇哦,有没有iOS加个翅膀的
大佬,没肾了,买不起啊。。。 ss0001 发表于 2017-12-19 00:18
大佬,没肾了,买不起啊。。。
哇的一下哭了,刚卖了肾,求个翅膀 没有软件么 NOOB 发表于 2017-12-19 00:33
没有软件么
提供思路就行,另外Xposed能装上的都不是一般人 ss0001 发表于 2017-12-19 00:35
提供思路就行,另外Xposed能装上的都不是一般人
小白一个,会用不会写{:1_926:} NOOB 发表于 2017-12-19 00:36
小白一个,会用不会写
我一直想做重新打包版微信,但是小白不会。。 ss0001 发表于 2017-12-19 00:37
我一直想做重新打包版微信,但是小白不会。。
那样应该容易封号吧