微信机器人有web、app、exe三种实现方式。其中网页端很多账号被限制无法登录,如果hookapp需要使用xposed,账号就会被封禁,所以现在大部分机器人都是基于PC微信的。首先实现最基本的机器人功能:接收和发送消息。相关调用请见:https://blog.csdn.net/qq_3847...。接收消息最新版本(2.8.0.121)钩子地址偏移量:0x354B32基本上所有类型的消息都会经过这里,比如红包、转账、语音文件,包括公众号的推送,因为红包不能被PC微信上收到的只能收到红包的短信(比如谁发了红包,请在手机上查看)。如果是图片,你可以知道图片是什么。其他的比如表情和公众号都是一些xml信息也可以解读,但是我一直没有找到对应的调用或者语音对应的文件。拦截信息,只需要hook这个地址,就可以拦截需要的信息。实现成品:https://www.lanzous.com/ianzaha。(dll是C++写的,exe是aardio写的)效果图:发送消息最新版本(2.8.0.121)钩子地址偏移量:0xE3162发送短信的代码就是上面几行,成品实现:https://www.lanzous.com/iao0ahgCSDN不能上传视频,所以效果就不放了。机器人上的两个成品只是为了验证方法是否可行,并不是机器人,实际上是人在操作界面实现发送消息。但是,由于可以使用外部代码实现,连接一些人工智障(比如腾讯AI开放平台的聊天机器人)是没有问题的。当然,为了能够在其他语言中使用,可以开放一个通用的协议来实现它,比如tcpsocket,http。RPC是用的最多的,一直没弄明白是什么意思。实现一些群发和转发也很简单,这两个调用足以实现收发消息的功能。
