Guide Complete Guide 2026 – Best Practices

发布于 17 小时前  9 次阅读


项目中遇到了Is的需求,查阅了不少资料,给大家分享下我的方案。

Ready to learn more? Subscribe to our newsletter for weekly tutorials and tips.

正文

调用大规模嵌入式JS混淆器是一种“虚拟机”吗? Ultimatel... |黑客新闻

调用大规模嵌入式JS混淆器是一种“虚拟机”吗?最终,它不会将任何内容翻译成较低级别的语言。

尽管如此,我还是不知道。这确实将JS混淆提升到了一个新的水平。

有一种奇迹,这种混淆的目的是什么?天真的看法是,混淆通常是为了保护知识产权……但这是客户端代码,不会泄露他们的秘密酱汁算法的任何信息。

>调用大规模嵌入式JS混淆器是一种“虚拟机”吗?最终,它不会将任何内容翻译成较低级别的语言。

“TikTok使用的是成熟的字节码虚拟机,如果你浏览它,它支持作用域、嵌套函数和异常处理。这不是一个典型的虚拟机,这表明它肯定是精致的。”

但这基本上是虚拟机的模拟器,不是吗?这就像将Flash AVM2重写为JS...它仍然

虚拟机是C + +。它可以JIT编译东西,但只是因为它实际上是在保留可能溢出的内存,并且(半技术性地)从这个优势中,更接近金属,在AVM2中流动了所有的缺陷,这些缺陷导致了大部分Adobe的Flash问题。在使用Java或Flash等插件的网页中植入虚拟机,以绕过运行浏览器沙盒代码(可以接管物理内存) ,这与仅在Javascript中模拟虚拟机大不相同。我不会叫WR

性能优于浏览器中的可用功能。如果你用它作为衡量标准,这显然不符合这个目标。

>但这基本上是虚拟机的模拟器,不是吗?

>此外,虚拟机的一个主要目的是提高浏览器的性能。如果你用它作为衡量标准,这显然不符合这个目标。根据您的其他评论:

>我将其定义为自定义指令集加上某种插件,允许这些操作码比用它们编写的语言更接近金属。

虚拟机只是指虚拟机。除此之外,您提出的所有其他期望(例如, “比浏览器中的可用内容提高性能” )完全无关紧要。JVM显然不会比本机运行更能提高Java代码的性能,但没有人否认它是一个虚拟机。VMWare产品也是如此( “VM”字面意思是它的名字! ) ,它执行x86代码,但远离运行它的“金属”。

虚拟机混淆是恶意软件开发人员常用的技术。

应用VM术语是因为混淆器创建自定义指令集并执行自定义字节代码。这是按生成生成的。

更多内容

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

篇幅原因就先写这么多,后面有空会再补充更多实战案例。有问题评论区见。

Reference: Is calling a massive embedded JS obfuscator a "VM" a bit of a ...


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