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的,只是没有找到有用的信息,恰好三木表达式简写了robot"a(i(d) ? e.$t("webdriver.normal") : e.$t("webdriver.bot"))"并且它还有个webdriver,干扰了判断,以为是检测webdriver的.还是得多搜索几次碰碰运气没准就有了.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/3110.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

HUGE滤波器分析、matlab例程

文章目录 1. 动态噪声方差2. 更新卡尔曼增益时考虑实时噪声3. 更灵活的误差模型4. 实时调整和自适应能力代码示例中的体现总结 HUGE滤波器专注于处理异方差性,主要体现在以下几个方面: 1. 动态噪声方差 在传统的卡尔曼滤波中,观测噪声和过程…

[OS] Assignment3_Prerequisite_mmap()_1

专业解释 这张图片展示了 mmap() 函数的作用和其在内存映射中的应用。在操作系统中,mmap() 是一个系统调用,它的主要作用是将文件或设备的内容映射到进程的虚拟地址空间中,使得文件内容可以像内存一样直接访问。 mmap() 函数的核心功能&…

部署istio应用未能产生Envoy sidecar代理

1. 问题描述及原因分析 在部署Prometheus、Grafana、Zipkin、Kiali监控度量Istio的第2.2章节,部署nginx应用,创建的pod并没有产生Envoy sidecar代理,仅有一个应用容器运行中 故在随后的prometheus中也没有产生指标istio_requests_total。通…

HBuilderX自定义Vue3页面模版

HBuilderX自定义Vue3页面模版 首先在HBuilderX工具下的任意一个项目添加新建自定义页面模版 新建模版文件&#xff0c;并打开进行编辑 vue3-setup-js.vue文件里填写样式模版&#xff08;根据自己的需要进行修改&#xff09; <template><view class"">&…

PAT甲级-1084 Broken Keyboard

题目 题目大意 坏的键盘不能打出字符。给出2个字符串&#xff0c;一个字符串是期望打出的字符&#xff0c;另一个字符串是实际打出的字符。要求输出坏掉的字符&#xff0c;字母键用大写字母。字符范围是_以及大小写字母和数字。 思路 因为大小写字母是同一个键&#xff0c;所…

【天线&其他】大疆无人机热成像人员目标检测系统源码&数据集全套:改进yolo11-bifpn-SDI

改进yolo11-ASF等200全套创新点大全&#xff1a;大疆无人机热成像人员目标检测系统源码&#xff06;数据集全套 1.图片效果展示 项目来源 人工智能促进会 2024.11.03 注意&#xff1a;由于项目一直在更新迭代&#xff0c;上面“1.图片效果展示”和“2.视频效果展示”展示的系…

gitee推送代码remote rejected

其原因是码云邮箱设置怕暴露邮箱账号&#xff0c;所以禁止了代码推送 直接把这个选项关掉就行了

英特尔股价分析,财报超出预期,英特尔股票该买入还是卖出?

猛兽财经核心观点&#xff1a; &#xff08;1&#xff09;虽然英特尔第三季度的营收超出预期&#xff0c;但盈利却不及预期。 &#xff08;2&#xff09;华尔街分析虽然仍对英特尔持谨慎态度&#xff1b;但预计其2025年后有望取得重大进展。 &#xff08;3&#xff09;猛兽财经…

靠谱的零代码产平台开发— 应用创建与设置

在当今数字化快速发展的时代&#xff0c;企业对于快速构建和部署应用的需求日益增长。然而&#xff0c;传统的应用开发方式往往耗时耗力&#xff0c;且需要专业的编程技能。为了应对这一挑战&#xff0c;靠谱的零代码平台应运而生&#xff0c;它们通过直观的拖拽式界面和丰富的…

如何优雅处理异常?处理异常的原则

前言 在我们日常工作中&#xff0c;经常会遇到一些异常&#xff0c;比如&#xff1a;NullPointerException、NumberFormatException、ClassCastException等等。 那么问题来了&#xff0c;我们该如何处理异常&#xff0c;让代码变得更优雅呢&#xff1f; 1 不要忽略异常 不知…

Scrapy入门

Scrapy 是用 Python 实现的一个为了爬取网站数据、提取结构性数据而编写的应用框架。 安装scrapy pip install scrapy2.5.0 1.新建 Scrapy项目 scrapy startproject mySpider # 项目名为mySpider 2.进入到spiders目录 cd mySpider/mySpider/spiders 3.创建爬虫 scrapy gensp…

从0开始linux(20)——文件(1)文件描述符

欢迎来到博主的专栏&#xff1a;从0开始linux 博主ID&#xff1a;代码小豪 文章目录 文件打开文件文件修饰符从linux源码了解文件描述符 文件 首先我们先来搞清楚文件是什么&#xff1f;文件其实就是一段数据&#xff0c;是一段存储在磁盘当中的数据&#xff0c;文件是由文件内…

【汇编语言】[BX]和loop指令(二)——在Debug中跟踪用loop指令实现的循环程序

文章目录 前言1. 题目引入1.1 问题一1.2 问题二1.3 问题三1.4 代码实现 2. 程序跟踪2.1 加载程序&#xff0c;用r命令查看寄存器内容2.2 用U命令查看内存中的程序2.3 用T命令进行程序跟踪2.4 用P命令使得程序返回 3. 循环次数更多的程序3.1 代码实现3.2 一个新的命令——g3.3 如…

Unity照片墙效果

Unity照片墙效果&#xff0c;如下效果展示 。 工程源码

鸿蒙HarmonyOS开发生日选择弹框

鸿蒙HarmonyOS开发生日选择弹框 生日选择弹框和城市选择弹框差不多&#xff0c;都是通过观察上一个数据变化来设置自己的数据 一、思路&#xff1a; 一个弹框上建三个compoent&#xff0c;一个年&#xff0c;一个月&#xff0c;一个日。日的数据是根据年和月进行变化的 二、…

浏览器内核版本更新:Chrome 130✔

SunBrowser 内核版本更新至 Chrome 130&#xff0c;UA 同步更新至 130。 如何更新浏览器内核版本&#xff1f; 本地设置更新 在 AdsPower 客户端点击右上角的[设置]&#xff0c;再点击[本地设置]&#xff0c;下滑找到版本信息&#xff0c;选中需要的内核版本立即下载。 新建浏…

【实践】某央企研究院如何打造IT监控告警平台?

01客户简介&#xff1a; 案例客户为某央企下属研究院。 02痛点分析&#xff1a; 随着信创国产化持续推进&#xff0c;案例客户已完成部分IT核心系统的替代&#xff0c;部署了一系列国产软硬件设施&#xff0c;如Kylinv10操作系统、融智通网络设备等。由于信创生态不够成熟&a…

SpringBoot在线教育系统:集成第三方服务

5系统详细实现 5.1 普通管理员管理 管理员可以对普通管理员账号信息进行添加修改删除操作。具体界面的展示如图5.1所示。 图5.1 普通管理员管理界面 5.2 课程管理员管理 管理员可以对课程管理员进行添加修改删除操作。具体界面如图5.2所示。 图5.2 课程管理员管理界面 5.3 …

vscode | 开发神器vscode快捷键删除和恢复

目录 快捷键不好使了删除快捷键恢复删除的快捷键 在vscode使用的过程中&#xff0c;随着我们自身需求的不断变化&#xff0c;安装的插件将会持续增长&#xff0c;那么随之而来的就会带来一个问题&#xff1a;插件的快捷键重复。快捷键重复导致的问题就是快捷键不好使了&#xf…

C++优选算法九 链表

一、常用技巧 画图&#xff01;直观形象&#xff0c;便于理解。引入虚拟“头”结点。不吝啬空间。快慢双指针&#xff1a; 判环 找链表中环的入口 找链表中倒数第n个结点 二、常用操作 创建一个新结点尾插头插 三、示例题目 1.两数相加. - 力扣&#xff08…