cdp(Chrome DevTools Protocol)检测分析

发布时间:2026/10/16 22:10:31
cdp(Chrome DevTools Protocol)检测分析 如需转载请注明出处.欢迎小伙伴一起讨论技术.逆向网站:aHR0cHM6Ly93d3cuYnJvd3NlcnNjYW4ubmV0L2JvdC1kZXRlY3Rpb24首先,打开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函数,这样日志断点也是可以正常使用回过头来其实可以直接搜索normal关键字直接找到关键的三木表达式,在逆向过程中其实是有搜索robot的,只是没有找到有用的信息,恰好三木表达式简写了robota(i(d) ? e.$t(webdriver.normal) : e.$t(webdriver.bot))并且它还有个webdriver,干扰了判断,以为是检测webdriver的.还是得多搜索几次碰碰运气没准就有了.

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询