首页
论坛
课程
招聘
雪    币: 455
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:30 )
在线值:
发帖
回帖
粉丝

与你红包秒抢透视下

2019-6-8 18:55 5550

与你红包秒抢透视下

2019-6-8 18:55
5550

继续上次的解说

本帖只作为技术分享,如果用于其他用途,或者触犯了什么底线。本帖不负责。审核不通过立刻删除本帖。

与你APP软件本身是360壳。有能力脱壳修复的自行脱壳修复。找我当然也可以给脱壳好的软件.

好了废话这么多,开始教程。

举起我们的Xposed开搞。


先反射他的聊天布局over(红包是通过聊天布局获取的,目前所以只能抢进入聊天布局的红包。可能用其他方式也能实现,但是我懒- -)


HOOKonSetMessage方法


得到message对象


执行getBody()获取RedPackBody对象


setMone()设置金额(固定为0)


执行getStatus(这个方法是获取红包的状态抢完了还是没抢完)


写个if判断就知道这个红包有没有抢啦


1.获取红包的管理类

2.得到用户uid

3.注册recive接受



1.调用observeOn()方法注册线程

2.代理设置成功回调

3.代理设置失败回调

4.调用subscribe()方法订阅执行

这样红包一发出来就会被抢掉

这块涉及到RXJAVA的相关知识,如果不了解的去了解下一个很不错的开源框架

                        Object threadManager = XposedHelpers.newInstance(ThreadManager, false);
                        Object mBridgeManager = XposedHelpers.newInstance(BridgeManager, threadManager);
                        XposedHelpers.callMethod(mBridgeManager,"setBridgeContextProvider",bridgeContextProvider);                         XposedHelpers.callMethod(mBridgeManager, "registerModule", ApiModule);
                        Object bridgeMessageAdapter = XposedHelpers.callStaticMethod(Codec, "decode", "{\"module\":\"API\",\"method\":\"request\",\"args\":{\"url\":\"redpacket/list/321726953973350400\",\"data\":{\"redid\":\""+redid+"\"},\"type\":\"GET\"},\"handleId\":\"BridgeHandle_4\"}", BridgeMessageAdapter);                        Object module = XposedHelpers.getObjectField(bridgeMessageAdapter, "module");                         Object mModuleMap = XposedHelpers.getObjectField(mBridgeManager, "mModuleMap");                         Object bridgeModule = XposedHelpers.callMethod(mModuleMap, "get", module);
                        Handler mHandler = (Handler) XposedHelpers.getObjectField(mBridgeManager, "mHandler");                        Object method = XposedHelpers.findMethodExactIfExists(ApiModule, "request", ApiRequestArgs);                         Object adapt = XposedHelpers.callMethod(bridgeMessageAdapter, "adapt", method);                         Object invokeModuleMethod = XposedHelpers.callMethod(mBridgeManager, "invokeModuleMethod", bridgeModule, method, adapt);
                        Object callback2 = Proxy.newProxyInstance(context.getClassLoader(), new Class[]{Consumer}, new b());                        Object mainThread = XposedHelpers.callMethod(invokeModuleMethod, "observeOn", XposedHelpers.callStaticMethod(AndroidSchedulers, "from", mHandler.getLooper()));                         Object callback1 = Proxy.newProxyInstance(context.getClassLoader(), new Class[]{Consumer}, new a());
                        XposedHelpers.callMethod(mainThread, "subscribe", callback1, callback2);

这块代码是透视的代码

第一行首先new出ThreadManager

第二行new出BridgeManager

第三行调用setBridgerContextProvider()方法传入bridgeContextProvider对象

第四行调用registerModule()方法传入ApiModule对象

第五行是一些结构的构建,只需要传入redid就行,redid在收到红包消息会得到

下面都是很显而易见的东西,构造起来调用即可,了解过RXJAVA会很容易解决的


返回的数据解析出金额,包数

需要注意的是金额需要转化下比如1元对应这边的数据是100.

到这里就差不多结束了





[看雪官方培训]《安卓高级研修班(网课)》9月班开始招生!挑战极限、工资翻倍!

最后于 2020-1-31 21:21 被kanxue编辑 ,原因:
最新回复 (5)
雪    币: 3
活跃值: 活跃值 (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
andydau 活跃值 2019-6-8 21:20
2
0
这样的文章都要设置优?
雪    币: 3010
活跃值: 活跃值 (37)
能力值: (RANK:110 )
在线值:
发帖
回帖
粉丝
LowRebSwrd 活跃值 2 2019-6-8 23:16
3
0
andydau 这样的文章都要设置优?
结合上一篇的文章还是可以的
雪    币: 601
活跃值: 活跃值 (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
guijingwen 活跃值 2019-6-10 11:01
4
0
这个聊天软件都没人用。。。。。
雪    币: 503
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
mb_frkjiylh 活跃值 2019-8-24 04:22
5
0
大佬牛逼
雪    币: 108
活跃值: 活跃值 (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
呼吸24K纯氧 活跃值 2019-12-3 09:33
6
0
很好的文章,感谢大佬热心分享.
游客
登录 | 注册 方可回帖
返回