ehForwarderBot / efb-wechat-slave

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

微信一扫码就显示这样报错,微信手机端没有登入到电脑 #126

Closed Charles-Hello closed 2 years ago

Charles-Hello commented 2 years ago
2021-12-31 03:00:49,781 [Level 99]: ehforwarderbot.__main__ (__main__.init; __main__.py:137)
     Slave channel WeChat Slave (blueset.wechat) # Default profile is initialized. 
2021-12-31 03:00:49,781 [Level 99]: ehforwarderbot.__main__ (__main__.init; __main__.py:142)
     Initializing master blueset.telegram... 
Exception in thread itchat polling thread (maintain_loop):
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/threading.py", line 1009, in _bootstrap_inner
    self.run()
  File "/usr/local/lib/python3.10/threading.py", line 946, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/local/lib/python3.10/site-packages/efb_wechat_slave/vendor/itchat/components/login.py", line 314, in maintain_loop
    exitCallback()
  File "/usr/local/lib/python3.10/site-packages/efb_wechat_slave/__init__.py", line 261, in exit_callback
    raise Exception(
Exception: Web WeChat logged your account out before master channel is ready.
2021-12-31 03:00:50,561 [Level 99]: ehforwarderbot.__main__ (__main__.init; __main__.py:149)
     Master channel Telegram Master (blueset.telegram) # Default profile is initialized. 
2021-12-31 03:00:50,563 [Level 99]: ehforwarderbot.__main__ (__main__.init; __main__.py:155)
     All channels initialized. 
2021-12-31 03:00:50,564 [Level 99]: ehforwarderbot.__main__ (__main__.init; __main__.py:169)
     All middlewares are initialized. 
GrassBlock1 commented 2 years ago

自己的尝试和根据上面的总结: 原本能登陆Web微信的帐号用最新master或者回滚到UOS补丁前的版本可以用,用的就是原始的Web方式,原本能登的就能登。 不能登Web的没戏了,大部分人应该都是这样,因为UOS的方式已经封了。(我试了那个文件助手也是没用的不能解封)

没有web登录权限的是彻底没戏了嘛?

可能 刚才试了一下 失败

Rongronggg9 commented 2 years ago

自己的尝试和根据上面的总结: 原本能登陆Web微信的帐号用最新master或者回滚到UOS补丁前的版本可以用,用的就是原始的Web方式,原本能登的就能登。 不能登Web的没戏了,大部分人应该都是这样,因为UOS的方式已经封了。(我试了那个文件助手也是没用的不能解封)

没有web登录权限的是彻底没戏了嘛?

应该是的。稍微分析了最新的 UOS 版微信,虽然仍然是 electron,但大部分功能都是靠 /usr/lib/wechat/packages/alita/libs/lib/libwechat_alita.so 完成的,这是一个经过混淆的内部库,作为直接后端,很可能已经不再需要网页版微信;前端的核心部分在 /usr/lib/wechat/packages/main/dist/index.js 。因此网页版微信应该不会再有留给 UOS 的任何后门。唯一可行的方法就是直接注入这个 UOS 版微信。

blueset commented 2 years ago

发布了 EWS 2.0.6。撤回了已不可用的 UOS 补丁,以及优化了部分错误处理逻辑。

tom-snow commented 2 years ago

发布了 EWS 2.0.6。撤回了已不可用的 UOS 补丁,以及优化了部分错误处理逻辑。

好奇怪,不知道是我个例还是怎么的,使用 EWS 2.0.6 (pip 渠道获取的)后,能登陆网页版微信的号登陆也会报错。

版本信息:

$ ehforwarderbot -V
EH Forwarder Bot
Version: 2.1.1
Python version:
3.8.6 | packaged by conda-forge | (default, Oct  7 2020, 19:08:05) 
[GCC 7.5.0]
Running on profile "default".

Master channel:
    Telegram Master (blueset.telegram) 2.2.4 # Default instance

Slave channel:
    WeChat Slave (blueset.wechat) 2.0.6 # Default instance

Middlewares:
    No middleware is enabled.

$ cat /etc/*release
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
VERSION_CODENAME=stretch
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

$ uname -a
Linux ali-ecs 4.9.0-16-amd64 #1 SMP Debian 4.9.272-2 (2021-07-19) x86_64 GNU/Linux

报错信息 (使用了 -v 参数展示了更多信息):

2022-01-14 17:11:48,797 [INFO]: itchat (login.login; login.py:55)
    Please scan the QR code to log in.
2022-01-14 17:12:04,861 [DEBUG]: urllib3.connectionpool (connectionpool._make_request; connectionpool.py:433)
    https://login.weixin.qq.com:443 "GET /cgi-bin/mmwebwx-bin/login?loginicon=true&uuid=Aa******Fw==&tip=1&r=-1039994&_=1642151508 HTTP/1.1" 200 5615
2022-01-14 17:12:04,862 [Level 99]: plugins.blueset.wechat.WeChatChannel (__init__.console_qr_code; __init__.py:195)
    Confirm on your phone.
2022-01-14 17:12:04,862 [INFO]: itchat (login.login; login.py:65)
    Please press confirm on your phone.
2022-01-14 17:12:05,896 [DEBUG]: urllib3.connectionpool (connectionpool._make_request; connectionpool.py:433)
    https://login.weixin.qq.com:443 "GET /cgi-bin/mmwebwx-bin/login?loginicon=true&uuid=Aa******Fw==&tip=1&r=-1039994&_=1642151525 HTTP/1.1" 200 5615
2022-01-14 17:12:06,963 [DEBUG]: urllib3.connectionpool (connectionpool._make_request; connectionpool.py:433)
    https://login.weixin.qq.com:443 "GET /cgi-bin/mmwebwx-bin/login?loginicon=true&uuid=Aa******Fw==&tip=1&r=-1039994&_=1642151526 HTTP/1.1" 200 5615
2022-01-14 17:12:08,024 [DEBUG]: urllib3.connectionpool (connectionpool._make_request; connectionpool.py:433)
    https://login.weixin.qq.com:443 "GET /cgi-bin/mmwebwx-bin/login?loginicon=true&uuid=Aa******Fw==&tip=1&r=-1039994&_=1642151527 HTTP/1.1" 200 5611
2022-01-14 17:12:09,087 [DEBUG]: urllib3.connectionpool (connectionpool._make_request; connectionpool.py:433)
    https://login.weixin.qq.com:443 "GET /cgi-bin/mmwebwx-bin/login?loginicon=true&uuid=Aa******Fw==&tip=1&r=-1039994&_=1642151529 HTTP/1.1" 200 5615
2022-01-14 17:12:10,111 [DEBUG]: urllib3.connectionpool (connectionpool._make_request; connectionpool.py:433)
    https://login.weixin.qq.com:443 "GET /cgi-bin/mmwebwx-bin/login?loginicon=true&uuid=Aa******Fw==&tip=1&r=-1039994&_=1642151530 HTTP/1.1" 200 184
2022-01-14 17:12:10,113 [DEBUG]: urllib3.connectionpool (connectionpool._new_conn; connectionpool.py:939)
    Starting new HTTPS connection (1): wx2.qq.com:443
2022-01-14 17:12:10,464 [DEBUG]: urllib3.connectionpool (connectionpool._make_request; connectionpool.py:433)
    https://wx2.qq.com:443 "GET /cgi-bin/mmwebwx-bin/webwxnewloginpage?ticket=A60crI4hXW_cypEbPfc_zzCt@qrticket_0&uuid=Aa******Fw==&lang=zh_CN&scan=1642151524 HTTP/1.1" 301 187
2022-01-14 17:12:10,466 [Level 99]: plugins.blueset.wechat.WeChatChannel (__init__.console_qr_code; __init__.py:198)
    Successfully logged in.
2022-01-14 17:12:11,467 [INFO]: itchat (login.login; login.py:76)
    Loading the contact, this may take a little while.
2022-01-14 17:12:11,468 [ERROR]: itchat (login.verify_login; login.py:96)
    msg list retrieve failed
Traceback (most recent call last):
  File "/home/user/miniconda3/lib/python3.8/site-packages/efb_wechat_slave/vendor/itchat/components/login.py", line 94, in verify_login
    msg_list, contact_list = self.get_msg()
  File "/home/user/miniconda3/lib/python3.8/site-packages/efb_wechat_slave/vendor/itchat/components/login.py", line 384, in get_msg
    'SyncKey': self.loginInfo['SyncKey'],
KeyError: 'SyncKey'
2022-01-14 17:12:11,468 [ERROR]: itchat (login.verify_login; login.py:101)
    sync check result failed
Traceback (most recent call last):
  File "/home/user/miniconda3/lib/python3.8/site-packages/efb_wechat_slave/vendor/itchat/components/login.py", line 99, in verify_login
    sync_check_result = self.sync_check()
  File "/home/user/miniconda3/lib/python3.8/site-packages/efb_wechat_slave/vendor/itchat/components/login.py", line 352, in sync_check
    'synckey': self.loginInfo['synckey'],
KeyError: 'synckey'
2022-01-14 17:12:11,468 [DEBUG]: itchat (login.verify_login; login.py:105)
    server refused, loading login status failed.
Traceback (most recent call last):
  File "/home/user/miniconda3/bin/ehforwarderbot", line 8, in <module>
    sys.exit(main())
  File "/home/user/miniconda3/lib/python3.8/site-packages/ehforwarderbot/__main__.py", line 335, in main
    init(conf)
  File "/home/user/miniconda3/lib/python3.8/site-packages/ehforwarderbot/__main__.py", line 135, in init
    coordinator.add_channel(cls(instance_id=instance_id))
  File "/home/user/miniconda3/lib/python3.8/site-packages/efb_wechat_slave/__init__.py", line 160, in __init__
    self.authenticate('console_qr_code', first_start=True)
  File "/home/user/miniconda3/lib/python3.8/site-packages/efb_wechat_slave/__init__.py", line 672, in authenticate
    self.bot: wxpy.Bot = wxpy.Bot(cache_path=str(efb_utils.get_data_path(self.channel_id) / "wxpy.pkl"),
  File "/home/user/miniconda3/lib/python3.8/site-packages/efb_wechat_slave/vendor/wxpy/api/bot.py", line 85, in __init__
    self.core.auto_login(
  File "/home/user/miniconda3/lib/python3.8/site-packages/efb_wechat_slave/vendor/itchat/components/register.py", line 32, in auto_login
    self.login(enableCmdQR=enableCmdQR, picDir=picDir, qrCallback=qrCallback,
  File "/home/user/miniconda3/lib/python3.8/site-packages/efb_wechat_slave/vendor/itchat/components/login.py", line 77, in login
    self.verify_login()
  File "/home/user/miniconda3/lib/python3.8/site-packages/efb_wechat_slave/vendor/itchat/components/login.py", line 106, in verify_login
    raise Exception('server refused, loading login status failed.')
Exception: server refused, loading login status failed.

尝试过将 .ehforwarderbot 下的配置文件删除并且重装了 ehforwarderbot efb-wechat-slave efb-telegram-master 仍然如此

dongyu66 commented 2 years ago

0 我和你一样的情况,不过我退回2.0.6.dev9版本就可以继续使用了

hookjk100 commented 2 years ago

efb-wechat 难民营,希望能找到解决办法,互通有无: https://t.me/+G4v4Jdqrwp1mODc5

kettly1260 commented 2 years ago

@blueset 拉取最新的github后一直无法登录,网页版是正常的 KeyError: 'synckey' Traceback (most recent call last): File "/usr/local/bin/ehforwarderbot", line 8, in sys.exit(main()) File "/usr/local/lib/python3.8/dist-packages/ehforwarderbot/main.py", line 335, in main init(conf) File "/usr/local/lib/python3.8/dist-packages/ehforwarderbot/main.py", line 135, in init coordinator.add_channel(cls(instance_id=instance_id)) File "/usr/local/lib/python3.8/dist-packages/efb_wechat_slave/init.py", line 160, in init self.authenticate('console_qr_code', first_start=True) File "/usr/local/lib/python3.8/dist-packages/efb_wechat_slave/init.py", line 672, in authenticate self.bot: wxpy.Bot = wxpy.Bot(cache_path=str(efb_utils.get_data_path(self.channel_id) / "wxpy.pkl"), File "/usr/local/lib/python3.8/dist-packages/efb_wechat_slave/vendor/wxpy/api/bot.py", line 85, in init self.core.auto_login( File "/usr/local/lib/python3.8/dist-packages/efb_wechat_slave/vendor/itchat/components/register.py", line 32, in auto_login self.login(enableCmdQR=enableCmdQR, picDir=picDir, qrCallback=qrCallback, File "/usr/local/lib/python3.8/dist-packages/efb_wechat_slave/vendor/itchat/components/login.py", line 77, in login self.verify_login() File "/usr/local/lib/python3.8/dist-packages/efb_wechat_slave/vendor/itchat/components/login.py", line 106, in verify_login raise Exception('server refused, loading login status failed.') Exception: server refused, loading login status failed.

blueset commented 2 years ago

发布了 EWS 2.0.7。修复了登录验证顺序错误的问题。

tom-snow commented 2 years ago

能登陆 web 微信的能正常使用了,不能登陆的估计也就只能等待或者研究 windows hook 相关的领域了(https://github.com/ehForwarderBot/efb-wechat-slave/issues/129#issuecomment-1014021537 而且应该新开项目)。 关于 windows hook ,目前我知道的有 可爱猫puppet-xpwechatPc

iskycc commented 2 years ago

能登陆 web 微信的能正常使用了,不能登陆的估计也就只能等待或者研究 windows hook 相关的领域了(#129 (comment) 而且应该新开项目)。 关于 windows hook ,目前我知道的有 可爱猫puppet-xpwechatPc

还有一个叫VLW的框架,不过这些hook的好像没有支持接收微信公众号的推送的吧?