"use strict"; const fs = require("fs"); const { deobfuscate } = require("../lib/obfuscate"); function decode(text) { return text.replace(/\[OBF\][A-Za-z0-9+/=]+/g, (match) => { return deobfuscate(match); }); } function decodeStdin() { const chunks = []; process.stdin.setEncoding("utf-8"); process.stdin.on("data", (chunk) => chunks.push(chunk)); process.stdin.on("end", () => { process.stdout.write(decode(chunks.join(""))); }); } function decodeFile(filePath) { const content = fs.readFileSync(filePath, "utf-8"); process.stdout.write(decode(content)); } if (process.argv.includes("--stdin")) { decodeStdin(); } else if (process.argv[2]) { decodeFile(process.argv[2]); } else { console.log("用法:"); console.log(" node tools/decode-log.js <日志文件> 解码日志文件"); console.log(" node tools/decode-log.js --stdin 解码标准输入"); console.log(""); console.log("密钥: JMS_LOG_KEY 环境变量 (未设置时使用默认值)"); }