前端开发者必看:WASM

发布于 3 小时前  4 次阅读


在做前端安全相关需求时,WASM这个问题绕不开,刚好把踩坑经验分享一下。

Have questions? Feel free to ask in the comments section below.

正文

保护在浏览器中运行的程序的传统方法是1)用Javascript编写程序, 2)使用Javascript混淆器对其进行混淆:

另一种策略是1)用C编写程序, 2)使用C-2-C混淆器(如Tigress )对其进行混淆,以及3)使用

如您所见, emscripten实际上生成了3个文件,即实际的webassembly、javascript库以及加载到浏览器中的html文件。以下是如何首先混淆C程序的示例

tigress的参数,该参数指定WebAssembly编译器(

) ,而不是本机C编译器:

EMSDKPATH = PATH_TO_EMSDK_INSTALLATION/emsdk/upstream/include/c + +/v1

--Transform = Flatten --Functions = fib\ -s ALLOW_MEMORY_GROWTH = 1\

更多内容

除了上面提到的内容,还有几个点值得注意。首先是浏览器的兼容性,不同浏览器对Web Crypto API的支持程度有所不同。其次是性能问题,加密操作在大量数据时可能会影响用户体验。最后是密钥管理,如何安全地存储和传输密钥也是一个需要考虑的问题。

本文首发于JSVMP博客,转载注明出处。后续会持续更新更多相关内容。

Reference: WASM


点击体验一键VMP加密 |下滑查看JSVMP相关文章