56 lines
1.4 KiB
JavaScript
56 lines
1.4 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 = {
|
|
// 模块辅助
|
|
'var7': 'getOwnPropNames',
|
|
'var9': 'propKey',
|
|
|
|
// 循环/遍历变量
|
|
'v97': 'lineItem',
|
|
'v416': 'subDir',
|
|
'v424': 'subItem',
|
|
'v404': 'fileItem',
|
|
'v396': 'dirEntry',
|
|
'v409': 'childPath',
|
|
'v513': 'appDir',
|
|
'v528': 'subPath',
|
|
|
|
// 路径变量
|
|
'var167': 'dbPath',
|
|
'var189': 'storagePath',
|
|
'var201': 'machineIdPath',
|
|
'var383': 'cursorDbPath',
|
|
'var627': 'backupDir',
|
|
'var623': 'originalCode',
|
|
'var675': 'modifiedCode',
|
|
'var582': 'seamlessPath',
|
|
'var723': 'workbenchContent',
|
|
'var794': 'newContent',
|
|
|
|
// 其他
|
|
'var605': 'resourcePath',
|
|
};
|
|
|
|
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} 个`);
|