-
-
[原创]关于微信聊天机器人的半hook半协议研究
-
发表于:
2018-12-13 10:29
21188
-
声明:本技术贴仅为了某些想在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
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课