Browse Source

```

fix(cursor): 修复Linux和Mac脚本中正则表达式转义问题

修复了cursor_linux_id_modifier.sh和cursor_mac_id_modifier.sh脚本中的正则表达式转义问题,
解决了raw单引号字符串中的\'引发的语法错误,并纠正正则转义以匹配实际main.js代码结构,
使Linux和Windows脚本逻辑保持一致。更新了createHash和digest函数的正则匹配模式,
以及return语句的匹配逻辑。
```
master
煎饼果子卷鲨鱼辣椒 2 weeks ago
parent
commit
b0ce1db683
  1. 9
      scripts/run/cursor_linux_id_modifier.sh
  2. 9
      scripts/run/cursor_mac_id_modifier.sh

9
scripts/run/cursor_linux_id_modifier.sh

@ -1275,8 +1275,9 @@ if True:
i += 1
return None
hash_re = re.compile(r'createHash\\([\"\\']sha256[\"\\']\\)')
sig_re = re.compile(r'^async function (\\w+)\\((\\w+)\\)')
# 修复:避免 raw 单引号字符串中的 \\' 引发语法错误;并纠正正则转义以匹配实际 main.js 代码结构(与 Win 脚本逻辑对齐)
hash_re = re.compile(r"createHash\(\s*['\"]sha256['\"]\s*\)")
sig_re = re.compile(r'^async function (\w+)\((\w+)\)')
hash_matches = list(hash_re.finditer(window))
diag(f"marker_index={marker_index} window_len={len(window)} sha256_createHash={len(hash_matches)}")
@ -1315,8 +1316,8 @@ if True:
name, param = sm.group(1), sm.group(2)
# 特征校验:sha256 + hex digest + return param ? raw : hash
has_digest = re.search(r'\\.digest\\([\"\\']hex[\"\\']\\)', func_text) is not None
has_return = re.search(r'return\\s+' + re.escape(param) + r'\\?\\w+:\\w+\\}', func_text) is not None
has_digest = re.search(r"\.digest\(\s*['\"]hex['\"]\s*\)", func_text) is not None
has_return = re.search(r'return\s+' + re.escape(param) + r'\?\w+:\w+\}', func_text) is not None
if idx <= 3:
diag(f"候选#{idx}: {name}({param}) len={len(func_text)} digest={has_digest} return={has_return}")
if not has_digest:

9
scripts/run/cursor_mac_id_modifier.sh

@ -2002,8 +2002,9 @@ if True:
i += 1
return None
hash_re = re.compile(r'createHash\\([\"\\']sha256[\"\\']\\)')
sig_re = re.compile(r'^async function (\\w+)\\((\\w+)\\)')
# 修复:避免 raw 单引号字符串中的 \\' 引发语法错误;并纠正正则转义以匹配实际 main.js 代码结构(与 Win 脚本逻辑对齐)
hash_re = re.compile(r"createHash\(\s*['\"]sha256['\"]\s*\)")
sig_re = re.compile(r'^async function (\w+)\((\w+)\)')
hash_matches = list(hash_re.finditer(window))
diag(f"marker_index={marker_index} window_len={len(window)} sha256_createHash={len(hash_matches)}")
@ -2042,8 +2043,8 @@ if True:
name, param = sm.group(1), sm.group(2)
# 特征校验:sha256 + hex digest + return param ? raw : hash
has_digest = re.search(r'\\.digest\\([\"\\']hex[\"\\']\\)', func_text) is not None
has_return = re.search(r'return\\s+' + re.escape(param) + r'\\?\\w+:\\w+\\}', func_text) is not None
has_digest = re.search(r"\.digest\(\s*['\"]hex['\"]\s*\)", func_text) is not None
has_return = re.search(r'return\s+' + re.escape(param) + r'\?\w+:\w+\}', func_text) is not None
if idx <= 3:
diag(f"候选#{idx}: {name}({param}) len={len(func_text)} digest={has_digest} return={has_return}")
if not has_digest:

Loading…
Cancel
Save