• 爬虫神器|这是我过Debugger检测最简单的方法,没有之一


    关注它,不迷路。       

    本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!

    1. 工具介绍

    Reqable是一款跨平台的专业HTTP开发和调试工具,在全平台支持HTTP1、HTTP2和HTTP3(QUIC)协议,简单易用、功能强大、性能高效,助力程序开发和测试人员提高生产力!本产品需要一定的网络基础知识,适合开发、测试、网络、安全、爬虫等工程专业人员使用,或者在专业人员的指导下使用。

    下载地址:

    https://reqable.com/zh-CN/

    2. 逆向分析

    安装好工具后,按照提示安装证书,打开百度,发现可以抓包了,直接开干。

    实战地址:

    'aHR0cHM6Ly93d3cueHkxMDgwLm5ldC8='

    浏览器打开后,会停在debugger位置:

    8284313f6ecc4d2f98f83c7333b34798.png

    通过分析上面的代码得知,这个 loop函数调用在这里:

    setInterval(loop, 1);

    而这个函数仅仅只是干扰调试,有或者无均不影响整个网站,因此,将该行直接屏蔽掉即可。所以,需要修改它的响应代码。

    3. 小试牛刀

    1.点击软件界面的这里的图标,开启 重写 功能

    4c6aa19e27663740275578f7aefb34a3.png

    2.然后右键点击这个图标,选择 新建规则:

    bea4b6329953ae6b8e05b02044d1a034.png

    3.如图所示,新建规则:

    f168916ba59a4e5df65e96ef1f5daead.png

    名称可以随便输入,URL 填写完整,注意后面加 * 号,正则匹配一下,后面的 *? 点击让它高亮即可。行为,则选择 修改响应:

    6a38bf0e3956f1021217c56876fc830d.png

    编辑框里面如上编辑,屏蔽掉该语句的执行,然后点击完成即可。

    4.再次请求该网站,不再停留在debugger位置了,搜索发现,已经被替换掉了。

    6df5f12a54f139b26af444fb772eb17e.png

    4. 其他功能

    如果有多处需要修改,上面的操作就显得力不从心了,这个时候,我们可以选择它的 替换响应 功能:

    0a76829b24713551e7af003b12f89c7b.png

    我一般选择 文件替换:

    24621eeaf9f9aef140ca73c11c02fc18.png

    大家可以试试把首页dump下来,然后替换试试,本文就不重复赘述了。

    还有另外一种功能,可以实现同样的效果,就是它强大的 脚本功能 .

    关掉上面的 重写 功能,打开 脚本 功能,如下图:

    059bc2ec2880d7f2148a2cd85268572a.png

    同样,右键点击这个图标,选择 新建脚本 :

    cf29823beb3efa598cb0f9fd08b7b57e.png

    名称和URL 设置,和上面的一样,没啥差别,我们修改它的响应函数:

    1. def onResponse(context, response):
    2. # Update status code
    3. # response.code = 404
    4. # APIs are same as `onRequest`
    5. test = str(response.body)
    6. if "setInterval(loop, 1);" in test:
    7. print ("666")
    8.       response.body.replace("setInterval(loop, 1)",";")
    9.       return response;

    使用的是Python语言,非常的nice,简单看下API文档,就知道怎么写了。

    这里我 将它的 body先转成 字符串 类型,然后再判断和改写。本案例中不用做判断,直接替换即可。

    1. def onResponse(context, response):
    2. # Update status code
    3. # response.code = 404
    4. # APIs are same as `onRequest`
    5. response.body.replace("setInterval(loop, 1);",";")
    6. return response

    按下 Ctrl + S 保存,但不要关闭这个窗口,方便我们观察日志。再次刷新网站,窗口日志显示:

    6bb9684f223aad236785695c345c61cb.png

    这里打印了 666,说明 已经执行了替换。再次按下F12,不再停留在debugger位置了,非常的nice。

    今天的文章就分享到这里,后续分享更多的技巧,敬请期待。

    72f603dd25df045dd8d594757c40d39a.jpeg

    欢迎加入知识星球,学习更多AST和爬虫技巧。

  • 相关阅读:
    Linux--进程间通信
    抽象代理模式2.0版本
    基于 Angular和Material autocomplete组件再封装的可双向绑定key-value的可输入下拉框
    Momentum Safe 启动大使计划,大家积极参与进来,让我们的社区越来越壮大
    jvm 内存泄露、内存溢出、栈溢出区别
    海康Visionmaster-全局脚本:VM 加载方案后自动执行 的方法,如何让VM在方案加载后自动执行流程?
    【Flink】Flink on yarn 使用 pre-job模式 提交任务kerberos 认证 源码代码解读
    前端学习笔记二.布局方式的选择与Flex布局示例
    老系统如何重构之最全总结
    Web前端:创建符合Web可访问性标准的HTML布局
  • 原文地址:https://blog.csdn.net/qq523176585/article/details/133054297