Skip to content

Commit c25747c

Browse files
committed
[Core] Exposed SendPacket ability to public scope
1 parent 7cf9b1b commit c25747c

41 files changed

Lines changed: 291 additions & 143 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Lagrange.Core/BotContext.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
using Lagrange.Core.Events;
44
using Lagrange.Core.Events.EventArgs;
55
using Lagrange.Core.Internal.Context;
6-
using Lagrange.Core.Message;
76

87
namespace Lagrange.Core;
98

Lagrange.Core/Common/AndroidBotSignProvider.cs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,9 @@ internal class DefaultAndroidBotSignProvider : AndroidBotSignProvider, IDisposab
5757
"trpc.login.ecdh.EcdhService.SsoQRLoginGenQr", "OidbSvcTrpcTcp.0xf59_2", "OidbSvc.0x592_10",
5858
"OidbSvcTrpcTcp.0xfe7_3", "OidbSvc.0x592_18", "OidbSvc.0x88d_0", "trpc.qpay.red_pack_skin.Skin.SsoAddSkin",
5959
"MsgProxy.SendMsg", "OidbSvcTrpcTcp.0x899_1", "trpc.lplan.user_manager_svr.User.SsoSetProfile",
60-
"trpc.login.ecdh.EcdhService.SsoNTLoginPasswordLoginUnusualDevice",
60+
"trpc.login.ecdh.EcdhService.SsoKeyExchange", "trpc.login.ecdh.EcdhService.SsoNTLoginPasswordLogin",
61+
"trpc.login.ecdh.EcdhService.SsoNTLoginEasyLogin", "trpc.login.ecdh.EcdhService.SsoNTLoginPasswordLoginNewDevice",
62+
"trpc.login.ecdh.EcdhService.SsoNTLoginEasyLoginUnusualDevice", "trpc.login.ecdh.EcdhService.SsoNTLoginPasswordLoginUnusualDevice",
6163
"QChannelSvr.trpc.qchannel.commwriter.ComWriter.DoReply", "OidbSvc.0x5eb_43",
6264
"trpc.passwd.manager.PasswdManager.VerifyPasswd", "OidbSvc.0xb3c_update_5", "OidbSvc.0x592_17",
6365
"trpc.login.ecdh.EcdhService.SsoQRLoginScanQr", "FeedCloudSvr.trpc.feedcloud.commwriter.ComWriter.DoLike",
@@ -169,7 +171,8 @@ internal class DefaultAndroidBotSignProvider : AndroidBotSignProvider, IDisposab
169171
["seq"] = seq,
170172
["buffer"] = Convert.ToHexString(body.Span),
171173
["guid"] = Convert.ToHexString(Context.Keystore.Guid),
172-
["version"] = Context.AppInfo.PtVersion
174+
["version"] = Context.AppInfo.PtVersion,
175+
["qua"] = "V1_AND_SQ_9.2.20_11650_YYB_D"
173176
};
174177

175178
var response = await _client.PostAsync($"{_url}/sign", new StringContent(payload.ToJsonString(), Encoding.UTF8, "application/json"));
@@ -202,7 +205,8 @@ public override async Task<byte[]> GetEnergy(long uin, string data)
202205
["data"] = data,
203206
["guid"] = Convert.ToHexString(Context.Keystore.Guid),
204207
["ver"] = Context.AppInfo.SdkInfo.SdkVersion,
205-
["version"] = Context.AppInfo.PtVersion
208+
["version"] = Context.AppInfo.PtVersion,
209+
["qua"] = "V1_AND_SQ_9.2.20_11650_YYB_D"
206210
};
207211

208212
var response = await _client.PostAsync($"{_url}/energy", new StringContent(payload.ToJsonString(), Encoding.UTF8, "application/json"));
@@ -227,7 +231,8 @@ public override async Task<byte[]> GetDebugXwid(long uin, string data)
227231
["uin"] = uin,
228232
["data"] = data,
229233
["guid"] = Convert.ToHexString(Context.Keystore.Guid),
230-
["version"] = Context.AppInfo.PtVersion
234+
["version"] = Context.AppInfo.PtVersion,
235+
["qua"] = "V1_AND_SQ_9.2.20_11650_YYB_D"
231236
};
232237

233238
var response = await _client.PostAsync($"{_url}/get_tlv553", new StringContent(payload.ToJsonString(), Encoding.UTF8, "application/json"));

Lagrange.Core/Common/BotAppInfo.cs

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,11 @@ public class BotAppInfo
77
public string Os { get; init; }
88

99
public string VendorOs { get; init; }
10-
11-
public string Kernel { get; init; }
1210

11+
public string Kernel { get; init; } = "";
12+
13+
public string Qua { get; init; }
14+
1315
public string CurrentVersion { get; init; }
1416

1517
public string PtVersion { get; init; }
@@ -120,18 +122,19 @@ public class BotAppInfo
120122

121123
private static readonly BotAppInfo AndroidPad = new()
122124
{
123-
Os = "Android",
124-
CurrentVersion = "9.1.60.045f5d19",
125-
PtVersion = "9.1.60",
125+
Os = "ANDROID",
126+
CurrentVersion = "9.2.20.777b5929",
127+
PtVersion = "9.2.20",
128+
Qua = "V1_AND_SQ_9.2.20_11650_YYB_D",
126129
AppId = 16,
127-
SubAppId = 537275675,
130+
SubAppId = 537315825,
128131
SsoVersion = 22,
129132
PackageName = "com.tencent.mobileqq",
130133
ApkSignatureMd5 = [0xA6, 0xB7, 0x45, 0xBF, 0x24, 0xA2, 0xC2, 0x77, 0x52, 0x77, 0x16, 0xF6, 0xF3, 0x6E, 0xB6, 0x8D],
131134
SdkInfo = new WtLoginSdkInfo
132135
{
133-
SdkBuildTime = 1740483688,
134-
SdkVersion = "6.0.0.2568",
136+
SdkBuildTime = 1757058014,
137+
SdkVersion = "6.0.0.2589",
135138
MiscBitMap = 150470524,
136139
SubSigMap = 66560,
137140
MainSigMap = Sig.WLOGIN_A5 | Sig.WLOGIN_RESERVED | Sig.WLOGIN_STWEB | Sig.WLOGIN_A2 | Sig.WLOGIN_ST | Sig.WLOGIN_LSKEY | Sig.WLOGIN_SKEY | Sig.WLOGIN_SIG64 | Sig.WLOGIN_VKEY | Sig.WLOGIN_D2 | Sig.WLOGIN_SID | Sig.WLOGIN_PSKEY | Sig.WLOGIN_AQSIG | Sig.WLOGIN_LHSIG | Sig.WLOGIN_PAYTOKEN | (Sig)65536

Lagrange.Core/Common/BotInfo.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
using System.Text.Json.Serialization;
2-
31
namespace Lagrange.Core.Common;
42

53
[Serializable]

Lagrange.Core/Common/BotSignProvider.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
using System.Diagnostics;
2-
using System.Text;
1+
using System.Text;
32
using System.Text.Json.Nodes;
43
using System.Text.Json.Serialization;
54
using Lagrange.Core.Utility;
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
namespace Lagrange.Core.Common.Entity;
2+
3+
public class BotSsoPacket
4+
{
5+
public ReadOnlyMemory<byte> Data { get; }
6+
7+
public string Command { get; }
8+
9+
public string Extra { get; }
10+
11+
public int RetCode { get; }
12+
13+
public int Sequence { get; }
14+
15+
/// <summary>
16+
/// Constructs a new SSO packet with the specified command and data.
17+
/// </summary>
18+
public BotSsoPacket(string command, ReadOnlyMemory<byte> data) : this(command, 0, 0, string.Empty) => Data = data;
19+
20+
internal BotSsoPacket(string command, ReadOnlyMemory<byte> data, int sequence) : this(command, sequence, 0, string.Empty) => Data = data;
21+
22+
internal BotSsoPacket(string command, int sequence, int retCode, string extra)
23+
{
24+
Command = command;
25+
Extra = extra;
26+
RetCode = retCode;
27+
Sequence = sequence;
28+
}
29+
}
30+
31+
public enum EncryptType : byte
32+
{
33+
NoEncrypt = 0x00,
34+
EncryptD2Key = 0x01,
35+
EncryptEmpty = 0x02,
36+
}
37+
38+
public enum RequestType
39+
{
40+
D2Auth = 0x0C,
41+
Simple = 0x0D,
42+
}

Lagrange.Core/Common/Interface/BotExt.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using Lagrange.Core.Internal.Logic;
1+
using Lagrange.Core.Common.Entity;
2+
using Lagrange.Core.Internal.Logic;
23

34
namespace Lagrange.Core.Common.Interface;
45

@@ -21,4 +22,7 @@ public static bool SubmitCaptcha(this BotContext context, string ticket, string
2122

2223
public static bool SubmitSMSCode(this BotContext context, string code) =>
2324
context.EventContext.GetLogic<WtExchangeLogic>().SubmitSMSCode(code);
25+
26+
public static ValueTask<BotSsoPacket> SendPacket(this BotContext context, BotSsoPacket packet)
27+
=> context.EventContext.GetLogic<OperationLogic>().SendPacket(packet);
2428
}

Lagrange.Core/Internal/Context/CacheContext.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
using System.Collections.Concurrent;
2-
using System.Threading.Tasks;
32
using Lagrange.Core.Common.Entity;
43
using Lagrange.Core.Internal.Events.System;
54

Lagrange.Core/Internal/Context/EventContext.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
using System.Collections.Frozen;
2-
using System.Diagnostics;
32
using System.Diagnostics.CodeAnalysis;
43
using System.Reflection;
4+
using Lagrange.Core.Common.Entity;
55
using Lagrange.Core.Events;
66
using Lagrange.Core.Exceptions;
77
using Lagrange.Core.Internal.Events;
88
using Lagrange.Core.Internal.Logic;
9-
using Lagrange.Core.Internal.Packets.Struct;
109
using Lagrange.Core.Utility.Extension;
1110

1211
namespace Lagrange.Core.Internal.Context;
@@ -133,7 +132,7 @@ public async ValueTask HandleOutgoingEvent(EventBase @event)
133132
}
134133
}
135134

136-
public async Task HandleServerPacket(SsoPacket packet)
135+
public async Task HandleServerPacket(BotSsoPacket packet)
137136
{
138137
try
139138
{

Lagrange.Core/Internal/Context/PacketContext.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System.Collections.Concurrent;
22
using Lagrange.Core.Common;
3+
using Lagrange.Core.Common.Entity;
34
using Lagrange.Core.Internal.Packets.Struct;
45
using Lagrange.Core.Internal.Services;
56

@@ -34,7 +35,7 @@ public PacketContext(BotContext context)
3435
SignProvider.Context = context; // Initialize the sign provider with the context
3536
}
3637

37-
public ValueTask<SsoPacket> SendPacket(SsoPacket packet, ServiceAttribute options)
38+
public ValueTask<BotSsoPacket> SendPacket(BotSsoPacket packet, ServiceAttribute options)
3839
{
3940
var tcs = new SsoPacketValueTaskSource();
4041
_pendingTasks.TryAdd(packet.Sequence, tcs);
@@ -76,7 +77,7 @@ public ValueTask<SsoPacket> SendPacket(SsoPacket packet, ServiceAttribute option
7677
await _context.SocketContext.Send(frame);
7778
});
7879

79-
return new ValueTask<SsoPacket>(tcs, 0);
80+
return new ValueTask<BotSsoPacket>(tcs, 0);
8081
}
8182

8283
public void DispatchPacket(ReadOnlySpan<byte> buffer)

0 commit comments

Comments
 (0)