44 lines
1.6 KiB
JavaScript
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));
|