今天干活的时候,要在前端调试找token值,打开“源代码”选项卡的时候,就不断步入“VMXXX”格式的源码当中,在查询了一些资料之后,发现Node.js反调试的一种手段,网上有说是Google chrome加载evel()函数,应该是存在这种的情况的,不过在测试的过程当中大多数应该都是反调试的这种。

该反调试的方法主要的作用是不断的产生VMXXX文件直至浏览器崩溃。

如果是单纯的查看源码的话那就可以直接禁用断点。

这种方法只是适用于查看源代码,无法进行调试。

目前可以查到比较有效的方法是“置空函数法”

从栈当中找到源码的位置,通过分析将产生VM反调试的函数置空,这样就不会一直步入到VMXXX当中了,网上有一种方法说是

执行 Function.prototype.constructor = function(){} 即可

这种方法即是“置空函数法”,但是不能盲目的使用这种方法,因为大多数的时候应该都是不管用的,因为我使用了就没有起到它该有的效果。

例如说这个例子: 看字不要看图,图是找的别人的

从栈当中找到源代码的文件,之后跳转到源代码文件当中

之后在控制台将该函数置空。

在查询资料的过程当中,在写文章的时候也看到、想到其他的方法,产生VMXXX的方法不在函数当中,可能需要使用到 JS文件替换法,JS本地HTML调试等等。

引用:

关于某解析站的无限Debugger的分析_tiuvl-CSDN博客

突破前端反调试–阻止页面不断debugger – 问题与解决 – SegmentFault 思否

绕过JavaScript debugger三种解决方法_js debugger反调试-CSDN博客