6字符密码本:JSFuck如何用[]()!+编写任何JavaScript代码
你是否遇到过这样的加密数据:整段代码只由[]()!+六个字符组成,却能执行复杂功能?这种看似乱码的写法背后,隐藏着JavaScript语言的底层密码。本文将带你解密JSFuck技术,掌握用六个字符操控JavaScript的核心原理,让你也能破解这类加密数据。
什么是JSFuck?
JSFuck是一种基于JavaScript原子部分的编程风格,仅使用[]()!+六个字符就能编写和执行任何JavaScript代码。它不依赖浏览器环境,甚至可以在Node.js中运行。项目核心文件jsfuck.js定义了完整的字符映射规则,而fuck.js则提供了命令行工具支持。
核心原理:从原子构建世界
基础值构建
JSFuck的魔法始于对JavaScript基础值的特殊表示:
| 值 | JSFuck表达式 | 说明 |
|---|---|---|
| false | ![] |
空数组取反得到布尔值false |
| true | !![] |
双重取反得到布尔值true |
| 0 | +[] |
空数组转型为数字0 |
| 1 | +!+[] |
对true取正得到数字1 |
| undefined | [][[]] |
访问数组的空属性得到undefined |
这些基础构建块就像化学元素周期表,通过组合可以生成更复杂的值。完整的基础映射表可在项目README.md中查看。
字符提取技术
通过将基础值转换为字符串,JSFuck可以提取字符:
"undefined"[0] // "u",对应JSFuck表达式:[ [][[]]+[] ][+[]][+[]]
"false"[0] // "f",对应JSFuck表达式:[ ![]+[] ][+[]][+[]]
利用这种技术,从"undefined"、"false"、"true"等字符串中可以提取出'n','d','e','f','a','l','s','t','u'等关键字符。
函数调用机制
最关键的突破是获取函数引用并执行代码:
// 获取Function构造函数
[]["filter"]["constructor"]
// 创建并执行函数
[]["filter"]"constructor"")()
这相当于获得了一把万能钥匙,能够执行任意JavaScript代码。
实战解密:alert(1)的真面目
让我们解密经典的alert(1)加密代码。原始加密结果长达30多行,但核心过程可拆解为:
- 获取
alert函数:通过层层字符拼接得到"alert"字符串 - 构建参数
1:使用+!+[]表示数字1 - 执行函数调用:通过函数构造器创建调用表达式
完整加密代码可通过项目提供的index.html在线工具生成,该工具提供直观的编码界面和实时预览。
应用场景与局限
主要用途
- 代码混淆:隐藏真实代码逻辑,用于安全测试
- 绕过过滤:在严格限制字符的环境中执行代码
- 教育研究:深入理解JavaScript类型系统和隐式转换
局限性
- 代码体积膨胀10-100倍
- 执行效率低下
- 部分环境可能限制
Function构造函数使用
动手尝试
- 克隆项目仓库:
git clone https://gitcode.com/gh_mirrors/js/jsfuck - 使用命令行工具:
node fuck.js input.js - 或直接打开index.html使用网页版编码器
总结与展望
JSFuck展示了JavaScript语言的灵活性和"万物皆可构造"的哲学。虽然实际应用有限,但其背后的创造性思维值得每个开发者学习。项目持续维护中,最新代码和更多示例可在测试文件test/jsfuck_test.js中找到。
掌握JSFuck不仅能让你破解这类特殊加密,更能深入理解JavaScript的底层运行机制。下次再遇到由[]()!+组成的神秘代码,你就知道该如何应对了!
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
GLM-5-w4a8GLM-5-w4a8基于混合专家架构,专为复杂系统工程与长周期智能体任务设计。支持单/多节点部署,适配Atlas 800T A3,采用w4a8量化技术,结合vLLM推理优化,高效平衡性能与精度,助力智能应用开发Jinja00
请把这个活动推给顶尖程序员😎本次活动专为懂行的顶尖程序员量身打造,聚焦AtomGit首发开源模型的实际应用与深度测评,拒绝大众化浅层体验,邀请具备扎实技术功底、开源经验或模型测评能力的顶尖开发者,深度参与模型体验、性能测评,通过发布技术帖子、提交测评报告、上传实践项目成果等形式,挖掘模型核心价值,共建AtomGit开源模型生态,彰显顶尖程序员的技术洞察力与实践能力。00
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00
MiniMax-M2.5MiniMax-M2.5开源模型,经数十万复杂环境强化训练,在代码生成、工具调用、办公自动化等经济价值任务中表现卓越。SWE-Bench Verified得分80.2%,Multi-SWE-Bench达51.3%,BrowseComp获76.3%。推理速度比M2.1快37%,与Claude Opus 4.6相当,每小时仅需0.3-1美元,成本仅为同类模型1/10-1/20,为智能应用开发提供高效经济选择。【此简介由AI生成】Python00
Qwen3.5Qwen3.5 昇腾 vLLM 部署教程。Qwen3.5 是 Qwen 系列最新的旗舰多模态模型,采用 MoE(混合专家)架构,在保持强大模型能力的同时显著降低了推理成本。00- RRing-2.5-1TRing-2.5-1T:全球首个基于混合线性注意力架构的开源万亿参数思考模型。Python00
