From a1d7546d390af9fe2c3739e8eb5dd1eb7b306aa2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=85=8E=E9=A5=BC=E6=9E=9C=E5=AD=90=E5=8D=B7=E9=B2=A8?= =?UTF-8?q?=E9=B1=BC=E8=BE=A3=E6=A4=92?= Date: Wed, 14 Jan 2026 14:28:52 +0800 Subject: [PATCH] =?UTF-8?q?```=20feat(cursor):=20=E6=94=B9=E8=BF=9B?= =?UTF-8?q?=E6=9C=BA=E5=99=A8ID=E6=9B=BF=E6=8D=A2=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E5=B9=B6=E6=B7=BB=E5=8A=A0=E6=B3=A8=E5=85=A5=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 使用正则捕获组动态匹配函数名和参数名,避免硬编码 - 替换为动态引用捕获的函数名和参数名,提高代码灵活性 - 添加注入一致性校验机制,防止重复注入导致语法错误 - 检测__cursor_patched__标记数量,超过1个时抛出异常 ``` --- scripts/run/cursor_win_id_modifier.ps1 | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/scripts/run/cursor_win_id_modifier.ps1 b/scripts/run/cursor_win_id_modifier.ps1 index d751b40..b003d84 100644 --- a/scripts/run/cursor_win_id_modifier.ps1 +++ b/scripts/run/cursor_win_id_modifier.ps1 @@ -519,8 +519,8 @@ function Modify-CursorJSFiles { # 说明:b6(t) 是 machineId 的核心生成函数,t=true 返回原始值,t=false 返回哈希 if ((Split-Path $file -Leaf) -eq "main.js") { # 使用特征锚点定位(createHash("sha256") + return t?e:i),避免依赖函数名 - $b6Pattern = '(?s)async function \w+\(\w+\)\{.*?createHash\("sha256"\).*?return \w+\?\w+:\w+\}' - $b6Replacement = "async function b6(t){return t?'$machineGuid':'$machineId';}" + $b6Pattern = '(?s)async function (\w+)\((\w+)\)\{.*?createHash\("sha256"\).*?return \w+\?\w+:\w+\}' + $b6Replacement = "async function `$1(`$2){return `$2?'$machineGuid':'$machineId';}" $b6Regex = [regex]::new($b6Pattern) if ($b6Regex.IsMatch($content)) { $content = $b6Regex.Replace($content, $b6Replacement, 1) @@ -575,6 +575,12 @@ try { Write-Host " $GREEN✓$NC [方案C] Loader Stub 已注入(文件开头)" } + # 注入一致性校验:避免重复注入导致语法损坏 + $patchedCount = ([regex]::Matches($content, "__cursor_patched__")).Count + if ($patchedCount -gt 1) { + throw "检测到重复注入标记:$patchedCount" + } + # 写入修改后的内容 Set-Content -Path $file -Value $content -Encoding UTF8 -NoNewline