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 语法
- 字节码与运行时不匹配怎么解决
常见问题区域本身可以滚动,内容比较长,慢慢看即可。
七、最短使用流程
如果只想快速跑通,按这五步:
- 在左侧输入或载入 JavaScript
- 在中间填写 VIP 码
- 点击 生成字节码
- 在右侧下载 engine.js 和 bytecode.bin
- 在页面或 Node.js 中加载运行
八、几个容易踩的坑
1. 只下载了 bytecode.bin
还需要 engine.js。字节码本身不能单独运行,要有运行引擎。
2. 生成了新字节码,还在用旧 engine.js
两者要配套。更新字节码后,建议同时更新引擎,避免版本不一致。
3. 代码里有 DOM、接口、文件操作
这些能力不是字节码直接提供的,需要走 ByteJS 的宿主接口。页面示例和常见问题里有说明。
4. 生成按钮不可用
先确认:
- 代码不为空
- VIP 码已填写
- 页面已经加载完成
5. 下载按钮是灰的
需要先成功生成一次字节码,下载按钮才会启用。
九、总结
ByteJS 网页端的使用逻辑很简单:
代码块
markdown
左边写 JavaScript
↓
中间填 VIP、生成字节码
↓
右边下载 engine.js 和 bytecode.bin
↓
在浏览器或 Node.js 中运行
第一次建议直接用默认示例操作一遍,确认生成、下载、运行都正常,再换成自己的代码。
十、要不要使用?
有的人说:AI时代了,不需要加密了。因为AI是万能的,加密了也能破解...对吗?
①、就算能破解。你是愿白给、直接献上完整源码?还是让他费力的破解一番、且还未必能破解、未必能拿到正确代码?
②、况且,真的能破解?AI真的无敌?试一下,能不能防的住、有没有效果,一试便知,退一步讲:就算能破解,也要让对方付出更多的成本和代价:人力、时间、金钱、技术。
例,在线AI逆向:
例,本地AI逆向:
实际项目中,往往是多种保护手段共同使用的。比如 JShaman 有众多的JavaScript保护方案:JS混淆、JS加密、字节码、虚拟机、AST执行等等,当我们使用种种技术方案,把破解成本提高到一定程度、让破解变的不划算、不值得;让破解结果不理想。便已在很大程度上达到了保护目的。
③、法律层面有用。混淆加密="采取了保密措施"。起诉不法者、打官司时是有力证据:"对加密的JS代码进行逆向分析、解密、收费破解等,涉嫌触犯《刑法》第217条侵犯著作权罪。"。让不怀好意者掂量一下,一旦被起诉,后果很严重。










AI对逆向结果的描述
逆向结果与源码对比