1
0
mirror of https://github.com/Mrs4s/MiraiGo.git synced 2025-05-04 19:17:38 +08:00

feat: decodeSidExpiredPacket

This commit is contained in:
Mrs4s 2021-12-17 00:38:46 +08:00
parent d8cae988c6
commit 6650184a1b
No known key found for this signature in database
GPG Key ID: 3186E98FA19CE3A7
3 changed files with 15 additions and 3 deletions

View File

@ -361,13 +361,13 @@ func (c *QQClient) buildRequestTgtgtNopicsigPacket() (uint16, []byte) {
return seq, packet return seq, packet
} }
func (c *QQClient) buildRequestChangeSigPacket() (uint16, []byte) { func (c *QQClient) buildRequestChangeSigPacket(mainSigMap uint32) (uint16, []byte) {
seq := c.nextSeq() seq := c.nextSeq()
req := packets.BuildOicqRequestPacket(c.Uin, 0x0810, c.ecdh, c.RandomKey, func(w *binary.Writer) { req := packets.BuildOicqRequestPacket(c.Uin, 0x0810, c.ecdh, c.RandomKey, func(w *binary.Writer) {
w.WriteUInt16(11) w.WriteUInt16(11)
w.WriteUInt16(17) w.WriteUInt16(17)
w.Write(tlv.T100(c.version.SSOVersion, 100, c.version.MainSigMap)) w.Write(tlv.T100(c.version.SSOVersion, 100, mainSigMap))
w.Write(tlv.T10A(c.sigInfo.tgt)) w.Write(tlv.T10A(c.sigInfo.tgt))
w.Write(tlv.T116(c.version.MiscBitmap, c.version.SubSigmap)) w.Write(tlv.T116(c.version.MiscBitmap, c.version.SubSigmap))
w.Write(tlv.T108(c.ksid)) w.Write(tlv.T108(c.ksid))

View File

@ -163,6 +163,7 @@ var decoders = map[string]func(*QQClient, *incomingPacketInfo, []byte) (interfac
"MessageSvc.PushNotify": decodeSvcNotify, "MessageSvc.PushNotify": decodeSvcNotify,
"OnlinePush.ReqPush": decodeOnlinePushReqPacket, "OnlinePush.ReqPush": decodeOnlinePushReqPacket,
"OnlinePush.PbPushTransMsg": decodeOnlinePushTransPacket, "OnlinePush.PbPushTransMsg": decodeOnlinePushTransPacket,
"OnlinePush.SidTicketExpired": decodeSidExpiredPacket,
"ConfigPushSvc.PushReq": decodePushReqPacket, "ConfigPushSvc.PushReq": decodePushReqPacket,
"MessageSvc.PbGetMsg": decodeMessageSvcPacket, "MessageSvc.PbGetMsg": decodeMessageSvcPacket,
"MessageSvc.PushForceOffline": decodeForceOfflinePacket, "MessageSvc.PushForceOffline": decodeForceOfflinePacket,
@ -327,7 +328,7 @@ func (c *QQClient) TokenLogin(token []byte) error {
// SystemDeviceInfo.TgtgtKey = r.ReadBytesShort() // SystemDeviceInfo.TgtgtKey = r.ReadBytesShort()
c.deviceInfo.TgtgtKey = r.ReadBytesShort() c.deviceInfo.TgtgtKey = r.ReadBytesShort()
} }
_, err = c.sendAndWait(c.buildRequestChangeSigPacket()) _, err = c.sendAndWait(c.buildRequestChangeSigPacket(c.version.MainSigMap))
if err != nil { if err != nil {
return err return err
} }

View File

@ -793,6 +793,17 @@ func decodeWordSegmentation(_ *QQClient, _ *incomingPacketInfo, payload []byte)
return nil, errors.New("no word received") return nil, errors.New("no word received")
} }
func decodeSidExpiredPacket(c *QQClient, _ *incomingPacketInfo, _ []byte) (interface{}, error) {
_, err := c.sendAndWait(c.buildRequestChangeSigPacket(3554528))
if err != nil {
return nil, errors.Wrap(err, "resign client error")
}
if err = c.registerClient(); err != nil {
return nil, errors.Wrap(err, "register error")
}
return nil, nil
}
/* unused /* unused
// LightAppSvc.mini_app_info.GetAppInfoById // LightAppSvc.mini_app_info.GetAppInfoById
func decodeAppInfoResponse(_ *QQClient, _ *incomingPacketInfo, payload []byte) (interface{}, error) { func decodeAppInfoResponse(_ *QQClient, _ *incomingPacketInfo, payload []byte) (interface{}, error) {