1
0
mirror of https://github.com/Mrs4s/MiraiGo.git synced 2025-05-04 11:07:40 +08:00

fix login

This commit is contained in:
Mrs4s 2023-03-10 03:56:17 +08:00
parent adae194961
commit 9760f01de1
No known key found for this signature in database
GPG Key ID: 3186E98FA19CE3A7
3 changed files with 14 additions and 0 deletions

View File

@ -110,6 +110,7 @@ func (c *QQClient) buildLoginPacket() (uint16, []byte) {
w.WriteBytesShort(c.Device().Guid) w.WriteBytesShort(c.Device().Guid)
w.WriteBytesShort([]byte(c.version().SdkVersion)) w.WriteBytesShort([]byte(c.version().SdkVersion))
w.WriteUInt32(9) // sub command w.WriteUInt32(9) // sub command
w.WriteUInt32(0) // 被演了
}) })
t.Append(tlv.T544Custom("810_9", salt, warpper.DandelionEnergy)) t.Append(tlv.T544Custom("810_9", salt, warpper.DandelionEnergy))
} }

View File

@ -51,6 +51,7 @@ func decodeLoginResponse(c *QQClient, pkt *network.Packet) (any, error) {
if m.Exists(0x546) { if m.Exists(0x546) {
c.sig.T547 = auth.CalcPow(m[0x546]) c.sig.T547 = auth.CalcPow(m[0x546])
} }
// c.logger.Info("login response %v", t)
if t == 0 { // login success if t == 0 { // login success
// if t150, ok := m[0x150]; ok { // if t150, ok := m[0x150]; ok {
// c.t150 = t150 // c.t150 = t150
@ -71,6 +72,7 @@ func decodeLoginResponse(c *QQClient, pkt *network.Packet) (any, error) {
if m.Exists(0x192) { if m.Exists(0x192) {
return LoginResponse{ return LoginResponse{
Success: false, Success: false,
Code: t,
VerifyUrl: string(m[0x192]), VerifyUrl: string(m[0x192]),
Error: SliderNeededError, Error: SliderNeededError,
}, nil }, nil
@ -82,6 +84,7 @@ func decodeLoginResponse(c *QQClient, pkt *network.Packet) (any, error) {
sign := imgData.ReadBytes(int(signLen)) sign := imgData.ReadBytes(int(signLen))
return LoginResponse{ return LoginResponse{
Success: false, Success: false,
Code: t,
Error: NeedCaptcha, Error: NeedCaptcha,
CaptchaImage: imgData.ReadAvailable(), CaptchaImage: imgData.ReadAvailable(),
CaptchaSign: sign, CaptchaSign: sign,
@ -89,6 +92,7 @@ func decodeLoginResponse(c *QQClient, pkt *network.Packet) (any, error) {
} else { } else {
return LoginResponse{ return LoginResponse{
Success: false, Success: false,
Code: t,
Error: UnknownLoginError, Error: UnknownLoginError,
}, nil }, nil
} }
@ -97,6 +101,7 @@ func decodeLoginResponse(c *QQClient, pkt *network.Packet) (any, error) {
if t == 40 { if t == 40 {
return LoginResponse{ return LoginResponse{
Success: false, Success: false,
Code: t,
ErrorMessage: "账号被冻结", ErrorMessage: "账号被冻结",
Error: UnknownLoginError, Error: UnknownLoginError,
}, nil }, nil
@ -115,6 +120,7 @@ func decodeLoginResponse(c *QQClient, pkt *network.Packet) (any, error) {
if t204, ok := m[0x204]; ok { // 同时支持扫码验证 ? if t204, ok := m[0x204]; ok { // 同时支持扫码验证 ?
return LoginResponse{ return LoginResponse{
Success: false, Success: false,
Code: t,
Error: SMSOrVerifyNeededError, Error: SMSOrVerifyNeededError,
VerifyUrl: string(t204), VerifyUrl: string(t204),
SMSPhone: phone, SMSPhone: phone,
@ -123,6 +129,7 @@ func decodeLoginResponse(c *QQClient, pkt *network.Packet) (any, error) {
} }
return LoginResponse{ return LoginResponse{
Success: false, Success: false,
Code: t,
Error: SMSNeededError, Error: SMSNeededError,
SMSPhone: phone, SMSPhone: phone,
ErrorMessage: string(m[0x17e]), ErrorMessage: string(m[0x17e]),
@ -133,6 +140,7 @@ func decodeLoginResponse(c *QQClient, pkt *network.Packet) (any, error) {
c.sig.T104 = m[0x104] c.sig.T104 = m[0x104]
return LoginResponse{ return LoginResponse{
Success: false, Success: false,
Code: t,
Error: SMSNeededError, Error: SMSNeededError,
}, nil }, nil
} }
@ -140,6 +148,7 @@ func decodeLoginResponse(c *QQClient, pkt *network.Packet) (any, error) {
if t204, ok := m[0x204]; ok { // 扫码验证 if t204, ok := m[0x204]; ok { // 扫码验证
return LoginResponse{ return LoginResponse{
Success: false, Success: false,
Code: t,
Error: UnsafeDeviceError, Error: UnsafeDeviceError,
VerifyUrl: string(t204), VerifyUrl: string(t204),
ErrorMessage: "", ErrorMessage: "",
@ -149,6 +158,7 @@ func decodeLoginResponse(c *QQClient, pkt *network.Packet) (any, error) {
if t == 162 { if t == 162 {
return LoginResponse{ return LoginResponse{
Code: t,
Error: TooManySMSRequestError, Error: TooManySMSRequestError,
}, nil }, nil
} }
@ -165,6 +175,7 @@ func decodeLoginResponse(c *QQClient, pkt *network.Packet) (any, error) {
t149r.ReadStringShort() // title t149r.ReadStringShort() // title
return LoginResponse{ return LoginResponse{
Success: false, Success: false,
Code: t,
Error: OtherLoginError, Error: OtherLoginError,
ErrorMessage: t149r.ReadStringShort(), ErrorMessage: t149r.ReadStringShort(),
}, nil }, nil
@ -176,6 +187,7 @@ func decodeLoginResponse(c *QQClient, pkt *network.Packet) (any, error) {
t146r.ReadStringShort() // title t146r.ReadStringShort() // title
return LoginResponse{ return LoginResponse{
Success: false, Success: false,
Code: t,
Error: OtherLoginError, Error: OtherLoginError,
ErrorMessage: t146r.ReadStringShort(), ErrorMessage: t146r.ReadStringShort(),
}, nil }, nil

View File

@ -27,6 +27,7 @@ type (
LoginResponse struct { LoginResponse struct {
Success bool Success bool
Code byte
Error LoginError Error LoginError
// Captcha info // Captcha info