首页
社区
课程
招聘
[原创]关于微信聊天机器人的半hook半协议研究
2018-12-13 10:29 19740

[原创]关于微信聊天机器人的半hook半协议研究

2018-12-13 10:29
19740
声明:本技术贴仅为了某些想在AI技术的基础上做个微信聊天机器人提供部分技术原理,如有侵权,就当我写过。删帖便是了。

背景:AI技术吊炸天,很多人工智能聊天都看起来很酷炫,而微信智能聊天机器人,是很多人想实现的一个玩意,但是微信没有提供方便的开发平台,
让一些学生想用自己的微信号做个机器人,都找不到门路,所以,基于此,我们可以使用hook PC的办法来实现这个机器人。

1:如何hook接受消息?
   微信公开了一个mars框架,这个可以在github上看到,从mars上我们大概能看到微信底层的样子,当然它缺少CDN和mmtls,不过没啥关系,一个
   做机器人的技术,没有这两个,也是可以实现的。
   从mars的源码里,我们重点看sample里面https://github.com/Tencent/mars/blob/master/samples/Windows/PublicComponentV2/longlink_packer.cc
   这个代码,其中

这两个函数是收发包的核心函数,如果我们能够hook到这里,基本上消息的接收是可以完全监控到的。
2.如何找到这两个函数?
   找这两个函数大概有很多种办法,但是我个人觉得最简单的就是 htonl 和 ntohl。这两个函数是导出函数,封包需要用好几次,解包也用好几次,
   相信打开IDA,找到这种一个函数用好几次htonl的函数不是很多,挨个下断点就能够hook出来了。
   比如 2.6.2.31这个版本 封包解包的地址  : 0x9A6579  0x9A6664

3.如何解包?
  我们知道微信登录以后使用sessionkey加密解密包的,如果不知道的可以阅读以下文章:
  
所以我们也需要拿到sessionkey,打开ida,字符串搜索sessionkey

test edx,edx 就是sessionkey了。
  拿到sessionkey,如何解包?
  这时候基本可以参考github上的一些代码:

解开了包,就可以用protobuf反序列化,这样我们就能监控到聊天消息了。

4.那如何发送消息?
  1.可以通过hook发送函数来发。
     可以在微信的客户端启动一个PRCServer,然后我们的AI负责把回复消息发送给里面的线程,负责发送,这种Call发送虽然比较死。
  2.可以自己构建包来发。
    发送一个包需要什么,proto文件,这个很好弄。 
    如何封包?
    根据hook pack函数我们揭秘一个就好了。
    拿到version,uin,cookies,然后最后几位标志。
    
  3.怎么发送出去?
     我们走短连接就好了,然后用早期的版本,因为早期的低版本可以关闭mmtls,所以我们在登录以后拿到一个短连接的ip
     封包发送就好了。
    
    会不会封号就不知道了,但是我们的聊天机器人,就算是可以实现自动回复了。撩起来吧。

[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

收藏
点赞5
打赏
分享
最新回复 (17)
雪    币: 1412
活跃值: (4133)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
IamHuskar 4 2018-12-13 10:49
2
1
不错,以后可能有用。我先保存一个
最后于 2018-12-13 10:49 被IamHuskar编辑 ,原因:
上传的附件:
雪    币: 1412
活跃值: (4133)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
IamHuskar 4 2018-12-13 11:04
3
1
原来是HOOK PC 。我以为android呢
雪    币: 2344
活跃值: (2207)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
gtict 2018-12-13 11:20
4
1
android应该差不多。。楼主提到的文章,,我也保存了,
雪    币: 17842
活跃值: (59828)
能力值: (RANK:125 )
在线值:
发帖
回帖
粉丝
Editor 2018-12-13 11:36
5
0
666
雪    币: 2714
活跃值: (1497)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
Vn小帆 2018-12-13 12:44
6
0
gtict android应该差不多。。楼主提到的文章,,我也保存了,
android 我都写了一套了
雪    币: 2344
活跃值: (2207)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
gtict 2018-12-13 13:24
7
0
Vn小帆 android 我都写了一套了[em_13]
私信发我一套呗
雪    币: 2714
活跃值: (1497)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
Vn小帆 2018-12-13 15:03
8
0
gtict 私信发我一套呗[em_13]
嘿嘿     就是不告诉你     
雪    币: 15
活跃值: (155)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zhhigh 2018-12-14 11:04
9
0
谢谢,又见更新
雪    币: 3624
活跃值: (3783)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
caolinkai 2019-1-7 10:06
10
0
666
雪    币: 376
活跃值: (130)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
奔跑中的雨雨 2019-6-12 18:06
11
0
高薪寻找研究成功的人才,扣 625550005
雪    币: 16
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
吃泡面 2019-7-23 15:34
12
0
大佬 求你qq 或者 微信号 想找你学习东西 付费 报酬绝对满意 求大神私信发我
雪    币: 16
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
吃泡面 2019-7-23 15:54
13
0
求加qq 411874483 大牛真有事情找你
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
wx_小张小张无限嚣张 2019-12-10 17:42
14
0
可以留个联系方式么
雪    币: 782
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
mb_tfshllfv 2019-12-13 06:57
15
0
厉害了大佬
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
wx_老黑 2020-5-9 12:01
16
0
你好~可以留个联系方式
雪    币: 2938
活跃值: (18)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
fqbqrr 2020-5-9 13:01
17
0
ai有啥玩头,就是个模拟法.
雪    币: 234
活跃值: (284)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Altai001 2020-6-3 09:08
18
0

最后于 2020-7-5 21:38 被Altai001编辑 ,原因: 违规
游客
登录 | 注册 方可回帖
返回