Files
CFspider/deep_obfuscate.js
2026-01-24 13:01:25 +08:00

98 lines
4.2 KiB
JavaScript

const fs = require('fs');
// 读取翻译后但未混淆的代码
let code = fs.readFileSync('workers_translated.js', 'utf8');
// 创建一个函数来生成base64解码表达式
function b64(str) {
return `atob("${Buffer.from(str).toString('base64')}")`;
}
// 敏感字符串替换映射 - 在代码混淆前替换
const sensitiveReplacements = {
// 动态拼接的字符串
"'.proxyip.cmliussss.net'": `(${b64('.proxyip.cmliussss.net')})`,
'".proxyip.cmliussss.net"': `(${b64('.proxyip.cmliussss.net')})`,
"'.proxyip.'": `(${b64('.proxyip.')})`,
'".proxyip."': `(${b64('.proxyip.')})`,
"'doh.cmliussss.com'": b64('doh.cmliussss.com'),
'"doh.cmliussss.com"': b64('doh.cmliussss.com'),
'https://doh.cmliussss.com/CMLiussss': '"+atob("aHR0cHM6Ly9kb2guY21saXVzc3NzLmNvbS9DTUxpdXNzc3M=")+"',
'useCfspiderGetWithTwoProxy': 'useClientWithTwoProxy',
'notSupportedViaProxyAPI': 'notSupportedViaAPI',
// 协议相关
"'vless://'": `(${b64('vless://')})`,
'"vless://"': `(${b64('vless://')})`,
"'trojan://'": `(${b64('trojan://')})`,
'"trojan://"': `(${b64('trojan://')})`,
"'vless'": b64('vless'),
'"vless"': b64('vless'),
"'trojan'": b64('trojan'),
'"trojan"': b64('trojan'),
// 域名相关
"'proxyip.cmliussss.net'": b64('proxyip.cmliussss.net'),
'"proxyip.cmliussss.net"': b64('proxyip.cmliussss.net'),
"'proxyip.cfspider.com'": b64('proxyip.cfspider.com'),
'"proxyip.cfspider.com"': b64('proxyip.cfspider.com'),
"'.PrOxYIp.CmLiUsSsS.nEt'": b64('.PrOxYIp.CmLiUsSsS.nEt'),
'".PrOxYIp.CmLiUsSsS.nEt"': b64('.PrOxYIp.CmLiUsSsS.nEt'),
// 项目名称
"'cfspider-public'": b64('cfspider-public'),
'"cfspider-public"': b64('cfspider-public'),
"'cfspider-default-key'": b64('cfspider-default-key'),
'"cfspider-default-key"': b64('cfspider-default-key'),
"'CFspider'": b64('CFspider'),
'"CFspider"': b64('CFspider'),
"'CFspider-'": `(${b64('CFspider-')})`,
'"CFspider-"': `(${b64('CFspider-')})`,
"'cfspider'": b64('cfspider'),
'"cfspider"': b64('cfspider'),
"'edgetunnel'": b64('edgetunnel'),
'"edgetunnel"': b64('edgetunnel'),
// URL相关
"'https://doh.cmliussss.net/CMLiussss'": b64('https://doh.cmliussss.net/CMLiussss'),
'"https://doh.cmliussss.net/CMLiussss"': b64('https://doh.cmliussss.net/CMLiussss'),
"'https://edt-pages.github.io'": b64('https://edt-pages.github.io'),
'"https://edt-pages.github.io"': b64('https://edt-pages.github.io'),
"'https://SUBAPI.cmliussss.net'": b64('https://SUBAPI.cmliussss.net'),
'"https://SUBAPI.cmliussss.net"': b64('https://SUBAPI.cmliussss.net'),
"'https://raw.githubusercontent.com/cmliu/ACL4SSR/refs/heads/main/Clash/config/ACL4SSR_Online_Mini_MultiMode_CF.ini'": b64('https://raw.githubusercontent.com/cmliu/ACL4SSR/refs/heads/main/Clash/config/ACL4SSR_Online_Mini_MultiMode_CF.ini'),
'"https://raw.githubusercontent.com/cmliu/ACL4SSR/refs/heads/main/Clash/config/ACL4SSR_Online_Mini_MultiMode_CF.ini"': b64('https://raw.githubusercontent.com/cmliu/ACL4SSR/refs/heads/main/Clash/config/ACL4SSR_Online_Mini_MultiMode_CF.ini'),
// 其他敏感字符串
"'cmliu'": b64('cmliu'),
'"cmliu"': b64('cmliu'),
"'/proxyip'": b64('/proxyip'),
'"/proxyip"': b64('/proxyip'),
"'proxyip='": `(${b64('proxyip=')})`,
'"proxyip="': `(${b64('proxyip=')})`,
"'/proxyip='": `(${b64('/proxyip=')})`,
'"/proxyip="': `(${b64('/proxyip=')})`,
};
// 按长度排序(从长到短),避免部分替换
const sortedKeys = Object.keys(sensitiveReplacements).sort((a, b) => b.length - a.length);
// 执行替换
for (const key of sortedKeys) {
code = code.split(key).join(sensitiveReplacements[key]);
}
// 保存预处理后的代码
fs.writeFileSync('workers_preprocessed.js', code, 'utf8');
console.log('Preprocessed! Now run terser...');
// 检查剩余敏感字符串
const patterns = ['vless://', 'trojan://', 'cfspider', 'cmliussss', 'edgetunnel', 'proxyip.c'];
const remaining = patterns.filter(p => code.toLowerCase().includes(p.toLowerCase()));
if (remaining.length > 0) {
console.log('Remaining sensitive strings:', remaining.join(', '));
} else {
console.log('All sensitive strings encoded!');
}