79 lines
2.0 KiB
JavaScript
79 lines
2.0 KiB
JavaScript
/**
|
||
* 最后一轮清理
|
||
*/
|
||
const fs = require('fs');
|
||
|
||
const inputPath = 'D:/temp/破解/cursorpro-0.4.5/deobfuscated_full/extension/out/webview/provider.js';
|
||
let code = fs.readFileSync(inputPath, 'utf8');
|
||
|
||
const replacements = {
|
||
// 常见模式
|
||
'var295': 'usageData',
|
||
'var261': 'accountInfo',
|
||
'var249': 'tokenData',
|
||
'var443': 'switchInfo',
|
||
'var428': 'statusInfo',
|
||
'var521': 'checkResult',
|
||
'var581': 'versionInfo',
|
||
|
||
// 循环变量
|
||
'v98': 'lineIdx',
|
||
'v96': 'charIdx',
|
||
'v82': 'strIdx',
|
||
'v414': 'pathItem',
|
||
'v636': 'codeItem',
|
||
'v684': 'lineContent',
|
||
|
||
// 参数
|
||
'arg395': 'lineStr',
|
||
'arg259': 'dataArg',
|
||
'arg257': 'cbArg',
|
||
|
||
// 其他
|
||
'var95': 'hostLine',
|
||
'var90': 'hostEntry',
|
||
'var733': 'restoreCode',
|
||
'var724': 'patchContent',
|
||
|
||
// 所有剩余的 v 开头的(通常是解构或catch变量)
|
||
'v600': 'tmpErr',
|
||
'v625': 'tmpErr2',
|
||
'v645': 'tmpErr3',
|
||
'v653': 'tmpErr4',
|
||
'v660': 'tmpErr5',
|
||
'v670': 'tmpErr6',
|
||
'v702': 'tmpErr7',
|
||
'v720': 'tmpErr8',
|
||
'v735': 'tmpErr9',
|
||
'v745': 'tmpErr10',
|
||
'v752': 'tmpErr11',
|
||
'v761': 'tmpErr12',
|
||
'v767': 'tmpErr13',
|
||
};
|
||
|
||
let count = 0;
|
||
for (const [oldName, newName] of Object.entries(replacements)) {
|
||
const regex = new RegExp('\\b' + oldName + '\\b', 'g');
|
||
const matches = code.match(regex);
|
||
if (matches) {
|
||
code = code.replace(regex, newName);
|
||
console.log(`${oldName} -> ${newName} (${matches.length})`);
|
||
count++;
|
||
}
|
||
}
|
||
|
||
fs.writeFileSync(inputPath, code);
|
||
console.log(`\n替换了 ${count} 个`);
|
||
|
||
const remaining = [...new Set((code.match(/\b(var|arg|v)\d+\b/g) || []))];
|
||
console.log(`剩余: ${remaining.length} 个`);
|
||
|
||
// 显示剩余的
|
||
if (remaining.length <= 80) {
|
||
console.log('\n剩余变量详情:');
|
||
remaining.sort().forEach(v => {
|
||
const cnt = (code.match(new RegExp('\\b' + v + '\\b', 'g')) || []).length;
|
||
console.log(` ${v} (${cnt}次)`);
|
||
});
|
||
}
|