深入浅出:The Secret 指南 To Virtualizatio

发布于 5 小时前  0 次阅读


最近在写项目的时候正好涉及到The,顺手整理了一下相关资料。

Found this helpful? Share it with your team and leave a comment below!

正文

JavaScript中虚拟化混淆的秘密指南

嗯,现在我发布了,这已经不是什么秘密了。但无论如何,您可能会喜欢它。

在这篇博客文章中,我将向您介绍JS中虚拟化混淆的基础知识以及如何设计指令集以使其全部工作。这篇文章的灵感来自

在那里,我构建了一个编译器和虚拟机,用于虚拟化混淆。

虚拟化混淆是一种最先进的混淆方案。它通过将代码编译成字节码来混淆代码,然后由虚拟机( VM )执行。因此,虚拟机与编译的字节码一起分发。然后使用此字节码调用并执行它,从而执行实际代码。

展示如何部署虚拟化混淆

由于字节码通过指令执行指令,因此原始代码永远不会在任何地方恢复。因此,任何潜在的攻击者都必须首先对虚拟机进行反向工程,这可能会造成严重的混淆。然后,必须先了解底层体系结构和指令集,然后才能分析实际的字节码。

由于任何两种虚拟化混淆都有潜在的不同,因此自动化工具的使用受到限制。

在构建虚拟机或字节码之前,您必须考虑如何设计两者。有许多不同的架构。从他们身上获得灵感,或者更好的是,想出一些新的异国情调。

你希望人们不理解它。所以,让它变得复杂和令人讨厌。

Rusty-JSYC的反汇编字节码示例

基于寄存器和字节码本身的文本/数据段。此段是一系列操作。

说明:单字节操作码( op code ) ,即:

操作数表示字符串、数字、数组或寄存器构建虚拟机

这听起来比实际情况要恐怖得多。相信我。

更多内容

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

码字不易,觉得有帮助的话点个赞再走~ 如果想了解更多相关内容,可以关注我的博客后续更新。

Reference: The Secret Guide To Virtualization Obfuscation In JavaScript | Johannes Willbold


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