本文我将给大家讲解微信机器人的制作,首先要跟大家说的就是:机器人不管是 QQ 机器人还是微信机器人,相对而言是比较灰色地带,本文中提供的几种方式,经过本人亲自测试,是很好用的!如果有需要,赶紧看看,这种东西不知道哪天就会没了,你懂得!(文末有破解文件和代码)
目录
- 微信机器人基础知识
- 前期配置
- 微信机器人实现代码
- Itchat 实现微信机器人(拉黑检测)
1. 微信机器人基础知识
1.1 微信机器人实现方式
目前来说微信机器人有以下几种实现方式:
- **Web 网页端:**2017年后不再支持新号登陆,仅支持老号,且掉线严重,容易被封号;
- Xposed: 在 2019年6月份,微信官方在行业重点打击 Xposed;
- PC Hook: 代码注入型破解,封号情况也多,比较偏小的团队使用;
- 模拟机: 延迟高、消息实时到达率低、模拟认为操作效率慢;
- Ipad 协议: 安全性较好,功能满足,行业占有率高,但具有研发能力的研发人员偏少;
- Mac 协议: 安全性相比 Ipad 协议更好,功能性相比 Ipad 协议少些,行业内具有研发能力更少,安全性、稳定性比较优秀,不会出现追封、批量封的情况;
- 混合通道: 基于 Mac 与 Ipad 协议,非 grpc,mmtls 破解,功能合适,微信第三方最稳定通道,不会出现技术封号问题;
第一种: 是使用 Web 网页端,你要理解我们是如何实现微信机器人的,其实我们就相当于去使用程序的方式去模拟我们人的操作,所以说:只要你有能够发微信的渠道,那我们就可以使用编程方式去操控,所以最简单最容易想到的就是 Web 网页端的操作。在 17年之前,我们是可以登陆网页端的,可以去操作的。但是,出现了 Mac、Windows 客户端之后,就逐渐的被淘汰了。你们大部分去查的就都是网页端或者基于网页端,这个方法我会给大家讲解。但有些小伙伴的微信实际上是用不了这个方法的。
第二种: 其实就是 Xposed ,这个其实我们现在主流的两大手机系统:IOS、Android,安卓我们知道是个开源的框架,那我们开发者是可以进行调整或者植入一些所需要的操作。那 Xposed 你简单的理解:从整个系统层面,去做出一些改进,类似劫持(控制)微信消息的收发或者一些功能(改变定位之类的)。但从 在 2019年6月份,微信官方在行业重点打击 Xposed。因为像营销类、骗子等也会去用这样的一些技术,所以是导致官方非常重点的在打击。这样看来,这方法貌似也不是那么稳妥的方法。
第三种: 利用的是电脑上的微信客户端,将代码注入客户端里面,我们去截获收发消息,这也是我们今天主要用到的方式,这其实就是不要太过分(骚人他人之类的,个人使用微信官方一般不会去搞你的)
第四种: 如果你做过手机开发的话,应该会知道,在模拟机上面让我做软件的这种操控。但延迟高、消息实时到达率低、模拟认为操作效率慢。
第五种: 另外我们是知道,在 Ipad 上面也是有微信客户端的,也就是如果可以破解掉微信客户端里面的协议,这也是一种方式。安全性较好,功能满足,行业占有率高,但具有研发能力的研发人员偏少。(使用 Ipad 原本就比较少,有开发能力的就更少了)
第六种: 安全性相比 Ipad 协议更好,功能性相比 Ipad 协议少些,行业内具有研发能力更少,安全性、稳定性比较优秀,不会出现追封、批量封的情况。
第七种: 还有一种就是把 Mac 与 Ipad 结合,基于 Mac 与 Ipad 协议,非 grpc,mmtls 破解,功能合适,微信第三方最稳定通道,不会出现技术封号问题;
1.2 本文主要会讲两种
- 基于 PC Hook
- 基于 Web 网页端
2. 前期配置
有同学可能会问,我要不要了解软件开发之类的?其实不用,我主要是站在前人的基础之上操作的。
2.1 那一定要注意的两件事情是:
第一件:
- PC Hook 得在 Windows 系统上操作
- 使用 Mac 的同学可以装 VirtualBox 虚拟机
第二件:
我们一般装 Python 的时候,大部分装的是 64位的 Python。但是 Windows 的微信客户端是 32 位程序,我们需要 32位的 Python 完成后面的操作,注意:也要勾选 Add to path。所以,我们需要安装一个 Python 32 位的。
2.2 修改 32位 Python 名称方便区分
一般来说,你安装了 Python 32位而你电脑本身又有 Python 64位,就已经有了两个 Python,所以我们需要做一个区分。
首先找到 Python 的安装位置,一般在:C:\Users\clela\AppData\Local\Programs\Python\
,clela
:用户名,按你自己的来。
当然,如果你不知道路径在哪,也可以在命令行输入:where Python
clela@黄家宝 C:\Users\clela\Desktop
$ where python
C:\Users\clela\AppData\Local\Programs\Python\Python36-32\python.exe
C:\Users\clela\AppData\Local\Programs\Python\Python37\python.exe
C:\Users\clela\AppData\Local\Microsoft\WindowsApps\python.exe
上面的 C:\Users\clela\AppData\Local\Programs\Python\Python36-32\python.exe
这个就是我安装的 python 3.6的 32位路径。具体看你自己安装的 Python 版本是多少,比如:是 Python 3.7 那路径就表示:C:\Users\clela\AppData\Local\Programs\Python\Python37-32\python.exe
其他的规律皆为如此。
那我们要做的一件事情是什么呢?
就是我平时用的最多的是 Python 64位,32位的 Python 只是为了做我们这个机器人项目,一般用不太到,所以我把 32位和 64位做一个区分。
怎么区分呢?
把 32 位 Python 的目录下面的 Python.exe 改名字,改为 python32.exe,以次用来和原来的 64为 Python 区分。&