Files
cursornew2026/check_all_files.js

44 lines
1.6 KiB
JavaScript

/**
* 检查所有核心 JS 文件状态
*/
const fs = require('fs');
const files = [
'deobfuscated_full/extension/out/api/client.js',
'deobfuscated_full/extension/out/extension.js',
'deobfuscated_full/extension/out/utils/account.js',
'deobfuscated_full/extension/out/utils/sqlite.js',
'deobfuscated_full/extension/out/webview/provider.js'
];
console.log('='.repeat(60));
console.log(' Extension 核心文件检查');
console.log('='.repeat(60));
files.forEach(file => {
try {
const code = fs.readFileSync(file, 'utf8');
const size = (code.length / 1024).toFixed(2);
const lines = code.split('\n').length;
// 检查混淆特征
const oxVars = (code.match(/_0x[a-f0-9]+/gi) || []).length;
const unicode = (code.match(/\\u[0-9a-fA-F]{4}/g) || []).length;
const encrypted = (code.match(/_0x[a-f0-9]+\s*\(\s*['"]0x/gi) || []).length;
const chinese = (code.match(/[\u4e00-\u9fff]/g) || []).length;
const isClean = oxVars === 0 && encrypted === 0;
const status = isClean ? '✅ 已清洗' : '❌ 需处理';
const fileName = file.split('/').pop();
console.log('\n' + '📄 ' + fileName);
console.log(' 状态: ' + status);
console.log(' 大小: ' + size + ' KB | 行数: ' + lines);
console.log(' _0x变量: ' + oxVars + ' | Unicode: ' + unicode + ' | 加密调用: ' + encrypted + ' | 中文: ' + chinese);
} catch (e) {
console.log('\n📄 ' + file + ': ❌ 读取失败 - ' + e.message);
}
});
console.log('\n' + '='.repeat(60));