漏扫 js 里面包含一些敏感内容 利用二进制加密 保持原始内容不变 又能过漏扫
找了半天 加密解密的 js 发现要么加过头了 要么加密不符合我的要求
很多漏扫的内容 比如包含ip 域名的都不会加密
下面最简单的办法 转换成二进制 通过解密二进制执行 这样就可以了 非常完美
兄弟们 对你有帮助的话 点赞关注评论啊!!!
#!/usr/bin/env nodeconst fs = require('fs');
const path = require('path');/*** 将输入文件转换为Uint8Array格式,生成包含自解码逻辑的输出文件* @param {string} inputFilePath - 输入文件路径* @param {string} outputFilePath - 输出文件路径*/
function encodeFile(inputFilePath, outputFilePath) {try {// 读取输入文件内容为二进制Bufferconsole.log(`正在读取文件: ${inputFilePath}`);const buffer = fs.readFileSync(inputFilePath);// 将Buffer转换为Uint8Array数组的JavaScript表示// 这里将二进制数据转换为数组字面量字符串(如[10, 20, 30, ...])console.log('正在进行二进制转换...');const uint8ArrayStr = `[${Array.from(buffer).join(', ')}]`;// 创建包含自解码逻辑的输出内容const outputContent = `(function() {const binaryData = ${uint8ArrayStr};function decodeAndExecute() {try {const uint8Array = new Uint8Array(binaryData);const decoder = new TextDecoder();const originalCode = decoder.decode(uint8Array);eval(originalCode);} catch (err) {console.error('', err);}}decodeAndExecute();
})();`;// 确保输出目录存在const outputDir = path.dirname(outputFilePath);if (!fs.existsSync(outputDir)) {fs.mkdirSync(outputDir, { recursive: true });}// 写入输出文件fs.writeFileSync(outputFilePath, outputContent, 'utf8');console.log(`转换完成,输出文件: ${outputFilePath}`);} catch (error) {console.error('处理文件时出错:', error.message);process.exit(1);}
}// 处理命令行参数
const inputPath = "./要加密的.js";
const outputPath = "./已加密的.js";// 执行转换
encodeFile(inputPath, outputPath);
执行方式很简单 直接 node xxx.js 即可
这里为 要加密的js 路径 最好放统一文件夹即可