微信机器人的实现有三种:web,app和exe。其中web很多账号受限登录不了,而hook app的话需要使用xposed则会封号,所以现在大部分机器人都是基于PC微信。

先实现一下最基本的机器人的功能:接收消息和发送消息。找相关call请看:https://blog.csdn.net/qq_38474570/article/details/93339861。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

接收消息

最新版(2.8.0.121)hook地址偏移:0x354B32

基本所有类型的消息都会通过这个,比如红包、转账和语音文件等,包括公众号的推送也可以收到,因为红包无法在PC微信上查看,只能收到一个红包的文字消息(比如谁谁谁发了红包,请到手机上查看),如果是图片的话可以知道是什么图片,其他比如表情和公众号等都是一些xml的信息也可以解读出来,就是语音的话我还没找到对应的call或者相对应的文件。

要实现拦截信息只需要hook这个地址就能截取到所需要的信息。实现成品:https://www.lanzous.com/ianzaha。(dll由C++编写,exe由aardio编写)

效果图
微信机器人之PC微信hook Python 第1张

发送消息

最新版(2.8.0.121)hook地址偏移:0x‭E3162‬
微信机器人之PC微信hook Python 第2张
发送文本消息的代码就是上面几行,实现成品:https://www.lanzous.com/iao0ahg

CSDN无法上传视频,效果就不放了。

机器人

上面的两个成品只是验证一下方法可行,并不是机器人,它实际上还是人在操作界面来实现发消息。不过既然能使用外部代码来实现,那么对接某些人工智障(比如腾讯AI开放平台的聊天机器人)也是没问题的。当然,为了其他语言也可以使用,可以开放一个通用的协议来实现,比如tcpsocket,http。RPC是用的最多的,但是我还没有弄懂它是个啥意思。

实现一些群发和转发也是相当简单,对于收发消息的功能这两个call已经足够用了。

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄