MCPcopy Index your code
hub / github.com/2833844911/cy_jsvmp

github.com/2833844911/cy_jsvmp @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
93 symbols 195 edges 23 files 0 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

🛡️ Cy JSVMP - Enterprise JavaScript Virtualization Protection

License Encryption Platform

Cy JSVMP 是一款基于 Babel AST自定义堆栈虚拟机 的企业级 JavaScript 代码混淆与保护工具。它通过将原生 JS 代码编译为自定义字节码,并在浏览器或 Node.js 环境中通过私有解释器运行,从而实现极高强度的反逆向工程保护。

安全产品体验: https://tsvmp.com | https://jsvmp.top

验证仓库: https://github.com/2833844911/ciyverify

✨ 核心特性

🛡️ 虚拟化保护 (Virtualization)

  • 自定义指令集: 动态生成的 Opcode 映射,每次混淆可产生不同的指令集,加大逆向难度。
  • 栈式虚拟机: 基于堆栈架构的解释器,完全脱离原生 JS 执行流程。
  • 沙盒执行: 代码在独立的虚拟环境中运行,隐藏真实逻辑。

🌪️ 控制流平坦化 (Control Flow Flattening)

  • 逻辑重组: 将原来的 if/else, while, for 等控制流转换为扁平的 switch-case 结构。
  • 状态机混淆: 通过状态变量控制执行跳转,彻底破坏代码的可读性和控制流图 (CFG)。

🔒 数据加密与混淆 (Data Protection)

  • 常量池加密: 字符串、数字等常量被提取并索引化,甚至加密存储。
  • 变量名重构: 自动重命名变量为无意义的短字符,消除语义信息。

🛠️ AST 级深度处理

  • Babel 引擎: 基于 @babel/parser@babel/generator,确保对现代 JavaScript 语法的完整支持和精确转换。
  • 语法降级: 内置 ES6 转 ES5 功能,确保兼容性。

🏗️ 架构设计

混淆流程

graph LR
    A[原始 JS 代码] --> B(Babel AST 解析)
    B --> C{JSVMP 编译器}
    C -->|提取常量| D[常量池]
    C -->|生成指令| E[自定义字节码]
    C -->|构建 VM| F[嵌入式解释器]
    D & E & F --> G[最终混淆代码]

虚拟机模型

graph TB
    subgraph VM_Runtime [JSVMP Runtime]
        direction TB
        Instruction_Pointer[指令指针] --> Fetch[获取指令]
        Fetch --> Decode[指令解码]
        Decode --> Execute{执行引擎}
        Execute --> Stack[操作数栈]
        Execute --> Memory[虚拟内存/作用域]
        Stack <--> Memory
    end

📦 快速开始

1. 环境准备

确保已安装 Node.js 环境及相关依赖。

npm install
npm install @babel/parser

前置要求: JSVMP 主要支持 ES5 语法。如果你的代码是 ES6+,请先使用 Traceur 转码。

npm install -g traceur

📚 ES5 转换教程: https://blog.csdn.net/qq_46013295/article/details/128481895

2. 执行混淆

将需要保护的代码放入 src/ 目录,然后根据需求选择不同的构建脚本。

node main_pro.js

3. 构建产物压缩

混淆后的代码通常较大,可以使用 uglifyjs 进行压缩:

# 混淆压缩
uglifyjs out.js --mangle --output out2.js

# 压缩+混淆
uglifyjs out.js --compress --mangle --output out3.js

📂 项目结构与功能

  • main.js: 正常调试版 (不推荐直接使用),用于开发调试字节码生成逻辑。
  • jiamian.js: 加密版,包含完整的指令集打乱功能,安全性高。
  • jiajianbian.js: 快速加密版,牺牲少量安全性换取更快的保护速度。
  • main_pro.js: 升级版,包含最新的特性和优化。
  • src/: 源代码输入目录。
  • dist/: 混淆代码输出目录。
  • tool/: 核心工具集 (VM 模板、AST 工具等)。

⚠️ 注意事项

  • 性能影响: 由于代码在虚拟机中解释执行,运行速度会比原生 JS 稍慢,建议用于核心逻辑或关键算法保护。
  • 调试困难: 混淆后的代码极难调试,请在发布前确保逻辑正确。

🤝 贡献与支持

作者: 陈不不
邮箱: 2833844911@qq.com

📢 JSVMP 反编译课程

已经开设 JSVMP 反编译相关课程,需要报名的同学可以咨询 WX: Chankipen

本项目为私有保护工具,严禁用于非法用途。


Powered by Cy JSVMP Protection Engine

Core symbols most depended-on inside this repo

cltothis
called by 182
outsrc/script.js
cltothis
called by 182
outsrc/out3.js
cltothis
called by 182
jiaquban/gujia.js
cbb_jsvmp
called by 152
outsrc/out.js
RandDataCheise
called by 124
jiajianbian.js
RandDataCheise
called by 124
jiamian.js
getproto
called by 120
outsrc/script.js
o
called by 120
jiaquban/gujia.js

Shape

Function 93

Languages

TypeScript100%

Modules by API surface

jiamian.js9 symbols
tool/pswitch.js7 symbols
main_pro.js7 symbols
jiajianbian.js7 symbols
tool/rename.js5 symbols
tool/bindfun.js5 symbols
jiaquban/gujia.js5 symbols
tool/es5toes6.js4 symbols
src/test.js4 symbols
src/t3.js4 symbols
outsrc/script.js4 symbols
outsrc/out3.js4 symbols

For agents

$ claude mcp add cy_jsvmp \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact