我先实现一个简单的虚拟机,例如叫 jsm ,有 ax ,bx ,cx ,dx 四个寄存器,外加一个 stack 执行栈。
现在加密一个 js 函数,例如一个简单的 add 函数:
function add(x, y) {
return x + y;
}
经过编译后,变成了类汇编的 js 代码:
jsm.label('add');
jsm.pop(jsm.ax);
jsm.pop(jsm.bx);
jsm.add(jsm.ax, jsm.bx);
jsm.push(jsm.ax);
jsm.ret();
更近一步地,将 js 代码编译成二进制文件,然后再在网页上的虚拟机上运行,是否能起到加密作用?
1
iikebug 19 小时 55 分钟前
1 、前端网页的是否需要考虑性和网页大小
2 、首先你虚拟机的逻辑也会被反编译出来,意义不是很大 3 、加密优先考虑一下 wasm ?比自己写个虚拟机方便多了 |
2
nomagick 19 小时 51 分钟前
不要敝帚自珍了。。。js 里面一个断点 console.log ,随你数据咋生成的
|
3
luckyrayyy 19 小时 43 分钟前 1
你是说 WebAssembly?
|
4
MRG0 19 小时 33 分钟前
纯前端的加密,似乎不怎么有人提到。重要内容都放后端呗
|
5
yichya 19 小时 32 分钟前
您要找的是不是: https://blog.jsvmp.com/
|
6
tsem1n 19 小时 31 分钟前
jsvmp 就是你说的这种, 国内已经有很多用了
|
7
nulIptr 19 小时 30 分钟前
不是哥们你有这个水平还来提这个问题?搞出这个东西就为了加密?
|
8
lisongeee 18 小时 27 分钟前
|
9
Blanke 16 小时 25 分钟前
你是在说 js vmp?
|
10
rekulas 11 小时 12 分钟前
是否能起到加密作用
当然可以,你都会写虚拟机了这个问题应该不用问别人才对,我之前玩过 php 语言的底层混淆也做过 js 逆向,js 安全性差的一个重要原因就是逆向直接调试明文就行了,相比二进制程序来说要容易许多,如果跑在虚拟机自然难度就提高了 |
11
lisxour 1 小时 53 分钟前
可以大幅提高破解门槛
|