diff --git a/client/builders.go b/client/builders.go index c3c292c5..e6c8bd15 100644 --- a/client/builders.go +++ b/client/builders.go @@ -222,7 +222,7 @@ func (c *QQClient) buildRequestTgtgtNopicsigPacket() (uint16, []byte) { })) w.Write(tlv.T147(16, []byte(c.version.SortVersionName), c.version.ApkSign)) w.Write(tlv.T177(c.version.BuildTime, c.version.SdkVersion)) - w.Write(tlv.T400(c.g, c.Uin, SystemDeviceInfo.Guid, c.dpwd, 1, 16, c.t403)) + w.Write(tlv.T400(c.g, c.Uin, SystemDeviceInfo.Guid, c.dpwd, 1, 16, c.randSeed)) w.Write(tlv.T187(SystemDeviceInfo.MacAddress)) w.Write(tlv.T188(SystemDeviceInfo.AndroidId)) w.Write(tlv.T194(SystemDeviceInfo.IMSIMd5)) diff --git a/client/client.go b/client/client.go index f2c123d7..b91fab45 100644 --- a/client/client.go +++ b/client/client.go @@ -66,12 +66,12 @@ type QQClient struct { t174 []byte g []byte t402 []byte - t403 []byte t150 []byte t149 []byte t528 []byte t530 []byte rollbackSig []byte + randSeed []byte // t403 timeDiff int64 sigInfo *loginSigInfo highwaySession *highwaySessionInfo @@ -107,7 +107,6 @@ type loginSigInfo struct { srmToken []byte // study room manager | 0x16a t133 []byte - randSeed []byte encryptedA1 []byte userStKey []byte userStWebSig []byte diff --git a/client/decoders.go b/client/decoders.go index 8d3a6137..d076e0dc 100644 --- a/client/decoders.go +++ b/client/decoders.go @@ -54,7 +54,7 @@ func decodeLoginResponse(c *QQClient, _ uint16, payload []byte) (interface{}, er c.decodeT161(t161) } if m.Exists(0x403) { - c.t403 = m[0x403] + c.randSeed = m[0x403] } c.decodeT119(m[0x119]) return LoginResponse{ @@ -101,7 +101,7 @@ func decodeLoginResponse(c *QQClient, _ uint16, payload []byte) (interface{}, er if t174, ok := m[0x174]; ok { // 短信验证 c.t104 = m[0x104] c.t174 = t174 - c.t403 = m[0x403] + c.randSeed = m[0x403] phone := func() string { r := binary.NewReader(m[0x178]) return r.ReadStringLimit(int(r.ReadInt32())) @@ -150,7 +150,7 @@ func decodeLoginResponse(c *QQClient, _ uint16, payload []byte) (interface{}, er if t == 204 { c.t104 = m[0x104] - c.t403 = m[0x403] + c.randSeed = m[0x403] return c.sendAndWait(c.buildDeviceLockLoginPacket()) } // drive lock