/facelessJsvmp

简单实现的一个jsvmp

Primary LanguageJavaScript

facelessJsvmp是什么?

单栈实现的js代码虚拟化保护程序,加固代码支持在浏览器和nodejs中运行

使用说明

注:请勿将加固后的代码用于生产环境,由于项目开源导致加固代码很容易被反编译。

环境安装

npm install @babel/parser
npm install @babel/generator
npm install @babel/traverse
npm install @babel/template
npm install @babel/types
npm install figlet

base目录文件

待加固的js源文件:source.js
编译前预处理的源文件:preprocess.js
jsvmp代码加固程序:jsvmp-1.0.0.js(直接run即可)
加固后输出的文件:output.js

pass目录文件

已通过测试的算法有 HMAC-SHA256 | MD5 | SHA1 | SHA256 | SM3

存放一些通过测试的加密算法

实现原理

二进制代码虚拟化保护的基本步骤

image.png

JSVMP 的保护流程图

image.png

JavaScript 代码虚拟化过程示例

image.png

已知问题

YieldExpression 语法未实现 :yield SpreadElement 语法未实现:...args

function* generatorFunction() {
  yield 1;
  yield 2;
  yield 3;
}
f(...args)

参考文献

JSVMP论文和专利:JSVMP 论文和专利.rar - 蓝奏云
大语言模型机器人AI

广告

本项目开源起,星球内上线同步更新课程,零基础的伙伴们可从零课程开始学习,二课程感兴趣可以学习。
课程:《零.jsvmp原理与AST基础》、《一.手把手带你反编译jsvmp》、《二.手把手带你实现jsvmp》
试听公开课请查看的投稿哦,地址: https://space.bilibili.com/247999712
逆向知识学习交流(星球): https://t.zsxq.com/104HdF074
微信号:AlanHays | QQ号:2757317549