另类代码保护:把JS代码编译成字节码。

当使用NodeJS开发了产品或项目,在交付、给他人部署时,直接提供代码进行部署是很不妥的:JS源代码直接就交出去了!直接就是源码泄露。

为了保护代码、保护自身利益,通用在交付给他人之前,都会进行代码保护。对于JS这类代码,通用的是使用JShaman之类JS代码混淆加密平台,对代码进行保护。

当然也有另类的非主流方式,比如本文,将教给大家一种将NodeJS代码编译成字节码的方式。

另类代码保护:把JS代码编译成字节码

 

下面提供源码级的方案,使用环境也是Nodejs。

1、编译JS代码为字节码

原理是使用V8引擎虚拟机技术进行JS代码到字节码的编译:

另类代码保护:把JS代码编译成字节码

 

 

2、运行编译后的字节码

另类代码保护:把JS代码编译成字节码

 

3、实测运行

以编译并运行ShareWAF为例,ShareWAF是一款商业的大型WAF(WEB应用防火墙)。

编译前,将ShareWAF主程序复制到Js2ByteCode目录下:

另类代码保护:把JS代码编译成字节码

 

编译为字节码:

另类代码保护:把JS代码编译成字节码

 

查看编译后的jsb文件,可以看到是非可识别代码,更不是JS代码,是字节码

另类代码保护:把JS代码编译成字节码

 

防护效果已经起到了。

运行字节码:

另类代码保护:把JS代码编译成字节码

 

字节码运行效果,跟ShareWAF编译为字节码之前运行效果一样,说明这个方式是可行的。

不过这种方式,也有一定的弊端,比如兼容性,Win系统跟Linux是有差异的;又比如全局变量的传递需要在运行时配置等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值