From c51779039197cdd988fe2dd341bb306f7135912d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?= Date: Sun, 13 Oct 2024 10:10:12 +0800 Subject: [PATCH] fix: oidb --- src/core/apis/packet.ts | 23 +++++++++++++++++++---- src/core/proto/oidb/Oidb.0x9067_202.ts | 7 +++++-- src/core/proto/oidb/Oidb.fe1_2.ts | 2 +- 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/src/core/apis/packet.ts b/src/core/apis/packet.ts index e326aa87..9e75f55f 100644 --- a/src/core/apis/packet.ts +++ b/src/core/apis/packet.ts @@ -6,6 +6,7 @@ import { PacketClient } from '../helper/packet'; import { NapProtoMsg } from '../proto/NapProto'; import { OidbSvcTrpcTcp0X9067_202 } from '../proto/oidb/Oidb.0x9067_202'; import { OidbSvcTrpcTcpBase } from '../proto/oidb/OidbBase'; +import { OidbSvcTrpcTcp0XFE1_2 } from '../proto/oidb/Oidb.fe1_2'; interface OffsetType { [key: string]: { @@ -68,7 +69,7 @@ export class NTQQPacketApi { }).then((res) => resolve(res)).catch((e) => reject(e)); }); } - async sendRkeyPacket() { + async buildRkeyPacket() { let oidb_0x9067_202 = new NapProtoMsg(OidbSvcTrpcTcp0X9067_202).encode({ reqHead: { common: { @@ -84,13 +85,27 @@ export class NTQQPacketApi { agentType: 2 } }, - downloadRKeyReq: Buffer.from('080a08140802', 'hex'), + downloadRKeyReq: [10, 20, 2], }); let oidb_packet = new NapProtoMsg(OidbSvcTrpcTcpBase).encode({ command: 0x9067, subCommand: 202, - body: oidb_0x9067_202 + body: oidb_0x9067_202, + isReserved: 1 }); - return oidb_0x9067_202; + return oidb_packet; + } + async buildStatusPacket(uin: number) { + let oidb_0xfe1_2 = new NapProtoMsg(OidbSvcTrpcTcp0XFE1_2).encode({ + uin: uin, + key: [27327] + }) + let oidb_packet = new NapProtoMsg(OidbSvcTrpcTcpBase).encode({ + command: 0xfe1, + subCommand: 2, + body: oidb_0xfe1_2, + isReserved: 1 + }); + return oidb_packet; } } \ No newline at end of file diff --git a/src/core/proto/oidb/Oidb.0x9067_202.ts b/src/core/proto/oidb/Oidb.0x9067_202.ts index 0b9d7718..870fc363 100644 --- a/src/core/proto/oidb/Oidb.0x9067_202.ts +++ b/src/core/proto/oidb/Oidb.0x9067_202.ts @@ -4,5 +4,8 @@ import { MultiMediaReqHead } from "./common/Ntv2.RichMedia"; export const OidbSvcTrpcTcp0X9067_202 = { ReqHead: ProtoField(1, () => MultiMediaReqHead), - DownloadRKeyReq: ProtoField(4, ScalarType.BYTES), -} \ No newline at end of file + DownloadRKeyReq: ProtoField(4, () => OidbSvcTrpcTcp0X9067_202Key, true, false), +} +export const OidbSvcTrpcTcp0X9067_202Key = { + key: ProtoField(1, ScalarType.UINT32) +} diff --git a/src/core/proto/oidb/Oidb.fe1_2.ts b/src/core/proto/oidb/Oidb.fe1_2.ts index ee05eedd..3e01df8e 100644 --- a/src/core/proto/oidb/Oidb.fe1_2.ts +++ b/src/core/proto/oidb/Oidb.fe1_2.ts @@ -3,7 +3,7 @@ import {ProtoField} from "../NapProto"; export const OidbSvcTrpcTcp0XFE1_2 = { uid: ProtoField(1, ScalarType.STRING, true), - field2: ProtoField(2, ScalarType.UINT32), + uin: ProtoField(2, ScalarType.UINT32), key: ProtoField(3, () => OidbSvcTrpcTcp0XFE1_2Key, false, true), }