JS逆向:某专利检索网无限反 debug 问题解决

1. 网页反 debug 机制分析

  • 反 debug 调试措施,是通过在代码中 添加 debugger 代码 实现,通过 debugger 阻止非法用户调试代码,一般会同时通过内部死循环逻辑让网页呈现无限 debug 状态;
  • 打开 国家知识产权局专利检索网页( http://cpquery.cnipa.gov.cn/ ),打开网页调试模式,随机出现下面的状况;
image.png
  • 将跳出的代码格式化,我们发现 debugger 字符;
image.png
  • 全局搜索 debugger,我们发现如下代码逻辑,可见使用了递归循环调用 debugger,以实现无限 debugger 的效果;
image.png

2. 解决方法

2.1. 禁用浏览器断点

  • 如下图,点击箭头指示位置,禁用浏览器断点;
image.png
  • 之后按键盘 F8,问题解决;


    image.png
  • 问题:
    -- 禁用浏览器断点后将无法下断点、调试代码,所以此方法并不理想;
    -- **这种方法一般用于 获取网页元素,不能用于调试过程;

2.2. Fiddler 绕过 debbuger

  • 有两个断点位置:
    -- before request:也就是发送请求之后,但是Fiddler代理中转之前,这时可以修改请求的数据;
    -- after response:也就是服务器响应之后,但是在Fiddler将响应中转给客户端之前,这时可以修改响应的结果;

2.2.1. 下断方法一:为指定网站的请求下断点

-- 打开 fiddler,找到下图箭头指向位置:

image.png

-- before request

bpu cpquery.cnipa.gov.cn

-- after response

bpafter cpquery.cnipa.gov.cn

-- 消除 before request 断点

bpu

-- 消除 after response 断点

bpafter 

2.2.2. 下断方法二:设置全局断点

  • 打开 fiddler,依次点击 Rules -> Automatic Breakpoints -> Before Reuqests
aaa.png
  • 刷新网页,得到下图所示红色提示,表示下断成功(点击 Go 按钮可以进行下一步);
微信图片_20200812191044.png
  • 修改参数,发起请求;
image.png
  • 清除断点,依次点击:rules -> automatic breakpoint -> disabled

2.3. 条件断点(conditional breakpoint)

  • 找到 debugger 代码所在位置,在代码行天剑条件断点,设置一个 结果值为 False 的条件,这样就不会调用 debugger;
image.png
  • 在上面的位置输入下面的条件,然后 enter 输入
1===0
image.png
  • 由于 debugger 代码出现在多个位置,所以需要多次添加上面的 1===0 条件断点;

你可能感兴趣的:(JS逆向:某专利检索网无限反 debug 问题解决)