JS逆向:常见debugger的解决

一、anonymous类型的debugger解决:

        1.先输入:

        (function(){}).constructor === Function        

                如果返回true则继续输入,返回false不适用。

        2.再输入:

        Function.prototype.constructor = function(){}

二、为单个debugger存在:

             鼠标右键,然后选择“一律不在此处暂停”,然后F8跳过即可。

        

三、过new Date()类型的debugger:

        1.第一种方法(重写toString):

(function() {
  // 保存原始的 toString 方法
  var originalToString = Function.prototype.toString;
  // 重写 toString 方法
  Function.prototype.toString = function() {
  var originalCode = originalToString.call(this);
  // 检查并移除 debugger 语句
  var modifiedCode = originalCode.replace(/debugger;/g, '');
  return modifiedCode;
  };
  // 假设这是要绕过的原始函数
  var originalFunction = function() {
  var a = new Date(); 
  debugger; 
  return new Date() - a > 100;
  };
  // 测试重写后的函数
  console.log(originalFunction.toString());
  console.log(originalFunction());
})();

        2. 第二种方式(某数):

        替换的方式来覆盖原来的代码

        (1):替换debugger

        (2):选择条件断点

        (3):添加条件代码 

_$fQ[2] = _$fQ[2].replace("debugger;","        ");

        3.第三种方式(eval执行):

        eval_ = eval;
        eval = function(a){if(a=='debugger'){return ''}else{return eval_(a)}}    

四、万能过debugger

         (1):禁用所有断点

                

        (2):再点击断点执行,就可以了

        (3):效果

        

 

创作不易求个赞再走~~~

学习交流QQ:450297392

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值