mirror of
https://github.com/Mrs4s/MiraiGo.git
synced 2025-05-04 11:07:40 +08:00
feat: tlv544
This commit is contained in:
parent
b75252bbaa
commit
7c54342c9f
@ -18,6 +18,7 @@ import (
|
|||||||
"github.com/Mrs4s/MiraiGo/client/pb/structmsg"
|
"github.com/Mrs4s/MiraiGo/client/pb/structmsg"
|
||||||
"github.com/Mrs4s/MiraiGo/internal/proto"
|
"github.com/Mrs4s/MiraiGo/internal/proto"
|
||||||
"github.com/Mrs4s/MiraiGo/internal/tlv"
|
"github.com/Mrs4s/MiraiGo/internal/tlv"
|
||||||
|
"github.com/Mrs4s/MiraiGo/warpper"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@ -101,6 +102,17 @@ func (c *QQClient) buildLoginPacket() (uint16, []byte) {
|
|||||||
tlv.T521(0),
|
tlv.T521(0),
|
||||||
tlv.T525(tlv.T536([]byte{0x01, 0x00})),
|
tlv.T525(tlv.T536([]byte{0x01, 0x00})),
|
||||||
)
|
)
|
||||||
|
if warpper.DandelionEnergy != nil {
|
||||||
|
salt := binary.NewWriterF(func(w *binary.Writer) {
|
||||||
|
// util.int64_to_buf(bArr42, 0, (int) uin2);
|
||||||
|
// util.int16_to_buf(bArr42, 4, u.guid.length); // 故意的还是不小心的
|
||||||
|
w.Write(binary.NewWriterF(func(w *binary.Writer) { w.WriteUInt64(uint64(c.Uin)) })[:4])
|
||||||
|
w.WriteBytesShort(c.Device().Guid)
|
||||||
|
w.WriteBytesShort([]byte(c.version().SdkVersion))
|
||||||
|
w.WriteUInt32(9) // sub command
|
||||||
|
})
|
||||||
|
t.Append(tlv.T544Custom("810_9", salt, warpper.DandelionEnergy))
|
||||||
|
}
|
||||||
req := c.buildOicqRequestPacket(c.Uin, 0x0810, t)
|
req := c.buildOicqRequestPacket(c.Uin, 0x0810, t)
|
||||||
r := network.Request{
|
r := network.Request{
|
||||||
Type: network.RequestTypeLogin,
|
Type: network.RequestTypeLogin,
|
||||||
@ -372,6 +384,9 @@ func (c *QQClient) buildTicketSubmitPacket(ticket string) (uint16, []byte) {
|
|||||||
if c.sig.T547 != nil {
|
if c.sig.T547 != nil {
|
||||||
t.Append(tlv.T(0x547, c.sig.T547))
|
t.Append(tlv.T(0x547, c.sig.T547))
|
||||||
}
|
}
|
||||||
|
if warpper.DandelionEnergy != nil {
|
||||||
|
t.Append(tlv.T544(uint64(c.Uin), "810_2", 2, c.version().SdkVersion, c.Device().Guid, warpper.DandelionEnergy))
|
||||||
|
}
|
||||||
req := c.buildOicqRequestPacket(c.Uin, 0x0810, t)
|
req := c.buildOicqRequestPacket(c.Uin, 0x0810, t)
|
||||||
r := network.Request{
|
r := network.Request{
|
||||||
Type: network.RequestTypeLogin,
|
Type: network.RequestTypeLogin,
|
||||||
|
23
internal/tlv/t544.go
Normal file
23
internal/tlv/t544.go
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
package tlv
|
||||||
|
|
||||||
|
import "github.com/Mrs4s/MiraiGo/binary"
|
||||||
|
|
||||||
|
func T544(userId uint64, moduleId string, subCmd uint32, sdkVersion string, guid []byte, signer func(string, []byte) []byte) []byte {
|
||||||
|
return binary.NewWriterF(func(w *binary.Writer) {
|
||||||
|
w.WriteUInt16(0x544)
|
||||||
|
salt := binary.NewWriterF(func(w *binary.Writer) {
|
||||||
|
w.WriteUInt64(userId)
|
||||||
|
w.WriteBytesShort(guid)
|
||||||
|
w.WriteBytesShort([]byte(sdkVersion))
|
||||||
|
w.WriteUInt32(subCmd)
|
||||||
|
})
|
||||||
|
w.WriteBytesShort(signer(moduleId, salt)) // temporary solution
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
func T544Custom(moduleId string, salt []byte, signer func(string, []byte) []byte) []byte {
|
||||||
|
return binary.NewWriterF(func(w *binary.Writer) {
|
||||||
|
w.WriteUInt16(0x544)
|
||||||
|
w.WriteBytesShort(signer(moduleId, salt))
|
||||||
|
})
|
||||||
|
}
|
3
warpper/codec.go
Normal file
3
warpper/codec.go
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
package warpper
|
||||||
|
|
||||||
|
var DandelionEnergy func(string, []byte) []byte
|
Loading…
x
Reference in New Issue
Block a user