基本工具
1: Notepad(修改保存) + ReRes(插件替换) ReRes安装教程
2: Fidder + 编程猫 + hook
情况
- fidder基本:fidder插件使用hook构造器, 例如下
//配合编程猫专用工具进行hook
(function() {
'use strict'
//过瑞数 debuger
var eval_ = window.eval;
window.eval_ = function(x){
eval_(x.replace("debugger;", " ; "));
}
//过瑞数debuger检测
window.eval.toString = eval_.toString;
})();
-
reres基本:把js存到本地,找到debugger删除替换,保存,然后用reres替换映射运行。
注意: 替换debugger相同空格来替换,即8个空格 -
Js代码中夹杂多个debugger:js代码中夹杂多个debugger,因为是字符串,直接拿出来删掉,同样用reres替换映射即可
-
debugger存放html中:在debugger的js代码被注入到html网页中,这里用fidder,打开里面找到【fidder脚本】,里面找到函数 OnBeForeResponse 添加响应体替换,如图:
-
debugger被js函数拼接: js代码中debugger没有关键词,是被混淆后用拼接的形式执行。找到debugger js拼接代码,扣出来,全局搜索拼接代码,找到最近的{},把里面的debugger拼接代码全部删掉,保存用reres替换映射即可
-
多层文件debugger叠加 (重要!!!) : js文件可能有好几层文件,文件实质上内容都是一样的,但是文件名,文件类型可能不一样,有的可能是虚拟机,js文件,js文件名中少部分名称更改的两层js文件。
解决方法也是一个个文件查找到删除,然后用reres去替换映射,只是多加了几层文件来混淆 -
debugger 在定时器 (setlnterval) 中 ,使用hook去过滤。代码如下:
setInterval_back = setInterval
setInterval = function(a,b){
if(a.toString().indexOf('debugger')== -1){
return null;
}
setInterval back(a, b)
}