当前位置: 首页 > news >正文

cdp-(Chrome DevTools Protocol) browserscan检测原理逆向分析

https://www.browserscan.net/zh/bot-detection
首先,打开devtools后访问网址,检测结果网页显示红色Robot,标签插入位置,确定断点位置可以hook该方法,也可以使用插件等方式找到这个位置,本篇不讨论.

在这里插入图片描述

Robot标签是通过insertBefore插入的.

在这里插入图片描述

再往上追栈可以发现一个32长度数组,里面存在的都是标签
在这里插入图片描述

再往上追栈找到32位数组产生的地方,会发现Eo的函数
在这里插入图片描述

再追进Eo函数,是由ge产生,ge里面传的参数又是个函数名称是个下划线,这个位置被反复调用感觉比较难调试,分别进ge函数和下划线函数看看
在这里插入图片描述

进ge函数后,再跟进几个函数会发现en这个函数,会发现数组构建模版
在这里插入图片描述

进入下滑线函数会发现三木表达式i(d)如果是真就创建normal标签,如果是假就创建robot标签
在这里插入图片描述

到这里其实是比较明确了的,就看i(d),i比较不重要,就是个判断,主要看d的值为什么是个false;

接着分析d,往上找可以找到d = S(!0),进入S函数,再进一两层简单函数,S(!0)就是new了一个hp类
在这里插入图片描述

d要false,那么我们就在set的地方打一个条件断点,看什么时候设置的false,一番调试后发现,其实就在初始化下面一些代码,这里绕了远路不用点断点去找的
在这里插入图片描述

这里关键就看这个qe为什么是个true了,导致执行了后面的d.value=!1,进入qe函数分析下
在这里插入图片描述

首先定义了一个Error对象,重写了get方法,只要被调用那么变量e就会赋值true,最终返回的就是true,这里是使用console.debug调用的这个函数,只要devtools打开,控制台也就打开,这是debug函数就会生效.

接下来就是过检测,修改chromium浏览器源码,把console.debug函数的定义里面的内容注释,那么即使是定义的Error对象重写了get方法,执行debug函数的时候也不会被调用get方法,最终也就不会被检测到devtools打开

最后放一张修改后的chromium浏览器达到过检测的效果,直接置空debug,log等函数,在添加自己的logv函数打印日志;
在这里插入图片描述

总结:

第一次看这个网站,在逆向过程中也并不是很顺利

该网站存在大量的混淆,函数全部重使用简单别名,es6的语法下,大量使用import和export关键字进行重命名干扰变量的追踪,使用&符号进行流程控制,导致走错了很多分支;

js中有log等日志输出的函数被置空,在没有自己的函数l日志输出方法logv之前,直接在脚本开始之前保存号log函数,这样日志断点也是可以正常使用

相关文章:

  • AVUE 搜索 和 表单 标签分开对齐方式
  • Python与R语言用XGBOOST、NLTK、LASSO、决策树、聚类分析电商平台评论信息数据集
  • Linux安装yum和python
  • Python将不能修改的值称为不可变的 ,而不可变的列表被称为元组------元组
  • leetcode刷题日记——螺旋矩阵
  • 运行一次性任务与定时任务
  • Python 质数筛选:从入门到优化的 5 种方法
  • RPA VS AI Agent
  • 如何解决线程安全问题(不涉及分布式情况)
  • MTCNN 人脸识别
  • 对于GAI虚假信息对舆论观察分析
  • 月之暗面开源:多模态推理模型(激活2.8B) Kimi-VL-A3B-Thinking
  • PCDN收益高低的关键因素
  • Python p_tqdm包介绍
  • 2025年土建施工员考试题库及答案
  • js中较为不错的对象内置方法
  • Cribl 通过Splunk search collector 来收集数据
  • 【时时三省】(C语言基础)选择结构程序综合举例
  • 第十五届蓝桥杯C/C++B组国赛真题讲解(分享去年比赛的一些真实感受)
  • 什么是回表?哪些数据库存在回表?
  • 天津房地产集团网站建设/自制网站
  • 黄石做网站建设的/百度排名点击器
  • 网站怎么在百度搜不到/搜索引擎seo优化
  • 手机适配网站/企业seo优化服务
  • 聊城做网站优化/长沙网站推广
  • 中山网站建设公司/定制网站建设