首页
社区
课程
招聘
[原创]Xposed第五课(微信篇) 聊天机器人____群聊小助手n(*≧▽≦*)n
发表于: 2018-6-12 23:46 23463

[原创]Xposed第五课(微信篇) 聊天机器人____群聊小助手n(*≧▽≦*)n

2018-6-12 23:46
23463

上一篇[原创]Xposed第四课(微信篇) 朋友圈点赞(2)之好友列表

经过了前段日子基于微信的学习,今天终于折腾除了一点干货,微信聊天机器人。先上个图

图片描述
图片描述

为了完成这个,人都蒙蔽了,不多说了开始分析把。

首先进行如下图的操作
图片描述

图片描述

左图选中要记录的进程点击左图右上角那个图标进行轨迹录制之后,再次点击这个停止录制,就有了右边的图,我是从点击微信发送按钮开始录制的,所以在有图下面输入过滤关键字 onClick

从这个开始入手进入 dt(String str, int i)

接下来是关键点了,后面关联的地方有多处,我一一列出来
首先是 y$1

这个类就是 消息处理的过程 调用关键方法
au.Dv().a(l lVar, int i)

我在分析到这个地方被卡了很久

这个au.Dv().a(l lVar, int i) 有三种形式

接下来就是给上面的方法拼接参数,等会给的代码里面会提到。这里就不多重复了

到此我们能够回复了,那么我们回复的时机是什么呢?
于是我们需要找到什么时候收到消息,然后进行调用上面的代码

重复DDMS的操作进行接收消息通知的筛选 如下图

图片描述
看到筛选后关键类com.tencent.mm.booter.notification.b$1

看着这关键字貌似挺匹配的,于是进行hook发现确实接收的时候会执行这里

结合上面的得到如下代码

令我感到头痛的是在进行匹配参数,因为有些关联的引用不是很明显,找的时候有很多误区。
根据以上内容今后可以扩展聊天机器人,群助手,以及方便学习微信抢红包的流程。哈哈

垃圾代码已上传


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2019-2-2 14:07 被kanxue编辑 ,原因:
收藏
免费 1
支持
分享
打赏 + 5.00雪花
打赏次数 1 雪花 + 5.00
 
赞赏  junkboy   +5.00 2018/06/15
最新回复 (35)
雪    币: 11716
活跃值: (133)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
我记得昨晚标题不是这个,楼主清早起来卖了个萌→_→
2018-6-13 08:45
0
雪    币: 392
活跃值: (205)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
3
junkboy 我记得昨晚标题不是这个,楼主清早起来卖了个萌→_→
你说的没错
2018-6-13 08:53
0
雪    币: 709
活跃值: (2420)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
4
这里也有一个技术贴:
利用 Xposed 快速实现一个简易微信机器人

都只能自动回复文本消息吧
2018-6-13 10:39
0
雪    币: 392
活跃值: (205)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
5
sudami 这里也有一个技术贴:利用 Xposed 快速实现一个简易微信机器人https://github.com/Blankeer/WechatBotXposed都只能自动回复文本消息吧
其余的消息类型我也会有空尝试尝试的,他们的是怎么实现我没看过,我用的办法比较笨,一步步去找到关键点进行拆解
2018-6-13 12:36
0
雪    币: 709
活跃值: (2420)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
6
提供一个更简单的代码做自动文本回复 (纠正一下,硬编码的是微信6.6.1

最后于 2018-6-13 16:32 被sudami编辑 ,原因:
2018-6-13 12:58
0
雪    币: 392
活跃值: (205)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
7
sudami 提供一个更简单的代码做自动文本回复 
这个可以在重启手机之后不点击微信开启  进行回复吗。确实很方便,像我那样花N多时间去慢慢弄  简直不要不要了
2018-6-13 13:07
0
雪    币: 709
活跃值: (2420)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
8
KingZd 这个可以在重启手机之后不点击微信开启 进行回复吗。确实很方便,像我那样花N多时间去慢慢弄 简直不要不要了
你的思路挺好啊,一步一个脚印,赞一个。
你下一步的方向可以试试调研一下“零打扰检测僵尸粉”
2018-6-13 13:09
0
雪    币: 392
活跃值: (205)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
9
sudami 你的思路挺好啊,一步一个脚印,赞一个。 你下一步的方向可以试试调研一下“零打扰检测僵尸粉”[em_19]
嗯嗯  我会慢慢来的,谢谢大佬的鼓励。  估计按照我这个摸索模式检测出僵尸粉的时候  微信已经更新换代N多了  哈哈
2018-6-13 13:13
0
雪    币: 1185
活跃值: (458)
能力值: ( LV13,RANK:360 )
在线值:
发帖
回帖
粉丝
10
也提供个思路665:as.CN().d(new  j(talker,  "haha",  1));
2018-6-13 13:32
0
雪    币: 2719
活跃值: (1595)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
11
给个建议,可以把你每次做的工具做成一个合集?
2018-6-13 13:50
0
雪    币: 7
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
这个就是聊天用吗?
2018-6-13 15:18
0
雪    币: 392
活跃值: (205)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
13
Vn小帆 给个建议,可以把你每次做的工具做成一个合集?
目前所有的代码都丢在一起了,  没有加上控制开关  因为我这个项目还处于初期,考虑的是功能上一步一步分析自己如何去完成某项功能,帮助正在路上的盆友,功能完善后会慢慢加上控制模块,变成一个稍微正常点的应用
2018-6-13 15:28
0
雪    币: 392
活跃值: (205)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
14
zjxxhk 这个就是聊天用吗?
这只是提供思路,具体你需要怎么去扩展。要往哪方面功能去做可以作为参考,当然如果你有建设性的意见可以  留下来  看后面阶段加上来
2018-6-13 15:29
0
雪    币: 392
活跃值: (205)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
15
多谢大佬。
2018-6-13 15:30
0
雪    币: 392
活跃值: (205)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
16
Ericky 也提供个思路665:as.CN().d(new j(talker, "haha", 1));
多谢大佬
2018-6-13 15:30
0
雪    币: 3907
活跃值: (5817)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
17
多谢大佬~
2018-6-14 14:51
0
雪    币: 546
活跃值: (520)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
as.CN(),三句代码就可以搞定自动发消息,还可以指定好友,群等等,图片发送有点麻烦,不过也差不多
2018-6-15 00:18
0
雪    币: 233
活跃值: (1346)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
厉害,支持大佬
2018-6-15 02:32
0
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
不过是离线的,可惜了
2018-6-15 16:04
0
雪    币: 2232
活跃值: (86)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
请教下大佬   
Class<?>  gClass  =  XposedHelpers.findClass("com.tencent.mm.kernel.g",  mClassLoader);
                                Object  g  =  XposedHelpers.callStaticMethod(gClass,  "Ea");
                                Object  filedA  =  XposedHelpers.getObjectField(g,  "fVR");
这个类和方法是怎么找到,思路是什么啊
2018-6-21 10:41
0
雪    币: 392
活跃值: (205)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
22
shockc 请教下大佬 Class gClass = XposedHelpers.findClass("com.tencent.mm.kernel.g", mClassLoader); ...
我上面  提到的y$1里面的三种发送方式带的参数,按照参数逆推,因为我是反编译成了java  所以导入工程后,快捷键找到关联的引用进行对应的  参数方法hook,一般找到  目标执行方法后,里面不管有多少个参数  都只是按照关联去找到对应,有时候需要留意是某些参数方法不在本类里面,需要在实现的接口或者继承类里面的方法或者变量  多级查找关联
2018-6-22 08:56
0
雪    币: 226
活跃值: (52)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
虽然一脸懵逼,但是大佬能把自己的思路成果分享出来,使我倍受鼓舞๑乛◡乛๑
2018-6-22 12:01
1
雪    币: 431
活跃值: (1755)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
24
楼主你分析的这个微信版本是多少?
2018-7-3 00:51
0
雪    币: 392
活跃值: (205)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
25
younghare 楼主你分析的这个微信版本是多少?
6.6.6 上传到了github
2018-7-11 16:06
0
游客
登录 | 注册 方可回帖
返回
//