news 2026/4/23 10:56:42

用 AI 读懂混淆 JS 代码!逆向工程新思路:爬虫工程师的降维打击工具

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
用 AI 读懂混淆 JS 代码!逆向工程新思路:爬虫工程师的降维打击工具

🕸️ 前言:还在死磕_0x5a2b?你已经慢了

做过爬虫的兄弟,看到下面这种代码绝对会头皮发麻:

var_0x21a4=['\x73\x65\x74','\x63\x6f\x6f','\x6b\x69\x65','\x6c\x6f\x67'];(function(_0x3c8b,_0x59d1){var_0x4b2c=function(_0x2d8f){while(--_0x2d8f){_0x3c8b['\x70\x75\x73\x68'](_0x3c8b['\x73\x68\x69\x66\x74']());}};_0x4b2c(++_0x59d1);}(_0x21a4,0x12b));

以前,我们需要:

  1. AST 解混淆:写 babel 插件,替换常量,移除死代码。
  2. 单步调试:在 Chrome DevTools 里按断手,盯着堆栈看变量变化。
  3. 扣代码:把逻辑复制出来,补 Node.js 环境(Window, Document)。

耗时:3 天。

现在,利用 GPT-4 / Claude-3 等大模型,我们不关心它怎么混淆,我们直接问它:“这段代码想干什么?”

耗时:3 分钟。

这是一场降维打击。今天就带大家解锁这个“外挂”级别的技能。


⚔️ 核心原理:语义分析 vs 语法分析

为什么 AI 能看懂混淆代码?

  • 传统 AST 工具:是语法层面的还原。它能把\x61还原成a,但它不知道var a = b + c具体代表了“加密”还是“拼接”。
  • 大模型 (LLM):是语义层面的理解。它阅码无数,能透过_0x...这种垃圾变量名,识别出常见的加密算法(AES, MD5, RSA)或指纹算法(Canvas, FingerprintJS)的代码结构特征。

新一代逆向工作流:

AI 分析引擎 (LLM)
Prompt: 角色扮演 + 任务指令
预处理: 格式化/去注释
AI 语义推理
智能重命名变量
混淆 JS 代码
输出逻辑解释
直接生成 Python 还原代码

🛠️ 实战演练:手撕一段加密逻辑

假设我们在某网站抓包,发现了一个名为token的参数,通过搜索关键词定位到了以下混淆代码:

// 模拟一段混淆的加密函数function_0x4f2d(_0x1a,_0x2b){var_0x3c='';for(var_0x4d=0;_0x4d<_0x1a.length;_0x4d++){_0x3c+=String.fromCharCode(_0x1a.charCodeAt(_0x4d)^_0x2b);}returnbtoa(_0x3c);}// 调用var_token=_0x4f2d("HelloUser",123);
第一步:编写降维打击 Prompt

Prompt(提示词)的质量决定了 AI 的表现。不要只说“解释一下”,要像专业人士一样提问。

Prompt 模板:
“你是一名资深的 JavaScript 逆向安全工程师。
下面是一段混淆的 JavaScript 代码。请执行以下步骤:

  1. 代码重命名:将_0x开头的无意义变量根据其行为重命名为具有语义的名称(如str,key,result)。
  2. 逻辑分析:解释这段代码使用了什么加密或编码逻辑。
  3. Python 还原:请直接给出等价的 Python 代码实现。”
第二步:AI 的表演

将代码和 Prompt 发给 AI(推荐 GPT-4 或 Claude 3.5 Sonnet)。

AI 回复预览:

1. 代码重命名:
函数接受一个字符串和一个整数密钥。循环对字符串每个字符与密钥进行异或 (XOR)运算,最后对结果进行Base64 编码
2. 还原后的 JS:

functionencryptXorBase64(inputString,key){varresult='';for(vari=0;i<inputString.length;i++){// 异或运算result+=String.fromCharCode(inputString.charCodeAt(i)^key);}// Base64 编码returnbtoa(result);}

3. Python 实现:

importbase64

def get_token(input_str, key):

1. XOR 运算

xor_result = “”.join([chr(ord© ^ key) for c in input_str])

2. Base64 编码

注意:Python的b64encode需要bytes输入

encoded = base64.b64encode(xor_result.encode(‘utf-8’)).decode()
return encoded

print(get_token(“HelloUser”, 123))

看到了吗?我们甚至不需要去理解什么是charCodeAtbtoa,AI 直接把 Python 里的requests载荷代码都写好了。


🚧 进阶:如何处理“大块头”代码? (Webpack/VM2)

对于几万行的 Webpack 打包代码,直接丢给 AI 会超出 Token 限制。这时候需要**“AST + AI”混合双打**。

  1. AST 瘦身(预处理)
    先用简单的 Babel 插件,把大段的死代码(Dead Code)、控制流平坦化(Switch-Case)简单处理一下,去除 40% 的垃圾代码。
  2. 模块切割(切片)
    找到加密的入口函数(Export),只把核心加密函数及其依赖函数丢给 AI。
  3. 让 AI 写 AST 插件
    这是最高级的玩法。你不用自己写 Babel 插件,你把混淆代码特征发给 AI,让 AI 帮你写一个 AST 还原脚本!

Prompt 示例:

“这段 JS 代码中大量的字符串都被加密成了_0x123('0x1')的形式。解密函数是_0x123。请帮我写一个 Python 脚本(使用 execjs)或 AST 脚本,自动将这些函数调用替换为真实的字符串值。”


📝 总结

AI 不会完全取代逆向工程师,但它淘汰了**“只会死扣代码”**的工具人。

现在的逆向工程核心能力变了:

  • 以前:比谁对 JS 语法更精通,比谁更有耐心。
  • 现在:比谁能更精准地定位关键代码,比谁能写出更好的Prompt让 AI 干活。

别再手动还原混淆了,把生命浪费在更有趣的攻防对抗上吧!


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 21:20:33

TG:@qunkong001 在电销行业,你是否还在为传统手机卡外呼被封而苦恼?

在电销行业&#xff0c;你是否还在为传统手机卡外呼被封而苦恼&#xff1f; 其实有一种神奇的系统正悄然改变着传统外呼模式&#xff0c;它就是SIP线路电销系统。 当下行业日益规范&#xff0c;传统手机卡外呼面临着严峻的封号风险。 高频呼出和客户投诉成了封卡的两大“杀手”…

作者头像 李华
网站建设 2026/4/18 0:33:01

HoRain云--Linux安装iniparser库:3分钟搞定超详细教程

&#x1f3ac; HoRain 云小助手&#xff1a;个人主页 ⛺️生活的理想&#xff0c;就是为了理想的生活! ⛳️ 推荐 前些天发现了一个超棒的服务器购买网站&#xff0c;性价比超高&#xff0c;大内存超划算&#xff01;忍不住分享一下给大家。点击跳转到网站。 目录 ⛳️ 推荐 …

作者头像 李华
网站建设 2026/4/19 11:21:38

保障核心动力:A1A10000428.00M原装备件的重要性

在工业高压变频驱动领域&#xff0c;西门子罗宾康品牌以其卓越的性能与可靠性著称。而作为其关键组成部分的配件——编号A1A10000428.00M&#xff0c;更是整个系统稳定运行的基石。此专用备件并非普通替代品&#xff0c;它是为确保罗宾康变频器长久保持最佳性能而设计的原厂核心…

作者头像 李华
网站建设 2026/4/20 2:09:30

企业工资管理|基于java + vue企业工资管理系统(源码+数据库+文档)

企业工资管理 目录 基于springboot vue企业工资管理系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 基于springboot vue企业工资管理系统 一、前言 博主介绍&…

作者头像 李华
网站建设 2026/4/17 20:47:50

医疗知识问答系统搭建实录——使用Kotaemon全过程

医疗知识问答系统搭建实录——使用Kotaemon全过程 在三甲医院的智能导诊台前&#xff0c;一位老年患者正皱着眉头询问&#xff1a;“我有糖尿病&#xff0c;能吃阿胶吗&#xff1f;”传统客服机器人只能机械回复“请咨询医生”&#xff0c;而新一代系统却能立刻调取《中国2型糖…

作者头像 李华
网站建设 2026/4/18 16:33:33

内网穿透工具新选择:这款免费工具如何让远程访问变得简单高效

官网&#xff1a;财运到免费内网穿透 01 免费服务的基础功能 许多内网穿透工具对核心功能收费&#xff0c;而财运到内网穿透却提供了完全免费的HTTP(S)、TCP和UDP协议支持。这使得个人开发者无需预算就能实现本地服务的远程访问。 02 零成本享受的特色功能 与传统免费工具简…

作者头像 李华