Javascript反调试-滥用Chromium 实战教程

发布于 4 小时前  6 次阅读


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

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

正文

Javascript反调试-滥用Chromium Devtools视野镜面板Chromium Devtools视野镜面板

可以允许devtools在主线程被调试器暂停时执行Javascript !我用这个技巧创造了一个非常强大的

跟踪用户完成的调试流程并相应地更改执行流程-查看

作为长期反调试技术研究的一部分,我确实(强烈建议您阅读

如果你从来没有为了了解我的工作的性质而这样做) ,我遇到了一个

这促使我进行了我将在本文中介绍的研究:

这让我想知道它是如何工作的。让我与您分享我的理解:

当您在不打开开发工具的情况下运行上面的代码时,什么也不会发生。但是一旦您打开开发工具,

那里发生的事情是,代码不断记录创建的

一旦devtools被要求记录有关元素的详细信息,它尝试获取以呈现它的详细信息之一是

,因为它是一种非常常用的属性,也是一种重要的属性。因此,通常情况下,如果您创建

但在上面的代码示例中,代码的创建者覆盖了

元素本身具有一个getter ,一个getter函数,当被调用时,它声称确信知道devtools是开放的。

当你想到这一点时,这种确定性实际上是合理的。对此的引用

元素只能通过函数的内部作用域访问

更多内容

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

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

Reference: Javascript Anti Debugging - Abusing Chromium Devtools Scope Pane


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