js_reverse/zy-反调试/zy-反调试.md
2022-01-06 15:52:37 +08:00

1.1 KiB
Raw Blame History

分类

显性

debugger debugger

    非虚拟机 右键编辑当前断点的类型,置成 false
    重写代码,谷歌内核默认提供
    浏览器插件:油猴
    代理替换: fiddler 
    虚拟机 eval Function 运行后进入虚拟机状态VM4746 瑞数,
    debugger 可以被 hook

死循环打开新页面写你的历史记录url

写法:循环语句,无限制递归,两个方法相互调用
for(;;)
while(true)

隐性(暗桩)

引向错误的逻辑
浏览器正常的堆栈

检测方法

按下f2的建键盘监听
检测浏览器内外的高度差值
检测开发者人员工具变量是否为true
利用代码断点时间差
检测conslog调用的次数
利用toString
检测非浏览器环境

案例中国移动的 debugger

# 重写原形链 Function.prototype.constructor
var aaa = Function.prototype.constructor

Function.prototype.constructor = function(x){
    if(x=="debugger"){
            return AAA(x);
        }
    return function(){};
}