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

3.web逆向之开发者工具调试

在web逆向分析中,通过使用浏览器开发者工具(Chrome/Firefox DevTools)调试,可以准确的定位到代码块,分析参数如何生成,通过那段代码生成的至关重要。熟悉开发者工具调试朋友们可以当本文在放屁。

这里以chrome为例,打开google示例,或者自己写段html + js代码,然后按F12, 进入source。
一般打开Chrome DevTools显示的英文,如果想设置中文,点击设置按钮,进入设置界面language选项->选择
在这里插入图片描述在这里插入图片描述
可以根据自己的喜好选择。

界面介绍

进入source选项卡后,出现下面界面
在这里插入图片描述
资源(Sources)面板包含三个部分:
文件结构树区域:列出了 HTML、JavaScript、CSS 和包括图片在内的其他依附于此页面的文件。Chrome 扩展程序也会显示在这。
代码编辑(Code Editor) 区域展示源码。
调试区(JavaScript Debugging) 区域是用于调试的。

断点(break point)

常用的断点分为以下几类:
在这里插入图片描述
这里介绍经常用到的几种:

代码行断点

使用代码行断点可以暂停 JavaScript 代码,了解此处的js代码的堆栈引用以及变量情况。
在代码编辑区点击代码行号就可以给这行代码加上断点。
在这里插入图片描述

条件代码行

右击代码行,选择add conditional break point, 然后输入表达式。
在这里插入图片描述

条件代码行需要当表达式的值为true时候,才会在这行代码处暂停。这对于遍历比较多的数据时,想查看某一种情况特别有用。

可以通过调试区的Breakpoints选项卡对代码行和条件代码行断点进行修改、删除、停用/启用等操作。
在这里插入图片描述

XHR/提取断点

当XHR 的请求网址包含指定字符串时中断,开发者工具会在 XHR 调用 send() 的代码行处暂停。
调试区的XHR/fetch breakpoints选项卡, 点击+,填写关键字
在这里插入图片描述

事件监听器断点

当触发事件后运行事件监听器上的代码时暂停。通常配合代码行断点和条件断点。
在这里插入图片描述

其他断点请参考Chrome DevTools断点使用

调试区的其他面板

在这里插入图片描述

最顶端

当前监听XHR 断点中的那个url。当XHR断点有可能有多个,或者会匹配多个。这个区域显示的是当前监听的url

watch

调试的时候,可以显示任意表达式的当前值
在这里插入图片描述

call statck

代码暂停当前位置所执行的堆栈信息。简单说就是代码怎么一步一步执行到这一行的。
在这里插入图片描述

代码调试示例

以google示例为例,给点击事件添加了断点,当点击按钮就触发了点击函数并暂停:
在这里插入图片描述
接下来主要介绍绿色框里面的按钮:

在这里插入图片描述 (F8)调到下一个断点,或者没有断点执行结束。

在这里插入图片描述 (F9) 运行下一条语句, 碰见if、for、函数等代码块会执行到代码块里面。

在这里插入图片描述 (F10)跟上一条命令“下一步(Step)”类似,但是不会进入到代码块中。
在这里插入图片描述(F11)和“下一步(Step)”类似,但是会进入到异步代码中执行。示例

在这里插入图片描述 (Shift+F11)跳出当前函数(此函数的之后的代码还是会执行),执行到下一行。当我们使用 在这里插入图片描述 偶然地进入到一个嵌套调用,但是我们又对这个函数不感兴趣时,我们想要尽可能的继续执行到最后的时候是非常方便的。
在这里插入图片描述 启用/禁用所有的断点。

在代码中的某一行上右键,在显示的关联菜单(context menu)中点击一个非常有用的名为 “Continue to here” 的选项。
当你想要向前移动很多步到某一行为止,但是又懒得设置一个断点时非常的方便。

http://www.lqws.cn/news/542485.html

相关文章:

  • Guava Cache 本地项目缓存
  • JDBC 工具类:1.0到3.0版本
  • leetcode 295. 数据流的中位数
  • element-plus限制日期可选范围(这里以7天为例)
  • Unity 脚本自动添加头部注释
  • Qwen VLo :一个多模态统一理解与生成模型
  • 在shell中直接调用使用R
  • 【容器】容器平台初探 - k8s整体架构
  • RJ45 以太网与 5G 的原理解析及区别
  • swagger访问不了的解决方案 http://localhost:8080/swagger-ui/index.html
  • 可编辑37页PPT | 数字化转型咨询规划方案
  • Mysql Mybatis批量插入和批量更新数据
  • 设计模式 | 适配器模式
  • LaTeX下载与实践入门指南
  • 在 Dev Container 中实现 GUI 开发的解决方案
  • 报表控件stimulsoft教程:在报表、仪表板和 PDF 表单自动生成缩略图
  • SQL Server 中 GO 的作用
  • mPaaS 客户端诊断概述
  • CSS3实现同心圆效果
  • Go 语言中的 package 和 go modules
  • (二)YOLOV12部署训练
  • 人工智能-基础篇-1-人工智能介绍(发展史,技术体系,技术基础,主要领域,前景和挑战)
  • macOS,切换 space 失效,向右切换space(move right a space) 失效
  • Django导入错误:`from django.conf.urls import url` 的终极解决方案
  • 【机器学习深度学习】线性回归(基本模型训练流程)
  • 【AS32系列MCU调试教程】SPI调试的常见问题解析
  • 【AI助手】释放双手,基于Cursor Agent与Playwright MCP的浏览器自动化实战
  • Windows家庭版安装docker
  • 【Pandas】pandas DataFrame last_valid_index
  • 校企协同育人,智慧养老实训基地助力人才就业无忧