mirror of
https://github.com/Mrs4s/MiraiGo.git
synced 2025-05-04 19:17:38 +08:00
feature submit ticket.
This commit is contained in:
parent
74aea80ada
commit
e884637ecc
@ -170,6 +170,22 @@ func (c *QQClient) buildSMSCodeSubmitPacket(code string) (uint16, []byte) {
|
|||||||
return seq, packet
|
return seq, packet
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *QQClient) buildTicketSubmitPacket(ticket string) (uint16, []byte) {
|
||||||
|
seq := c.nextSeq()
|
||||||
|
req := packets.BuildOicqRequestPacket(c.Uin, 0x810, crypto.ECDH, c.RandomKey, func(w *binary.Writer) {
|
||||||
|
w.WriteUInt16(2)
|
||||||
|
w.WriteUInt16(4)
|
||||||
|
|
||||||
|
w.Write(tlv.T193(ticket))
|
||||||
|
w.Write(tlv.T8(2052))
|
||||||
|
w.Write(tlv.T104(c.t104))
|
||||||
|
w.Write(tlv.T116(c.version.MiscBitmap, c.version.SubSigmap))
|
||||||
|
})
|
||||||
|
sso := packets.BuildSsoPacket(seq, c.version.AppId, "wtlogin.login", SystemDeviceInfo.IMEI, []byte{}, c.OutGoingPacketSessionId, req, c.ksid)
|
||||||
|
packet := packets.BuildLoginPacket(c.Uin, 2, make([]byte, 16), sso, []byte{})
|
||||||
|
return seq, packet
|
||||||
|
}
|
||||||
|
|
||||||
func (c *QQClient) buildRequestTgtgtNopicsigPacket() (uint16, []byte) {
|
func (c *QQClient) buildRequestTgtgtNopicsigPacket() (uint16, []byte) {
|
||||||
seq := c.nextSeq()
|
seq := c.nextSeq()
|
||||||
req := packets.BuildOicqRequestPacket(c.Uin, 0x0810, crypto.NewEncryptSession(c.sigInfo.t133), c.sigInfo.wtSessionTicketKey, func(w *binary.Writer) {
|
req := packets.BuildOicqRequestPacket(c.Uin, 0x0810, crypto.NewEncryptSession(c.sigInfo.t133), c.sigInfo.wtSessionTicketKey, func(w *binary.Writer) {
|
||||||
|
@ -260,6 +260,20 @@ func (c *QQClient) SubmitCaptcha(result string, sign []byte) (*LoginResponse, er
|
|||||||
return &l, nil
|
return &l, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *QQClient) SubmitTicket(ticket string) (*LoginResponse, error) {
|
||||||
|
seq, packet := c.buildTicketSubmitPacket(ticket)
|
||||||
|
rsp, err := c.sendAndWait(seq, packet)
|
||||||
|
if err != nil {
|
||||||
|
c.Disconnect()
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
l := rsp.(LoginResponse)
|
||||||
|
if l.Success {
|
||||||
|
c.init()
|
||||||
|
}
|
||||||
|
return &l, nil
|
||||||
|
}
|
||||||
|
|
||||||
func (c *QQClient) SubmitSMS(code string) (*LoginResponse, error) {
|
func (c *QQClient) SubmitSMS(code string) (*LoginResponse, error) {
|
||||||
rsp, err := c.sendAndWait(c.buildSMSCodeSubmitPacket(code))
|
rsp, err := c.sendAndWait(c.buildSMSCodeSubmitPacket(code))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
12
protocol/tlv/t193.go
Normal file
12
protocol/tlv/t193.go
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
package tlv
|
||||||
|
|
||||||
|
import "github.com/Mrs4s/MiraiGo/binary"
|
||||||
|
|
||||||
|
func T193(ticket string) []byte {
|
||||||
|
return binary.NewWriterF(func(w *binary.Writer) {
|
||||||
|
w.WriteUInt16(0x193)
|
||||||
|
w.WriteTlv(binary.NewWriterF(func(w *binary.Writer) {
|
||||||
|
w.Write([]byte(ticket))
|
||||||
|
}))
|
||||||
|
})
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user