Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
iaurman opened this issue Jan 16, 2022 · 11 comments
Open

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

iaurman opened this issue Jan 16, 2022 · 11 comments

Comments

@iaurman
Copy link

iaurman commented Jan 16, 2022

目前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
Copy link
Member

blueset commented Jan 17, 2022

感谢建议。

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

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

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

  • 接收消息的方式(至少是文本消息,要求有会话和发件人的识别信息)
  • 发送消息的方式(至少是文本信息)
  • 获取会话列表的方式

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

@blueset
Copy link
Member

blueset commented Jan 17, 2022

备忘:

目前已知的其他接口:

@hookjk100
Copy link

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

@endokai
Copy link

endokai commented Jan 24, 2022

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

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

@blueset
Copy link
Member

blueset commented Jan 31, 2022

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

目前测试到的一些问题:

  • 一定几率调用 OPCODE_LOGIN_INFO 会导致客户端崩溃。
  • Websocket 拿不到发来的图片内容(粗略的翻了一下 chengciming/wechatpc,也没找到相关的说明)

@endokai
Copy link

endokai commented Feb 8, 2022

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

@iskycc
Copy link

iskycc commented Feb 11, 2022

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

@iskycc
Copy link

iskycc commented Feb 11, 2022

备忘:

目前已知的其他接口:

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

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

@endokai
Copy link

endokai commented Feb 12, 2022

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

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

@endokai
Copy link

endokai commented Feb 12, 2022

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

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

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

VLW并不是开源的吧

@iskycc
Copy link

iskycc commented Feb 12, 2022

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

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

VLW并不是开源的吧

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants