From 766d5ed2af2786b72b9e4b55e437dc6daef519ca Mon Sep 17 00:00:00 2001 From: hicccc77 <98377878+hicccc77@users.noreply.github.com> Date: Sat, 7 Mar 2026 15:11:57 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9A=E6=89=AB=E5=86=85?= =?UTF-8?q?=E5=AD=98=E8=8E=B7=E5=8F=96=E5=9B=BE=E7=89=87=E5=AF=86=E9=92=A5?= =?UTF-8?q?=E6=97=B6=20XOR=20=E5=AF=86=E9=92=A5=E4=B8=BA=E7=A9=BA=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E4=B8=BA=200=20=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 当无法从模板文件计算出有效的 XOR 密钥时,返回错误而不是默认为 0x00 - 提前检查 XOR 密钥是否为 null,避免后续使用错误的密钥 - 修复 #355 --- electron/services/keyService.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/electron/services/keyService.ts b/electron/services/keyService.ts index 376f7ec..fe6e9bf 100644 --- a/electron/services/keyService.ts +++ b/electron/services/keyService.ts @@ -812,8 +812,9 @@ export class KeyService { onProgress?.('正在查找模板文件...') const { ciphertext, xorKey } = await this._findTemplateData(userDir) if (!ciphertext) return { success: false, error: '未找到 V2 模板文件,请先在微信中查看几张图片' } + if (xorKey === null) return { success: false, error: '未能从模板文件中计算出有效的 XOR 密钥,请确保在微信中查看了多张不同的图片' } - onProgress?.(`XOR 密钥: 0x${(xorKey ?? 0).toString(16).padStart(2, '0')},正在查找微信进程...`) + onProgress?.(`XOR 密钥: 0x${xorKey.toString(16).padStart(2, '0')},正在查找微信进程...`) // 2. 找微信 PID const pid = await this.findWeChatPid() @@ -830,7 +831,7 @@ export class KeyService { const aesKey = await this._scanMemoryForAesKey(pid, ciphertext, onProgress) if (aesKey) { onProgress?.('密钥获取成功') - return { success: true, xorKey: xorKey ?? 0, aesKey } + return { success: true, xorKey, aesKey } } // 等 5 秒再试 await new Promise(r => setTimeout(r, 5000))