diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/client/login/ClientLoginPacket.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/packet/client/login/ClientLoginPacket.kt index 3539b77c9..d09ccfb8d 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/client/login/ClientLoginPacket.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/packet/client/login/ClientLoginPacket.kt @@ -69,7 +69,7 @@ open class ClientLoginResendPacket(val qq: Int, val password: String, val loginT } @ExperimentalUnsignedTypes -@PacketId("08 28 04 34")//todo +@PacketId("08 28 04 34") class ClientLoginSucceedConfirmationPacket( private val qq: Int, private val serverIp: String, diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/server/login/ServerLoginResponseResendPacket.md b/mirai-core/src/main/java/net/mamoe/mirai/network/packet/server/login/ServerLoginResponseResendPacket.md deleted file mode 100644 index ac0e9f61a..000000000 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/server/login/ServerLoginResponseResendPacket.md +++ /dev/null @@ -1,117 +0,0 @@ - -# ServerLoginResendResponsePacket - -## Dispose_0836 (RESEND) -data = TeaDecrypt (取文本中间 (data, 43, 取文本长度 (data) - 45), #shareKey) -data = TeaDecrypt (data, m_tgtgtKey) -.如果真 (data ≠ “”) - _0836_tlv0006_encr = 取文本中间 (data, 76, 359) - token = 选择 (flag = “08 36 31 03”, 取文本中间 (data, 460, 167), m_00BaToken) ' token - m_tgtgtKey = 取文本中间 (data, 16, 47) ' tgtgtKey - SetTips (“正在获取帐号信息...”, 9) - .如果 (flag = “08 36 31 03”) - SendUdp (Construct_0836_686 (“31 04”, 假, token, _0836_tlv0006_encr)) ' 正常发送 - .否则 - SendUdp (Construct_0836_686 (“31 06”, 假, token, _0836_tlv0006_encr)) ' 第二次发送 - .如果结束 - -.如果真结束 - - -## Construct_0836_686( - .参数 seq, 文本型 - .参数 isVerify, 逻辑型, , 是否需要验证码登录 - .参数 token, 文本型 - .参数 tlv_0006_encr, 文本型, 可空) - -fix1 = “03 00 00 00 01 01 01 00 00 68 20 00 00 00 00 00 01 01 03 00 19 ” -fix2 = “00 15 00 30 00 01 01 27 9B C7 F5 00 10 65 03 FD 8B 00 00 00 00 00 00 00 00 00 00 00 00 02 90 49 55 33 00 10 15 74 C4 89 85 7A 19 F5 5E A9 C9 A3 5E 8A 5A 9B ” -qd = “00 32 00 63 3E 00 63 02 04 03 06 02 00 04 00 52 D9 00 00 00 00 A9 58 3E 6D 6D 49 AA F6 A6 D9 33 0A E7 7E 36 84 03 01 00 00 68 20 15 8B 00 00 01 02 00 00 03 00 07 DF 00 0A 00 0C 00 01 00 04 00 03 00 04 20 5C 00 ” + MD5_32 + “68 ” ' 修改 - -_0836key1 = “EF 4A 36 6A 16 A8 E6 3D 2E EA BD 1F 98 C1 3C DA ” -PCName = BytesToStr (Ansi转Utf8 (取主机名 ())) -PCName = 取文本左边 (PCName, 取文本长度 (PCName) - 3) -MD51 = 删尾空 (StrSplit (取数据摘要 (到字节集 (g_pass)))) -MD52 = 删尾空 (StrSplit (取数据摘要 (HexToBytes (MD51 + “ 00 00 00 00 ” + g_QQ)))) -crc32_code = GetRandomKey (16) -crc32_data = 取Crc32 (crc32_code) -.如果真 (isVerify) - tlv_0006_encr = Get_tlv_0006 () -.如果真结束 -pack.Empty () -pack.PutTag (“01 12”) -pack.PutLength (“00 38”) -pack.PutValue (m_0825token) -pack.PutTag (“03 0F”) -pack.putDwordLength (GetDataLength (PCName) + 2) -pack.putDwordLength (GetDataLength (PCName)) -pack.PutValue (PCName) -pack.PutFix (“00 05 00 06 00 02”) -pack.PutQQ () -pack.PutTag (“00 06”) -pack.PutLength (“00 78”) -pack.PutValue (tlv_0006_encr) -pack.PutKey (fix2) -pack.PutTag (“00 1A”) -pack.PutLength (“00 40”) -pack.PutValue (TeaEncrypt (fix2, m_tgtgtKey)) -pack.PutValue (#_0825data0) -pack.PutValue (#_0825date2) -pack.PutQQ () -pack.PutZero (4) -pack.PutTag (“01 03”) -pack.PutLength (“00 14”) -pack.PutTag (“00 01”) -pack.PutLength (“00 10”) -pack.PutKey (“60 C9 5D A7 45 70 04 7F 21 7D 84 50 5C 66 A5 C6”) -' **************** -' 多出来的167字节 -pack.PutTag (“01 10”) -pack.PutLength (“00 3C”) -pack.PutTag (“00 01”) -pack.PutLength (“00 38”) -pack.PutValue (token) -' **************** -pack.PutTag (“03 12”) -pack.PutLength (“00 05”) -pack.PutValue (“01 00 00 00 01”) -pack.PutTag (“05 08”) -pack.PutLength (“00 05”) -pack.PutValue (“01 00 00 00 00”) -pack.PutTag (“03 13”) -pack.PutLength (“00 19”) -pack.PutByte (“01”) -pack.PutTag (“01 02”) -pack.PutLength (“00 10”) -pack.PutKey (“04 EA 78 D1 A4 FF CD CC 7C B8 D4 12 7D BB 03 AA”) ' 两次0836包相同 -pack.PutZero (3) -pack.PutByte (“00”) ' 可能为00,0F,1F -pack.PutTag (“01 02”) -pack.PutLength (“00 62”) -pack.PutWord (“00 01”) -pack.PutKey (“04 EB B7 C1 86 F9 08 96 ED 56 84 AB 50 85 2E 48”) ' 两次0836包不同 -pack.PutLength (“00 38”) -pack.PutValue (“E9 AA 2B 4D 26 4C 76 18 FE 59 D5 A9 82 6A 0C 04 B4 49 50 D7 9B B1 FE 5D 97 54 8D 82 F3 22 C2 48 B9 C9 22 69 CA 78 AD 3E 2D E9 C9 DF A8 9E 7D 8C 8D 6B DF 4C D7 34 D0 D3”) -pack.PutLength (“00 14”) -pack.PutKey (crc32_code) -pack.PutDword (crc32_data) -调试输出 (pack.GetPacket ()) -ret = #head + “37 13 08 36 ” + seq + “ ” + g_QQ + fix1 + #publicKey + “ 00 00 00 10 ” + _0836key1 + TeaEncrypt (pack.GetPacket (), #shareKey) + #tail -返回 (ret) - - - - - -## Dispose_0836 (VERIFICATION CODE) -data = 取文本中间 (data, 43, 取文本长度 (data) - 45) -data = TeaDecrypt (data, #shareKey) -verifyCode_length = HexToDec (取文本中间 (data, 235, 5)) -g_verifyCode = 取文本中间 (data, 241, verifyCode_length × 3 - 1) -m_bool = 取文本中间 (data, 245 + verifyCode_length × 3 - 1, 2) = “01” -m_00BaToken = 取文本中间 (data, 取文本长度 (data) - 178, 119) -.如果真 (m_bool) - g_sequence = 1 - SendUdp (#head + #ver + “00 BA 31 01 ” + g_QQ + #fixVer + #_00BaKey + “ ” + TeaEncrypt (“00 02 00 00 08 04 01 E0 ” + #_0825date2 + “00 00 38 ” + m_0825token + “ 01 03 00 19 ” + #publicKey + “ 13 00 05 00 00 00 00 ” + DecToHex (g_sequence) + “ 00 28 ” + m_00BaToken + “ 00 10 ” + #_00BaFixKey, #_00BaKey) + #tail) -.如果真结束 -返回 ()