JSFuck Obfuscator - VSCode/Cursor 扩展
一个强大的 JavaScript 代码混淆工具,基于 JSFuck 技术,只使用 []()!+ 这6个字符来编写 JavaScript 代码。
🚀 功能特性
- ✅ 一键混淆: 支持选中代码片段或整个文件的 JSFuck 混淆
- ✅ 一键还原: 支持将 JSFuck 代码还原为原始 JavaScript
- ✅ 自动备份: 混淆前自动创建备份文件
- ✅ 大小统计: 显示混淆前后的文件大小变化
- ✅ 快捷键: 支持键盘快捷键操作
- ✅ 右键菜单: 在编辑器和文件管理器中都有便捷入口
- ✅ 状态栏: 在 JavaScript/TypeScript 文件中显示快捷操作
📦 安装方法
方法一:从 VSIX 文件安装
- 在 VSCode/Cursor 中打开命令面板 (
Ctrl+Shift+P )
- 输入 "Extensions: Install from VSIX..."
- 选择
jsfuck-obfuscator.vsix 文件
方法二:开发者安装
- 克隆这个项目
- 在项目根目录运行
npm install
- 运行
npm run compile
- 按
F5 启动扩展开发宿主
🎯 使用方法
混淆选中代码
- 在 JavaScript/TypeScript 文件中选择要混淆的代码
- 使用以下任一方式触发混淆:
- 快捷键:
Ctrl+Shift+J (Mac: Cmd+Shift+J )
- 右键菜单: 选择 "🔒 转换为 JSFuck 混淆"
- 命令面板:
Ctrl+Shift+P → "JSFuck: 转换为 JSFuck 混淆"
- 状态栏: 点击右下角的 "JSFuck" 按钮
还原 JSFuck 代码
- 选择 JSFuck 混淆后的代码
- 使用快捷键
Ctrl+Shift+Alt+J 或右键菜单选择 "🔓 从 JSFuck 还原代码"
混淆整个文件
- 在文件管理器中右键点击
.js 或 .ts 文件
- 选择 "🔒 混淆整个文件" 或 "💾 创建备份并混淆"
⚙️ 配置选项
在 VSCode 设置中搜索 "jsfuck" 可以找到以下配置项:
配置项 |
默认值 |
描述 |
jsfuck.autoBackup |
true |
混淆前是否自动创建备份文件 |
jsfuck.backupSuffix |
.original.js |
备份文件的后缀名 |
jsfuck.showSizeInfo |
true |
是否显示文件大小变化信息 |
jsfuck.preserveComments |
false |
是否保留注释(暂未实现) |
📝 示例
原始代码
const whiteListPages = ["/pages/white/certDetail"];
let isAlreadyAutoLogin = false;
console.log("Hello World!");
JSFuck 混淆后
([]["fill"]["constructor"](https://github.com/your-username/jsfuck-vscode-extension/blob/HEAD/([]["fill"]["constructor"]+"")[+!+[]+!+[]+!+[]]+([]["fill"]["constructor"]+"")[+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+([][[]]+"")[+!+[]]+(![]+"")[+!+[]+!+[]+!+[]]+(!![]+"")[+[]]+undefined+([]["fill"]["constructor"](https://github.com/your-username/jsfuck-vscode-extension/blob/HEAD/"return String.fromCharCode(119)")())+([]["fill"]["constructor"](https://github.com/your-username/jsfuck-vscode-extension/blob/HEAD/"return String.fromCharCode(104)")())+([][[]]+"")[+!+[]+!+[]+!+[]+!+[]+!+[]]+(!![]+"")[+[]]+(![]+"")[+!+[]+!+[]+!+[]+!+[]]+([]["fill"]["constructor"](https://github.com/your-username/jsfuck-vscode-extension/blob/HEAD/"return String.fromCharCode(76)")())+([][[]]+"")[+!+[]+!+[]+!+[]+!+[]+!+[]]+(![]+"")[+!+[]+!+[]+!+[]]+...))()
⚠️ 重要提示
- 文件大小: JSFuck 混淆会显著增加文件大小(通常30-50倍),请谨慎使用
- 性能影响: 混淆后的代码执行性能会有所下降
- 调试困难: 混淆后的代码极难调试,建议只对生产环境使用
- 备份重要: 混淆前请确保有代码备份
🔧 命令列表
命令 |
快捷键 |
描述 |
jsfuck.obfuscate |
Ctrl+Shift+J |
混淆选中代码 |
jsfuck.deobfuscate |
Ctrl+Shift+Alt+J |
还原 JSFuck 代码 |
jsfuck.obfuscateFile |
- |
混淆整个文件 |
jsfuck.createBackup |
- |
创建备份并混淆 |
🎮 键盘快捷键
- Windows/Linux:
- 混淆:
Ctrl+Shift+J
- 还原:
Ctrl+Shift+Alt+J
- Mac:
- 混淆:
Cmd+Shift+J
- 还原:
Cmd+Shift+Alt+J
📚 技术原理
JSFuck 是一种基于 JavaScript 语言特性的编程技巧,它利用了:
- 类型转换:
[] + [] = "" 、![] = false
- 数组访问:
"hello"[0] = "h"
- 函数构造:
[]["fill"]["constructor"] 获取 Function 构造器
- 字符生成: 通过各种技巧生成所需的字符
更多技术细节请参考 JSFuck 项目。
🐛 问题反馈
如果遇到问题,请在 GitHub Issues 中反馈。
📄 许可证
MIT License - 详见 LICENSE 文件。
🤝 贡献
欢迎提交 Pull Request 来改进这个项目!
享受 JSFuck 混淆带来的乐趣! 🎉
| |