github.com/Mrs4s/MiraiGo@v0.0.0-20240226124653-54bdd873e3fe/internal/tlv/t400.go (about) 1 package tlv 2 3 import ( 4 "time" 5 6 "github.com/Mrs4s/MiraiGo/binary" 7 ) 8 9 func T400(g []byte, uin int64, guid, dpwd []byte, j2, j3 int64, randSeed []byte) []byte { 10 return binary.NewWriterF(func(w *binary.Writer) { 11 w.WriteUInt16(0x400) 12 pos := w.FillUInt16() 13 w.EncryptAndWrite(g, binary.NewWriterF(func(w *binary.Writer) { 14 w.WriteUInt16(1) // version 15 w.WriteUInt64(uint64(uin)) 16 w.Write(guid) 17 w.Write(dpwd) 18 w.WriteUInt32(uint32(j2)) 19 w.WriteUInt32(uint32(j3)) 20 w.WriteUInt32(uint32(time.Now().Unix())) 21 w.Write(randSeed) 22 })) 23 w.WriteUInt16At(pos, uint16(w.Len()-4)) 24 }) 25 }