DreamVoid / MiraiMC

适用于Minecraft服务器的Mirai机器人
https://docs.miraimc.dreamvoid.me
GNU Affero General Public License v3.0
182 stars 15 forks source link

登录时提示“当前版本过低,请升级到QQ最新版本。” #17

Closed Syscat20 closed 1 year ago

Syscat20 commented 3 years ago

问题描述

如题,使用的是最新的版本,但登入时仍然提示版本过低,导致无法登入。

复现方法

  1. 直接登入

版本类型

服务器日志

[19:31:50 INFO]: [PlugMan] MiraiMC has been loaded and enabled.
[19:31:50 INFO]: [MiraiMC] [AutoLogin] Starting auto-bot task.
[19:31:50 INFO]: [MiraiMC] [AutoLogin] Auto login bot account: 1**7 Protocol: ANDROID_PHONE
[19:31:50 INFO]: [MiraiMC] 登录新的机器人账号: 1***7, 协议: ANDROID_PHONE
[19:31:50 INFO]: 2021-07-27 19:31:50 I/Mirai: Mirai 正在使用桌面环境. 如遇到验证码将会弹出对话框. 可添加 JVM 属性 `mirai.no-desktop` 以关闭.
[19:31:50 INFO]: 2021-07-27 19:31:50 I/Mirai: Mirai is using desktop. Captcha will be thrown by window popup. You can add `mirai.no-desktop` to JVM properties (-Dmirai.no-desktop) to disable it.
[19:31:52 WARN]: java.security.NoSuchProviderException: JCE cannot authenticate the provider BC
[19:31:52 WARN]:        at java.base/javax.crypto.JceSecurity.getInstance(JceSecurity.java:130)
[19:31:52 WARN]:        at java.base/javax.crypto.KeyAgreement.getInstance(KeyAgreement.java:238)
[19:31:52 WARN]:        at net.mamoe.mirai.internal.utils.crypto.ECDH$Companion.calculateShareKey(ECDHJvmDesktop.kt:89)
[19:31:52 WARN]:        at net.mamoe.mirai.internal.utils.crypto.ECDH.lambda-3$testECDH(ECDHJvmDesktop.kt:49)
[19:31:52 WARN]:        at net.mamoe.mirai.internal.utils.crypto.ECDH.<clinit>(ECDHJvmDesktop.kt:61)
[19:31:52 WARN]:        at net.mamoe.mirai.internal.utils.crypto.ECDHKt.adjustToPublicKey(ECDH.kt:141)
[19:31:52 WARN]:        at net.mamoe.mirai.internal.utils.crypto.ECDHKt.adjustToPublicKey(ECDH.kt:136)
[19:31:52 WARN]:        at net.mamoe.mirai.internal.utils.crypto.ECDHInitialPublicKey.<init>(ECDH.kt:125)
[19:31:52 WARN]:        at net.mamoe.mirai.internal.utils.crypto.ECDHInitialPublicKey.<init>(ECDH.kt:123)
[19:31:52 WARN]:        at net.mamoe.mirai.internal.utils.crypto.ECDHKt$defaultInitialPublicKey$2.invoke(ECDH.kt:132)
[19:31:52 WARN]:        at net.mamoe.mirai.internal.utils.crypto.ECDHKt$defaultInitialPublicKey$2.invoke(ECDH.kt:132)
[19:31:52 WARN]:        at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
[19:31:52 WARN]:        at net.mamoe.mirai.internal.utils.crypto.ECDHKt.getDefaultInitialPublicKey(ECDH.kt:132)
[19:31:52 WARN]:        at net.mamoe.mirai.internal.network.context.AccountSecretsKt.AccountSecretsImpl(AccountSecrets.kt:102)
[19:31:52 WARN]:        at net.mamoe.mirai.internal.network.components.AccountSecretsManagerKt.getSecretsOrCreate(AccountSecretsManager.kt:45)
[19:31:52 WARN]:        at net.mamoe.mirai.internal.network.components.BotClientHolderImpl.createClient(BotClientHolder.kt:37)
[19:31:52 WARN]:        at net.mamoe.mirai.internal.network.components.BotClientHolderImpl.access$createClient(BotClientHolder.kt:25)
[19:31:52 WARN]:        at net.mamoe.mirai.internal.network.components.BotClientHolderImpl$client$2.invoke(BotClientHolder.kt:29)
[19:31:52 WARN]:        at net.mamoe.mirai.internal.network.components.BotClientHolderImpl$client$2.invoke(BotClientHolder.kt:29)
[19:31:52 WARN]:        at net.mamoe.mirai.utils.LateinitMutableProperty.getValue(LateinitMutableProperty.kt:38)
[19:31:52 WARN]:        at net.mamoe.mirai.internal.network.components.BotClientHolderImpl.getClient(BotClientHolder.kt:29)
[19:31:52 WARN]:        at net.mamoe.mirai.internal.network.components.SsoProcessorImpl.getClient(SsoProcessor.kt:81)
[19:31:52 WARN]:        at net.mamoe.mirai.internal.network.components.SsoProcessorImpl.login(SsoProcessor.kt:95)
[19:31:52 WARN]:        at net.mamoe.mirai.internal.network.impl.netty.NettyNetworkHandler$StateConnecting$1.invokeSuspend(NettyNetworkHandler.kt:269)
[19:31:52 WARN]:        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
[19:31:52 WARN]:        at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
[19:31:52 WARN]:        at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
[19:31:52 WARN]:        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
[19:31:52 WARN]:        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
[19:31:52 WARN]:        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)
[19:31:52 WARN]: Caused by: java.util.jar.JarException: The JCE Provider file:/D:/Minecraft%20Server%201.17.1/plugins/MiraiMC-release-hotfix1.jar is not signed.
[19:31:52 WARN]:        at java.base/javax.crypto.JarVerifier.verifySingleJar(JarVerifier.java:463)
[19:31:52 WARN]:        at java.base/javax.crypto.JarVerifier.verifyJars(JarVerifier.java:316)
[19:31:52 WARN]:        at java.base/javax.crypto.JarVerifier.verify(JarVerifier.java:259)
[19:31:52 WARN]:        at java.base/javax.crypto.ProviderVerifier.verify(ProviderVerifier.java:129)
[19:31:52 WARN]:        at java.base/javax.crypto.JceSecurity.verifyProvider(JceSecurity.java:189)
[19:31:52 WARN]:        at java.base/javax.crypto.JceSecurity.getVerificationResult(JceSecurity.java:217)
[19:31:52 WARN]:        at java.base/javax.crypto.JceSecurity.getInstance(JceSecurity.java:127)
[19:31:52 WARN]:        ... 29 more
[19:31:52 INFO]: [MiraiMC] [ECDHInitialPublicKeyUpdater] ECDH key is invalid, start to fetch ecdh public key from server.
[19:31:53 INFO]: [MiraiMC] [ECDHInitialPublicKeyUpdater] Successfully fetched ecdh public key from server.
[19:31:53 WARN]: [MiraiMC] 当前登录的QQ(1***7)需要文字验证码验证
[19:31:53 WARN]: [MiraiMC] 请找到下面的文件并识别文字验证码
[19:31:53 WARN]: [MiraiMC] plugins\MiraiMC\verifyimage\1***7-verify.png
[19:31:53 WARN]: [MiraiMC] 识别完成后,请输入指令 /miraiverify piccaptcha 1***7 <验证码>
[19:31:53 WARN]: [MiraiMC] 如需取消登录,请输入指令 /miraiverify piccaptchacancel 1***7
[19:31:53 WARN]: [MiraiMC] 如需帮助,请参阅: https://github.com/DreamVoid/MiraiMC
> miraiverify piccaptcha 1***7 hags
[19:32:12 INFO]: 已将验证码提交到服务器
[19:32:12 WARN]: [MiraiMC] null
net.mamoe.mirai.network.WrongPasswordException: Error(bot=Bot(1***7), code=235, title=温馨提示, message=当前版本过 低,请升级到QQ最新版本。, errorInfo= )
        at net.mamoe.mirai.internal.network.components.SsoProcessorImpl$SlowLoginImpl.doLogin(SsoProcessor.kt:249) ~[?:?]
        at net.mamoe.mirai.internal.network.components.SsoProcessorImpl$SlowLoginImpl$doLogin$1.invokeSuspend(SsoProcessor.kt) ~[?:?]
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) ~[?:?]
        at kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Scopes.kt:33) ~[?:?]
        at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:102) ~[?:?]
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46) ~[?:?]
        at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) ~[?:?]
        at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571) ~[?:?]
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750) ~[?:?]
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678) ~[?:?]
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665) ~[?:?]
[19:32:12 WARN]: net.mamoe.mirai.network.WrongPasswordException: Error(bot=Bot(1***7), code=235, title=温馨提示, message=当前版本过低,请升级到QQ最新版本。, errorInfo= )
[19:32:12 WARN]:        at net.mamoe.mirai.internal.network.components.SsoProcessorImpl$SlowLoginImpl.doLogin(SsoProcessor.kt:249)
[19:32:12 WARN]:        at net.mamoe.mirai.internal.network.components.SsoProcessorImpl$SlowLoginImpl$doLogin$1.invokeSuspend(SsoProcessor.kt)
[19:32:12 WARN]:        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
[19:32:12 WARN]:        at kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Scopes.kt:33)
[19:32:12 WARN]:        at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:102)
[19:32:12 WARN]:        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
[19:32:12 WARN]:        at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
[19:32:12 WARN]:        at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
[19:32:12 WARN]:        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
[19:32:12 WARN]:        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
[19:32:12 WARN]:        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)
[19:32:12 INFO]: [MiraiMC] Bot cancelled: Bot closed
DreamVoid commented 3 years ago

请先在自己的电脑过一遍验证,登录完成后将MiraiMC插件文件夹上传到服务器 出现此提示说明QQ号被腾讯认为是异地登录的风险账号


另外一种可能的解决方案: 请在Minecraft服务端的启动参数加上-Dmirai.slider.captcha.supported 参见:#3

Syscat20 commented 3 years ago

我在自己的电脑上操作也是这么提示的。 并且服务器设置在家中,网络环境和家用电脑是一致的。

DreamVoid commented 3 years ago

我在自己的电脑上操作也是这么提示的。 并且服务器设置在家中,网络环境和家用电脑是一致的。

请尝试开启设备锁

Syscat20 commented 3 years ago

设备锁一直处于开启状态。

DreamVoid commented 3 years ago

设备锁一直处于开启状态。

请在Minecraft服务端的启动参数加上-Dmirai.slider.captcha.supported 参见:#3

NoMathExpectation commented 3 years ago

如何开启设备锁?

DreamVoid commented 3 years ago

如何开启设备锁?

https://www.baidu.com/s?ie=UTF-8&wd=QQ%E5%A6%82%E4%BD%95%E5%BC%80%E5%90%AF%E8%AE%BE%E5%A4%87%E9%94%81

AAAMING2324 commented 3 years ago

设备所已经开启了,并且已经添加了 #请在Minecraft服务端的启动参数加上-Dmirai.slider.captcha.supported# 这串参数. 还是提示版本过低

zhibeigg commented 1 year ago

最新版本还是有这个问题

bananaQwQ666 commented 1 year ago

所以这个问题到底怎么办啊

qeqwzcx commented 1 year ago

QQ新版没有找到设备锁功能,添加了启动项参数,也在本地登入验证了,还是显示版本过低。