From 1f8edc2de3be08f2d539dd58627a316a5dab4bcb Mon Sep 17 00:00:00 2001 From: wdvxdr Date: Fri, 19 Nov 2021 20:12:56 +0800 Subject: [PATCH] update some tlv packet --- client/builders.go | 5 ++++- internal/tlv/t108.go | 4 ++-- internal/tlv/t545.go | 10 ++++++++++ 3 files changed, 16 insertions(+), 3 deletions(-) create mode 100644 internal/tlv/t545.go diff --git a/client/builders.go b/client/builders.go index 529d06c9..83b1b401 100644 --- a/client/builders.go +++ b/client/builders.go @@ -314,6 +314,7 @@ func (c *QQClient) buildRequestTgtgtNopicsigPacket() (uint16, []byte) { w.Write(tlv.T116(c.version.MiscBitmap, c.version.SubSigmap)) w.Write(tlv.T100(c.version.SSOVersion, 2, c.version.MainSigMap)) w.Write(tlv.T107(0)) + w.Write(tlv.T108(c.ksid)) w.Write(tlv.T144( c.deviceInfo.AndroidId, c.deviceInfo.GenDeviceInfoData(), @@ -348,6 +349,8 @@ func (c *QQClient) buildRequestTgtgtNopicsigPacket() (uint16, []byte) { w.Write(tlv.T516()) w.Write(tlv.T521(0)) w.Write(tlv.T525(tlv.T536([]byte{0x01, 0x00}))) + // w.Write(tlv.545()) + w.Write(tlv.T545([]byte(c.deviceInfo.IMEI))) }) packet := packets.BuildUniPacket(c.Uin, seq, "wtlogin.exchange_emp", 2, c.OutGoingPacketSessionId, []byte{}, make([]byte, 16), req) return seq, packet @@ -362,7 +365,7 @@ func (c *QQClient) buildRequestChangeSigPacket() (uint16, []byte) { w.Write(tlv.T100(c.version.SSOVersion, 100, c.version.MainSigMap)) w.Write(tlv.T10A(c.sigInfo.tgt)) w.Write(tlv.T116(c.version.MiscBitmap, c.version.SubSigmap)) - w.Write(tlv.T108(c.deviceInfo.IMEI)) + w.Write(tlv.T108(c.ksid)) h := md5.Sum(c.sigInfo.d2Key) w.Write(tlv.T144( c.deviceInfo.AndroidId, diff --git a/internal/tlv/t108.go b/internal/tlv/t108.go index 67993ea6..53949642 100644 --- a/internal/tlv/t108.go +++ b/internal/tlv/t108.go @@ -2,9 +2,9 @@ package tlv import "github.com/Mrs4s/MiraiGo/binary" -func T108(imei string) []byte { +func T108(ksid []byte) []byte { return binary.NewWriterF(func(w *binary.Writer) { w.WriteUInt16(0x108) - w.WriteBytesShort([]byte(imei)) + w.WriteBytesShort(ksid) }) } diff --git a/internal/tlv/t545.go b/internal/tlv/t545.go new file mode 100644 index 00000000..756da96f --- /dev/null +++ b/internal/tlv/t545.go @@ -0,0 +1,10 @@ +package tlv + +import "github.com/Mrs4s/MiraiGo/binary" + +func T545(imei []byte) []byte { + return binary.NewWriterF(func(w *binary.Writer) { + w.WriteUInt16(0x108) + w.WriteBytesShort(imei) + }) +}