支持多账号自动登录的微信多开软件
现在很多人都可能不止一个微信,官方前几年还出了注册微信小号的功能,电脑端的微信确还一直都只能开一个,直到最近的4.1.8版本开始才支持多开。现在如果只是需要多开,更新到最新版本就能直接打开多个。
之前在多开的帖子下看到的最多的就是有人在评论区里教别人用bat古法多开
@echo off
start "" "C:\Program Files\Tencent\WeXin\WeXin.exe"
start "" "C:\Program Files\Tencent\WeXin\WeXin.exe"
exit
但这些多开方式都有个缺点:多个账号不好管理,每次登录账号都需要重新扫码。bat脚本多开缺点就更多了,当你有个微信退出后,只能全部退出再启动并登录一遍。
开源软件
https://github.com/huiyadanli/RevokeMsgPatcherhttps://github.com/zetaloop/BetterWX
还有个BetterWX-UI因为某些不可抗力的原因删库了。这两个项目目前还都能使用,只是它们都是通过修改微信文件打补丁的形式来实现,我觉得不太安全,很容易被检测到然后进小黑屋。
自己实现
目前机器人项目还在使用4.1.1.19版本的微信,所以打算自己写一个多开软件,还能支持多账号自动登录。目前只支持两个版本:4.1.1.19和官网的最新版4.1.8.101,下面会说怎么更新版本偏移。
下载地址:https://wwbmk.lanzoue.com/b00yb1ht1a 密码:hagx

使用方法
首先选择微信的路径,因为我喜欢使用微信绿色版本(在官网下安装包然后直接解压使用),通过读注册表无法读取到微信的路径。
然后选择0-9的一个数字,相同的数字会启动相同的微信实例。点击启动按钮可以测试是否能启动成功,也可以在桌面创建快捷方式,通过不同的快捷方式启动不同的微信账号。

快捷方式的名称这个可以自定义, 你可以填微信的昵称方便知道启动的是哪个账号。
实现原理
微信不能多开是因为使用了Windows互斥体,解决方法其实有很多:
- 关闭互斥体句柄
- 创建互斥体前修改互斥体名称
- 修改互斥体创建后的判断,让它以为成功了
新版微信自动登录是通过一个global_config文件来实现的,你可以先登录一个账号,然后复制出来这个文件和另一个crc的文件,再登录另一个账号,试着把文件还原回去,你会发现原来的账号自动登录还在。BetterWX项目里还提到有个host-redirect.xml文件也会导致登录自动登录失败。
global_config是怎么生成了其实不太需要关心,只需要让对应的账号之间互不干扰就行了。实现思路跟BetterWX基本类似,但我使用的是hook的方法,在微信启动前修改互斥体的名称和global_config的名称,hook创建互斥体的位置,当创建完互斥体后,还原修改的名称。这样就能实现无侵入式修改(hook时间比较短,应该很难被检测到)。
适配多版本
每个版本的字符串偏移位置都不一样,怎么一个软件适配多个版本呢?目前想到两种方法:
- 在hook前先在内存里搜索一遍找到字符串地址再修改
- 针对每个版本都配置一份偏移
第一个方法会导致每次启动微信的时候都需要多耗费几秒的时间用于搜索,而第二个方法则需要一直去适配新版本。不过比起每次启动多等几秒,还不如一个版本更新一次,所以这里选择第二个方案。
更新版本偏移
有兴趣的可以看GitHub的说明:https://github.com/kanadeblisst00/MutiWeixinTools

浙公网安备 33010602011771号