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), }