首页
论坛
专栏
课程

与你红包秒抢透视下

2019-6-8 18:55 3258

与你红包秒抢透视下

2019-6-8 18:55
3258

继续上次的解说

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

与你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);

                        Object method = XposedHelpers.findMethodExactIfExists(ApiModule, "request", ApiRequestArgs);

                        Object adapt = XposedHelpers.callMethod(bridgeMessageAdapter, "adapt", method);

                        Object invokeModuleMethod = XposedHelpers.callMethod(mBridgeManager, "invokeModuleMethod", bridgeModule, method, adapt);

                        Handler mHandler = (Handler) XposedHelpers.getObjectField(mBridgeManager, "mHandler");

                        Object mainThread = XposedHelpers.callMethod(invokeModuleMethod, "observeOn", XposedHelpers.callStaticMethod(AndroidSchedulers, "from", mHandler.getLooper()));
                        Object callback1 = Proxy.newProxyInstance(context.getClassLoader(), new Class[]{Consumer}, new a());
                        Object callback2 = Proxy.newProxyInstance(context.getClassLoader(), new Class[]{Consumer}, new b());
                        XposedHelpers.callMethod(mainThread, "subscribe", callback1, callback2);
这块代码是透视的代码

第一行首先new出ThreadManager

第二行new出BridgeManager
第三行调用setBridgerContextProvider()方法传入bridgeContextProvider对象
第四行调用registerModule()方法传入ApiModule对象
第五行是一些结构的构建,只需要传入redid就行,redid在收到红包消息会得到
下面都是很显而易见的东西,构造起来调用即可,了解过RXJAVA会很容易解决的

返回的数据解析出金额,包数
需要注意的是金额需要转化下比如1元对应这边的数据是100.
到这里就差不多结束了
欢迎大佬进群一起讨论

我们菜鸟也想要飞翔

qq群:572186496

感谢大佬投食菜鸟



[招聘]欢迎市场人员加入看雪学院团队!

最后于 2019-6-8 19:00 被飞翔的小菜鸟编辑 ,原因:
最新回复 (3)
andydau 2019-6-8 21:20
2
0
这样的文章都要设置优?
LowRebSwrd 2 2019-6-8 23:16
3
0
andydau 这样的文章都要设置优?
结合上一篇的文章还是可以的
guijingwen 2019-6-10 11:01
4
0
这个聊天软件都没人用。。。。。
游客
登录 | 注册 方可回帖
返回