From 1998d8fdc1395b87a8dc9adddb916c18ab5fa409 Mon Sep 17 00:00:00 2001 From: Him188 Date: Sat, 25 Jan 2020 21:54:19 +0800 Subject: [PATCH] Use random key --- .../mirai/qqandroid/network/QQAndroidClient.kt | 14 ++++---------- .../network/protocol/packet/login/LoginPacket.kt | 4 ++-- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/QQAndroidClient.kt b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/QQAndroidClient.kt index ebd42bdaa..bfe5ec177 100644 --- a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/QQAndroidClient.kt +++ b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/QQAndroidClient.kt @@ -9,10 +9,7 @@ import net.mamoe.mirai.data.OnlineStatus import net.mamoe.mirai.qqandroid.QQAndroidBot import net.mamoe.mirai.qqandroid.network.protocol.packet.PacketLogger import net.mamoe.mirai.qqandroid.network.protocol.packet.Tlv -import net.mamoe.mirai.qqandroid.utils.Context -import net.mamoe.mirai.qqandroid.utils.DeviceInfo -import net.mamoe.mirai.qqandroid.utils.NetworkType -import net.mamoe.mirai.qqandroid.utils.SystemDeviceInfo +import net.mamoe.mirai.qqandroid.utils.* import net.mamoe.mirai.utils.MiraiExperimentalAPI import net.mamoe.mirai.utils.MiraiInternalAPI import net.mamoe.mirai.utils.cryptor.ECDH @@ -20,10 +17,7 @@ import net.mamoe.mirai.utils.cryptor.contentToString import net.mamoe.mirai.utils.cryptor.decryptBy import net.mamoe.mirai.utils.cryptor.initialPublicKey import net.mamoe.mirai.utils.getValue -import net.mamoe.mirai.utils.io.hexToBytes -import net.mamoe.mirai.utils.io.read -import net.mamoe.mirai.utils.io.readUShortLVByteArray -import net.mamoe.mirai.utils.io.readUShortLVString +import net.mamoe.mirai.utils.io.* import net.mamoe.mirai.utils.unsafeWeakRef /* @@ -85,8 +79,8 @@ internal open class QQAndroidClient( val context: Context by context.unsafeWeakRef() val bot: QQAndroidBot by bot.unsafeWeakRef() - var tgtgtKey: ByteArray = ByteArray(16) // generateTgtgtKey(device.guid) - val randomKey: ByteArray = ByteArray(16) // 加密使用 + var tgtgtKey: ByteArray = generateTgtgtKey(device.guid) + val randomKey: ByteArray = getRandomByteArray(16) var miscBitMap: Int = 184024956 // 也可能是 150470524 ? var mainSigMap: Int = 16724722 diff --git a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/login/LoginPacket.kt b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/login/LoginPacket.kt index 507e59188..576f5664e 100644 --- a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/login/LoginPacket.kt +++ b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/login/LoginPacket.kt @@ -236,8 +236,8 @@ internal object LoginPacket : PacketFactory("wt // val ret = tlvMap[0x104]?.let { println(it.toUHexString()) } println() val question = tlvMap[0x165] ?: error("CAPTCHA QUESTION UNKNOWN") - when (question[18].toUHexString()) { - "36" -> { + when (question[18].toInt()) { + 0x36 -> { //图片验证 DebugLogger.debug("是一个图片验证码") val imageData = tlvMap[0x105]!!.toReadPacket()