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

逆向破解:x64dbg

文章目录

  • 一、CPU窗口
    • 1、反汇编窗口
    • 2、寄存器窗口
    • 3、栈地址窗口
    • 4、十六进制数据窗口
    • 5、堆栈参数解析窗口
  • 二、常用快捷键
  • 三、字符串检索功能
  • 四、调试功能
    • 1、上一步


一、CPU窗口

1、反汇编窗口

反汇编窗口

2、寄存器窗口

寄存器窗口用于显示和解释当前线程环境下CPU寄存器的各种状态值和内容,并且读者可以通过双击这些寄存器组来对其进行动态的调整参数

在这里插入图片描述

寄存器描述
EAX通用寄存器,用于存放函数返回值、算术运算结果等。
EBX通用寄存器,用于存放内存地址或其他通用数据。
ECX通用寄存器,用于存放函数参数。
EDX通用寄存器,用于存放内存地址或其他通用数据。
ESI通用寄存器,用于存放源数据的地址,例如字符串拷贝等操作。
EDI通用寄存器,用于存放目标数据的地址,例如字符串拷贝等操作。
EBP基址指针,用于存放当前栈帧的基址。
ESP堆栈指针,用于存放当前堆栈顶部的地址。
EIP指令指针,用于存放当前正在执行的指令的地址。
EFLAGS标志寄存器,用于存放CPU的状态标志,例如进位标志、零标志、符号标志等。

标志寄存器(EFLAGS)是一个16位的寄存器,用于存储CPU运算的状态标志,例如进位标志、零标志、符号标志等。下面列出了x86架构CPU中的标志寄存器以及它们的含义:

标志位中文名称描述
CF进位标志当无符号整数加法或减法的结果超出了寄存器的宽度时,该标志位会被设置为1。CF=1表示有进位发生,CF=0表示无进位发生。
PF奇偶标志当一个操作的结果中有偶数个二进制位为1时,该标志位会被设置为1。PF=1表示结果中有偶数个1,PF=0表示结果中有奇数个1。
AF调整标志当一个二进制算术操作(例如加法或减法)中低4位产生了进位或借位时,该标志位会被设置为1。AF=1表示有进位或借位发生,AF=0表示无进位或借位发生。
ZF零标志当一个操作的结果为零时,该标志位会被设置为1。ZF=1表示结果为零,ZF=0表示结果不为零。
SF符号标志当一个操作的结果为负数时,该标志位会被设置为1。SF=1表示结果为负数,SF=0表示结果为非负数。
TF陷阱标志该标志位用于单步调试,当TF=1时,CPU会在每个指令执行后暂停并等待调试器的命令。
IF中断标志该标志位用于控制CPU是否响应中断请求。当IF=1时,CPU允许中断请求;当IF=0时,CPU禁止中断请求。
DF方向标志该标志位用于控制字符串操作的方向,当DF=1时,字符串操作是从高地址向低地址进行的;当DF=0时,字符串操作是从低地址向高地址进行的。
OF溢出标志当有符号整数加法或减法的结果超出了寄存器的宽度时,该标志位会被设置为1。OF=1表示有溢出发生,OF=0表示无溢出发生。

3、栈地址窗口

在这里插入图片描述

4、十六进制数据窗口

在这里插入图片描述

5、堆栈参数解析窗口

在这里插入图片描述

二、常用快捷键

通过选项快捷键来设置快捷键,下面是常用快捷键

在这里插入图片描述

调试控制

F2:开始/停止调试
F3:单步执行
F7:进入函数调用
F8:跳过函数调用
F9:继续执行
F12:暂停/继续执行

断点

F5:添加/删除断点
Ctrl + F5:添加/删除硬件断点
F6:添加/删除条件断点
F9:启用/禁用断点
Ctrl + F9:启用/禁用所有断点

寄存器

Ctrl + R:打开/关闭寄存器窗口
Ctrl + G:跳转到指定地址
F2/F4/F6:在寄存器窗口中修改寄存器的值

内存

Ctrl + M:打开/关闭内存窗口
Ctrl + E:打开/关闭表达式窗口
Ctrl + F:查找指定字节序列
Ctrl + Shift + F:查找指定指令序列
Ctrl + D:将内存中的数据以十六进制形式导出到文件中

三、字符串检索功能

开始调试后,右键选择搜索,再选择所有模块,选择字符串。

在这里插入图片描述

就会检索出所有模块的字符串,结果如下。

在这里插入图片描述

四、调试功能

1、上一步

当运行到消息盒子时,此时事件在等待确认按钮关闭消息盒子。此时可以不点击确定关闭消息盒子,可以通过上一步去查看,相关的逻辑判断代码。

在这里插入图片描述

http://www.xdnf.cn/news/5739.html

相关文章:

  • 操作系统实战——QEMU模拟器搭建【rCore 操作系统】
  • 多线程访问Servlet如何谨慎处理共享资源
  • 5.10-套接字通信 - C++
  • Spring急速入门
  • Linux系统管理与编程18:自动化部署dhcp服务
  • QML状态机制示例(State)
  • 数据知识产权质押融资风险控制
  • 前端面试每日三题 - Day 31
  • 环境扫描电镜对含水样品的观察技术与方法
  • Yolov8数据增强配置
  • 聊一聊AI对接口测试的潜在影响有哪些?
  • 【Mysql基础】一、基础入门和常见SQL语句
  • Service Mesh实战之Istio
  • 12.2.2 allocator类
  • CMake 命令行参数全解析(2025年更新版)
  • Clang实现C++文件分析,含Python实战
  • 使用webservice生成节假日/双休日/工作日信息
  • 蚁群算法赋能生鲜配送:MATLAB 实现多约束路径优化
  • PowerBI基础
  • bunsenlabs系统详解
  • java 中 DTO 和 VO 的核心区别
  • 基于SpringBoot的校园周边美食探索及分享平台【附源码+数据库+文档下载】
  • JSON 实体属性映射的最佳实践
  • 人脸识别的应用场景变化
  • 牛客周赛 Round 92
  • vue2关闭eslint
  • 如何避免 JavaScript 中常见的闭包陷阱?
  • 如何指定conda环境打包成docker镜像
  • fastp数据质控
  • 远程命令执行RCE概述