ehForwarderBot / efb-wechat-slave

A channel for EH Forwarder Bot.
GNU Affero General Public License v3.0
459 stars 62 forks source link

[FR] 允许多客户端/上游 #129

Open iaurman opened 2 years ago

iaurman commented 2 years ago

目前UOS绕过Web限制方法已经无效,网页版微信应该不会再有留给 UOS 的任何后门。现在要想使用efb-wechat-slave必须能够正常登陆微信网页版,但拥有web权限的人少之又少,UOS方法失效后,无法使用efb-wechat-slave的人只会越来越多。

而隔壁微信聊天机器人项目wechaty支持多Puppet/Client,其中包括Web, Windows, iPad,大部分为付费200元/月,仅个人efb用途的话肯定不会去掏这个价钱。但因为Windows Hook目前已有人破解,项目开源,已经出现了像puppet-xp这样的免费puppet。此Windows Hook方法可以成为efb-wechat-slave额外的、新的上游。

可以参照efb-qq-slave的思路,建立相应API,采用多客户端的方法,让用户选择efb-wechat-slave的客户端。可以是原始Web方案,也可以是Windows Hook的方案,或者以后可能的话也可以是iPad方案。

      telegram
         | 
   ehForwarderBot
         | 
  efb-wechat-slave
         | 
 +-------+-------+
 |       |       | 
web   windows   ipad
blueset commented 2 years ago

感谢建议。

由于目前的 EWS 与 itchat/wxpy 结合过于紧密,且用户 ID 等识别信息与其他可能出现的接口并不通用。在 EWS 层面上实现多客户端并没有实际上的优势。若有发现更好的 API 选择的话,直接创建新的 EFB 从端更为适合。

关于 puppet-xp,由于我这边没有方便开发和部署的 Windows 环境,故没有仔细研究其可行性。

EFB 从端的基本要求是至少要有:

欢迎有意向的朋友开发新 API 的对应从端。

blueset commented 2 years ago

备忘:

目前已知的其他接口:

hookjk100 commented 2 years ago

希望能有大佬能找到解决方案,帮助没有web版本登录权限的我们这些难民。 efb-wechat 难民营,希望能找到解决办法,互通有无: https://t.me/+G4v4Jdqrwp1mODc5

endokai commented 2 years ago

新建了个一键Hook的Docker镜像。大大们可以看看这个Hook接口适不适合开发新的EFB从端: https://github.com/endokai/docker-wechatPc

镜像基于:DoChat ,Hook程序基于:wechatPc

blueset commented 2 years ago

感谢提供信息! 粗略测试了一下,基本可用,不过占用资源较高(750 MB 内存占用,5.86 GB 镜像),一般的廉价 VPS 可能招架不住,虽然比起开 Windows 虚拟机要好的多。

目前测试到的一些问题:

endokai commented 2 years ago

目前发现Dll方面的内存资源使用方面的确存在一些问题,后续修复看看。 图片消息方面因为基于Hook,查看教程和相关项目,基本都是取本地文件的多,微信PC是自动下载文件的。后续更新把这个图片的路径做进API里面。

iskycc commented 2 years ago

我觉得要采用hook方法的话,能不能就是说使用Windows Server部署hook程序负责接收和转发,然后Linux负责部署efb-wechat-slave对消息进行处理,全过程直接采用httpapi。这样虽然麻烦,但是只要有服务器就行,要求不是很高,而且比docker去虚拟环境进行hook稳定。

iskycc commented 2 years ago

备忘:

目前已知的其他接口:

另外,大佬,有时间你可以看一下VLW的API文档,应该可以你的满足基本需求,但是很遗憾的是它的图片也是本地图片,所以如果要用hook,可能必须得直接在部署hook的服务器上对图片进行中转上传的操作了

VLW以插件的形式开启API,文档:https://www.yuque.com/httpapi

endokai commented 2 years ago

我觉得要采用hook方法的话,能不能就是说使用Windows Server部署hook程序负责接收和转发,然后Linux负责部署efb-wechat-slave对消息进行处理,全过程直接采用httpapi。这样虽然麻烦,但是只要有服务器就行,要求不是很高,而且比docker去虚拟环境进行hook稳定。

跑两个服务器而且有台是Windows的,要求更高了吧,多一个系统 多一套管理。我是实验在Docker跑没发现有什么意料之外的额外问题,毕竟因为EWB不能用,我本身就一直在用那个Dochat了。假如出来新的EFB,你要分开部署API当然可以,这些大部分hook项目都是开放API的。不过相关管理服务和文件问题可能要自己解决了,文件服务你完全可以开个文件服务器,FUSE挂载到Linux之类的方法,并不是说你就要死的就要API接口也要把文件传输都做好

endokai commented 2 years ago

备忘: 目前已知的其他接口:

另外,大佬,有时间你可以看一下VLW的API文档,应该可以你的满足基本需求,但是很遗憾的是它的图片也是本地图片,所以如果要用hook,可能必须得直接在部署hook的服务器上对图片进行中转上传的操作了

VLW以插件的形式开启API,文档:https://www.yuque.com/httpapi

VLW并不是开源的吧

iskycc commented 2 years ago

备忘: 目前已知的其他接口:

另外,大佬,有时间你可以看一下VLW的API文档,应该可以你的满足基本需求,但是很遗憾的是它的图片也是本地图片,所以如果要用hook,可能必须得直接在部署hook的服务器上对图片进行中转上传的操作了 VLW以插件的形式开启API,文档:https://www.yuque.com/httpapi

VLW并不是开源的吧

嗯,所以我也并不是很推荐vlw,大家一起想办法吧,开源的一般采用低版本的微信,过一段时间容易提示微信版本过低不让登录,也是一个很让人头疼的问题。