首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >在浏览器中运行 JavaScript 字节码 - ByteJS 使用指南

在浏览器中运行 JavaScript 字节码 - ByteJS 使用指南

原创
作者头像
用户8703799
发布于 2026-11-13 11:42:12
发布于 2026-11-13 11:42:12
140
举报
文章被收录于专栏:javascript技术javascript技术

ByteJS 是 JShaman 旗下的一款JS代码保护产品,它可实现将 JavaScript 编译成字节码,并让字节码在浏览器中运行。你没听错:在浏览器运行字节码而非JavaScript!

本文是 ByteJS 的使用指南,介绍如何使用它生成可以浏览器中运行的字节码。

首先是找到它。

依次点击 JShaman 右下角的 “更多功能” → “JS字节码加密”,即可打开 ByteJS 工具使用地址。

然后就可以使用了。

一、进入编译工作台

首页顶部有三个入口:

  • 工作台:写代码、生成字节码
  • 示例:Web 前端和 Node.js 的调用示例
  • 常见问题:语法、DOM、运行环境等问题

点击“开始生成”,或者直接点顶部“工作台”,就会来到编译工作台。

二、左边:输入 JavaScript

左侧是代码编辑区。

你可以:

  • 直接粘贴自己的 JavaScript
  • 点击 载入示例,填入默认示例代码
  • 点击 清空,清空当前内容
  • 按 Ctrl + Enter 或 ⌘ + Enter 快速生成

编辑区上方会显示当前代码的字符数和行数,方便确认代码有没有粘贴完整。

默认示例是一段简单的版权信息输出代码,第一次使用可以直接拿它试跑。

小提示

  • 建议先放纯 JavaScript 逻辑,比如计算、校验、字符串处理、对象处理。
  • 如果代码里要读页面元素、调用接口、使用文件或进程,需要配合 ByteJS 提供的宿主接口。
  • 代码比较长时,建议先在本地确认逻辑没问题,再放进来生成。

三、中间:生成字节码

中间是“生成”区域。

从上到下依次是:

1. 生成说明

这里会提示生成规则:

  • 语法错误会阻止生成
  • DOM、外部 API 等会给出环境提示
  • 生成结果会写入右侧交付区

2. VIP 码

生成字节码需要 JShaman VIP 码。

  • 输入 VIP 码后,可以点 保存,下次打开页面会自动带出
  • 点 清除 可以删除本机保存的 VIP 码

VIP 码只保存在本机浏览器里,生成时提交给后台校验。

3. 生成字节码

填好 VIP 码、确认代码没问题后,点击 生成字节码。

生成成功后,页面会提示:

  • 已生成
  • 字节码大小
  • base64 字符数

同时右侧的下载按钮会变为可用。

四、右边:交付文件

右侧是“交付文件”区域,生成成功后会有两个文件:

1. engine.js

运行引擎。

它负责在浏览器或 Node.js 里执行字节码。使用时需要和字节码一起加载。

2. bytecode.bin

字节码文件。

它是你的 JavaScript 编译后的结果。真正被运行的是它,而不是原始 JavaScript。

3. 复制 base64

除了下载文件,也可以点 复制 base64,把字节码以 base64 字符串的形式复制出来。

适合:

  • 嵌入 HTML
  • 放进配置
  • 通过接口传输
  • 做小工具演示

4. 下载 bytecode.bin

点 下载 bytecode.bin 保存字节码文件。

小提示

  • engine.js 和 bytecode.bin 要配套使用
  • 重新生成字节码后,建议同时更新运行引擎
  • 不要拿旧引擎运行新字节码,容易出现“字节码与运行时不匹配”

五、示例区:直接看怎么用

页面往下是“使用示例”区域。

Web 前端示例

左边是 Web 前端示例,支持两种模式:

  • 本地测试:适合直接打开 HTML 文件测试,浏览器不能自动读文件时,会提示手动选择 bytecode.bin
  • 实际部署:适合部署到网站、CDN 或静态服务器,通过请求加载字节码

右上角有 保存 HTML,可以直接把示例保存成一个 HTML 文件,再配合 engine.js、bytecode.bin 使用。

Node.js 示例

右边是 Node.js 示例。

它演示了:

  • 读取 bytecode.bin
  • 加载 engine.js
  • 调用 ByteJS.run(...)
  • 输出结果或错误

点 保存 JS 可以保存成 Node.js 脚本。

六、常见问题

页面最下面是“常见问题”。

第一条 “ByteJS 是什么?怎么用?” 已经包含:

  • ByteJS 的基本概念
  • 最小编译和运行示例
  • ByteJS.run 的参数
  • 输入、输出、宿主接口的说明
  • DOM 读写示例
  • Node.js 示例

其他问题还包括:

  • 默认支持什么语法
  • 编译时会检查什么
  • 遇到不能处理的语法怎么办
  • 如何兼容前端语法和 Node.js 语法
  • 字节码与运行时不匹配怎么解决

常见问题区域本身可以滚动,内容比较长,慢慢看即可。


七、最短使用流程

如果只想快速跑通,按这五步:

  1. 在左侧输入或载入 JavaScript
  2. 在中间填写 VIP 码
  3. 点击 生成字节码
  4. 在右侧下载 engine.js 和 bytecode.bin
  5. 在页面或 Node.js 中加载运行

八、几个容易踩的坑

1. 只下载了 bytecode.bin

还需要 engine.js。字节码本身不能单独运行,要有运行引擎。

2. 生成了新字节码,还在用旧 engine.js

两者要配套。更新字节码后,建议同时更新引擎,避免版本不一致。

3. 代码里有 DOM、接口、文件操作

这些能力不是字节码直接提供的,需要走 ByteJS 的宿主接口。页面示例和常见问题里有说明。

4. 生成按钮不可用

先确认:

  • 代码不为空
  • VIP 码已填写
  • 页面已经加载完成

5. 下载按钮是灰的

需要先成功生成一次字节码,下载按钮才会启用。


九、总结

ByteJS 网页端的使用逻辑很简单:

代码块

代码语言:javascript
复制
左边写 JavaScript
      ↓
中间填 VIP、生成字节码
      ↓
右边下载 engine.js 和 bytecode.bin
      ↓
在浏览器或 Node.js 中运行

第一次建议直接用默认示例操作一遍,确认生成、下载、运行都正常,再换成自己的代码。

十、要不要使用?

有的人说:AI时代了,不需要加密了。因为AI是万能的,加密了也能破解...对吗? ①、就算能破解。你是愿白给、直接献上完整源码?还是让他费力的破解一番、且还未必能破解、未必能拿到正确代码? ②、况且,真的能破解?AI真的无敌?试一下,能不能防的住、有没有效果,一试便知,退一步讲:就算能破解,也要让对方付出更多的成本和代价:人力、时间、金钱、技术。

例,在线AI逆向:

例,本地AI逆向:

AI对逆向结果的描述

逆向结果与源码对比

实际项目中,往往是多种保护手段共同使用的。比如 JShaman 有众多的JavaScript保护方案:JS混淆、JS加密、字节码、虚拟机、AST执行等等,当我们使用种种技术方案,把破解成本提高到一定程度、让破解变的不划算、不值得;让破解结果不理想。便已在很大程度上达到了保护目的。 ③、法律层面有用。混淆加密=“采取了保密措施”。起诉不法者、打官司时是有力证据:“对加密的JS代码进行逆向分析、解密、收费破解等,涉嫌触犯《刑法》第217条侵犯著作权罪。”。让不怀好意者掂量一下,一旦被起诉,后果很严重。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 一、进入编译工作台
  • 二、左边:输入 JavaScript
  • 小提示
  • 三、中间:生成字节码
  • 1. 生成说明
  • 2. VIP 码
  • 3. 生成字节码
  • 四、右边:交付文件
  • 1. engine.js
  • 2. bytecode.bin
  • 3. 复制 base64
  • 4. 下载 bytecode.bin
  • 小提示
  • 五、示例区:直接看怎么用
  • Web 前端示例
  • Node.js 示例
  • 六、常见问题
  • 七、最短使用流程
  • 八、几个容易踩的坑
  • 1. 只下载了 bytecode.bin
  • 2. 生成了新字节码,还在用旧 engine.js
  • 3. 代码里有 DOM、接口、文件操作
  • 4. 生成按钮不可用
  • 5. 下载按钮是灰的
  • 九、总结
  • 十、要不要使用?
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档