You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将修改后的二级混淆JS代码转为第一级的十六进制字符串变量b

实现步骤

步骤1:提取第二级原始可执行代码

你直接粘贴第二级代码报错是因为你看到的仅为混淆后的字面量,缺少配套的解码执行上下文。你可以先修改第一级代码,直接输出解码后的内容到控制台,不执行eval即可拿到完整明文:

var b = "你原有的完整b变量十六进制字符串";
var z = "";
for (var i = 0; i < b.length; i += 2) {
    z += String.fromCharCode(parseInt(b.substring(i, i + 2), 16));
}
// 直接输出明文不执行
console.log(z);

把这段代码放到控制台运行,就能拿到完整的、可直接修改的第二级混淆代码明文。

步骤2:添加调试语句

拿到上一步输出的z的内容后,在你需要调试的位置插入console.log语句即可,比如要打印某个变量值,就加console.log('调试变量xxx:', xxx),修改完成后复制整段代码备用。

步骤3:将修改后的代码编码为十六进制字符串

用以下编码函数把修改后的代码转成和原b变量格式一致的十六进制串:

function strToHex(str) {
  let hex = '';
  for(let i=0; i<str.length; i++) {
    // 每个字符转两位十六进制,不足补前导0
    hex += str.charCodeAt(i).toString(16).padStart(2, '0');
  }
  return hex;
}

// 把你修改完成的第二级完整代码放在模板字符串里传入
const modifiedCode = `你修改完成的完整第二级代码内容`;
const newB = strToHex(modifiedCode);
console.log('新的b变量值:', newB);

步骤4:替换原代码的b变量

把上一步输出的newB的值替换掉原第一级混淆代码里的b变量值,新的代码就可以正常用eval执行,同时输出你添加的调试日志。

注意事项
  • 转码时建议用模板字符串包裹修改后的代码,避免引号、换行等特殊字符的转义问题
  • 如果修改后的代码里包含反引号,需要先对反引号做转义处理

内容的提问来源于stack exchange,提问作者HOOOPLA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 22:45:03