|
alanhe421Jul 28, 2024
1
牵扯到编译打包不就好了吗,平时访问的网站说白了代码也是给了客户端即用户。
|
|
rabbbitJul 28, 2024
2
emscripten
|
|
EndlessMemoryJul 28, 2024
4
看你想法,如果只是不想别人轻易弄懂你的代码,那就上 ob 混淆+反调试
|
|
taotaodaddyJul 28, 2024
5
v8 jsc,我在 electron 项目中已经使用了
|
|
tcperJul 28, 2024
6
虽然 wasm 不是为了代码混淆的,但是你用别的语言搞一个 wasm 包,解密确实费劲不少
|
|
BaiLinfengJul 28, 2024
7
所以这是啥保密的项目尼?这样的做法市面上多不多
|
|
8
|
|
vx7298Jul 28, 2024
9
用 golang 吧,哈哈,
|
|
humbassJul 28, 2024
10
同 5#,nodejs 也可以直接使用 jsc.
|
|
hesonyhJul 29, 2024 via iPhone
11
Bun 包子,新 js 运行时,后端的话可以直接编译单个可执行文件,比如 express 单文件运行,打包大小 90mb ,还有 nodejs22 以后版本也在往这个方向发展
|
|
visperJul 29, 2024
12
v8 编译 js 成字节码。
|
|
lee88688Jul 29, 2024
13
@taotaodaddy 请问一下有没有相关的教程或者文档?我去官方没搜到相关的文档和教程😂。
|
|
taotaodaddyJul 29, 2024
14
@lee88688
用的是这个 https://github.com/bytenode/bytenode 支持把一段代码编译 也支持整个文件编译: npx bytenode -c ./public/a.js 然后 require('./a.jsc'); |
|
taotaodaddyJul 29, 2024
15
@lee88688
忘记说了,还有一部分代码用 dll 实现了 总体来说,dll 的安全性最佳 其次是 v8 字节码 (jsc) 混淆更低 另外 node 支持 C++ addons ,可以作为 dll 的替代方案 |
|
lisxourJul 29, 2024
16
目前纯代码混淆是比较稳当且成本廉价的方案,上面提到的各种编译打包的方案(我指的是所有,包括 wasm )都存在两个大问题,上面没有一个人提到:
1. 有的打包只是纯将 node 和代码打包在一起,并没有任何编译,很容易解包出来 2. 打包编译对项目要求贼高,项目是 cjs 还是 esm 都有影响,有些库打包不进去报错(包括很多常用库),跨平台兼容问题 |
|
SchwarzeRJul 29, 2024
18
核心逻辑写成 wasm ?就是有点折腾还会牵扯到别的语言[比如 rust
|
|
lee88688Jul 30, 2024
19
@taotaodaddy 官方文档上二进制扩展基本都是推荐 addon ,dll 这种动态链接库目前有比较好的包来加载吗?例如 Python 官方就给了一个很方便的加载和使用动态链接库的方案。
|
|
lee88688Jul 30, 2024
20
写成 wasm 加载肯定很方便,但是毕竟要使用其他语言编写,开发成本会增加很多。
|
|
taotaodaddyJul 30, 2024
21
@lee88688 dll 的包官方的是 ffi-napi,我开始用的是这个包,后来换掉了,因为中间发现一些问题(问题和 electron 的版本有关系)
最终用的是 koffi |