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


【】另类代码保护:把JS代码编译成字节码
文章图片
【】另类代码保护:把JS代码编译成字节码
文章图片
【】另类代码保护:把JS代码编译成字节码
文章图片
【】另类代码保护:把JS代码编译成字节码

当使用NodeJS开发了产品或项目 , 在交付、给他人部署时 , 直接提供代码进行部署是很不妥的:JS源代码直接就交出去了!直接就是源码泄露 。
为了保护代码、保护自身利益 , 通用在交付给他人之前 , 都会进行代码保护 。 对于JS这类代码 , 通用的是使用JShaman之类JS代码混淆加密平台 , 对代码进行保护 。
当然也有另类的非主流方式 , 比如本文 , 将教给大家一种将NodeJS代码编译成字节码的方式 。
下面提供源码级的方案 , 使用环境也是Nodejs 。
1、编译JS代码为字节码原理是使用V8引擎虚拟机技术进行JS代码到字节码的编译:
2、运行编译后的字节码
3、实测运行以编译并运行ShareWAF为例 , ShareWAF是一款商业的大型WAF(WEB应用防火墙) 。
编译前 , 将ShareWAF主程序复制到Js2ByteCode目录下:
【【】另类代码保护:把JS代码编译成字节码】
编译为字节码:
查看编译后的jsb文件 , 可以看到是非可识别代码 , 更不是JS代码 , 是字节码:
防护效果已经起到了 。
运行字节码:
字节码运行效果 , 跟ShareWAF编译为字节码之前运行效果一样 , 说明这个方式是可行的 。
不过这种方式 , 也有一定的弊端 , 比如兼容性 , Win系统跟Linux是有差异的;又比如全局变量的传递需要在运行时配置等 。


    推荐阅读