C/C++逆向:x96dbg(x64dbg/x86dbg)的使用
这篇文章主要来说一下x96dbg(x64/x86)的基本使用,这里还是使用上篇文章中的简单程序用来作为本篇文章的实例,因为上篇文章再生成程序时选用的解决方案平台为x86
所以生成的程序则需要我们使用x32dbg
来进行分析。
这边与IDA一样,我们可以将程序拖到图标上。
此时x32dbg
就会自动针对该程序进行加载,接下去我们就可以进行调试了。在加载完成后可以看到调试器下方显示已暂停,已到达系统断点!
。
这个系统断点通常指的是调试器在程序启动时自动设置的第一个断点,也称为Entry Point
断点。系统断点发生在程序的入口点(Entry Point)之前,通常是在加载器(loader)将程序从磁盘加载到内存之后,操作系统会在这里插入一个INT 3
指令,目的是让调试器能够在程序执行之前有机会设置它自己的断点和初始化调试环境。这个断点可以理解为程序正式开始执行前的一个暂停点,允许调试器做一些初始设置。在调试器中看到系统断点时,程序还没有真正开始执行,它只是在操作系统初始化和程序准备运行的阶段。你可以选择继续执行程序,跳过系统断点,进入程序的实际入口点,从而开始分析程序的实际代码。
功能组件
1.反汇编窗口
x64dbg的反汇编窗口是一个非常重要的工具,它用于查看和分析程序的汇编代码,且显示了当前调试中的程序的机器代码和对应的汇编指令,这些指令是程序运行时CPU执行的低级操作。
在第一个区域的最左侧这一列就是内存地址区域,接着中间部分就是汇编指令的opcode,右侧这一列就是汇编代码区,最后有一个空白的地方,我们可以在这个位置输入一些注释;x96dbg
添加注释的方式与IDA
一致,选择要添加注释的位置,接着敲;
对注释文本进行编辑,选择OK即可。
2.寄存器窗口
x64dbg 的寄存器窗口是一个用于查看和修改 CPU 寄存器内容的窗口。在调试过程中,寄存器窗口对于理解程序的执行状态和控制程序的执行流程至关重要。
寄存器窗口显示当前 CPU 寄存器的内容,包括通用寄存器(如 RAX
, RBX
, RCX
, RDX
等),指令指针寄存器(RIP
),栈指针寄存器(RSP
),以及基址指针寄存器(RBP
)等。在 x64dbg 中调试 64 位程序时,会显示 64 位寄存器;如果调试 32 位程序,则显示 32 位寄存器。
3.内存窗口
x64dbg 的内存窗口用于查看和操作目标程序的内存内容。
内存窗口显示的是程序当前内存的十六进制内容和其对应的 ASCII 文本表示。每一行通常显示一个内存地址的起始位置,以及接下来的若干字节数据。
4.堆栈窗口
堆栈窗口用于查看和分析程序在运行过程中使用的堆栈数据。堆栈是程序执行过程中临时存储数据(如函数参数、返回地址、局部变量等)的区域。
基本调试方法
①F2:设置断点
②F4:运行到光标处
③F7:单步步入(遇到call
指令,进入call
函数的实现处继续执行汇编指令)
按下F7后则跳入ntdll.773C034
函数的实现处继续执行汇编指令
④F8:单步步过(遇到call
指令,执行call
函数,之后接着执行call
指令的下一条指令)
按下F8后则接着执行call
指令的下一条指令,即不进入函数中进行命令执行。
⑤F9:运行程序(如果没有碰到断点,程序会一直执行到结束)
⑥Ctrl+F9: 执行到函数返回处,用于跳出函数实现
⑦Alt+F9:执行到用户代码,用于快速跳出系统函数
⑧Ctrl+G:输入十六进制地址,快速定位到该地址处
搜索字符串
右击->搜索->所有模块(当前区域/当前模块)->字符串
【注】关注GZH回复"x96"获取x64dbg/x86dbg工具,以及其他网络安全相关书籍
相关文章:
![](https://i-blog.csdnimg.cn/direct/8a7bed2559af49baa9b1658e775783d4.png)
C/C++逆向:x96dbg(x64dbg/x86dbg)的使用
这篇文章主要来说一下x96dbg(x64/x86)的基本使用,这里还是使用上篇文章中的简单程序用来作为本篇文章的实例,因为上篇文章再生成程序时选用的解决方案平台为x86所以生成的程序则需要我们使用x32dbg来进行分析。 这边与IDA一样,我们可以将程序…...
![](https://img-blog.csdnimg.cn/img_convert/df0a8f855a18e22f59774ef83e7ed717.png)
超声波清洗机是智商税吗?专业博主分享四大必买超声波清洗机款式
有些人觉得超声波清洗机不过是个“智商税”,花几百块买个小盒子不值当,毕竟自己用手也能清洗。但这种看法过于片面。事实上,超声波清洗已经有几十年的历史,随着科技的发展,现代超声波清洗机不仅能够批量、自动清洁&…...
![](https://i-blog.csdnimg.cn/direct/e95abfb3086d451f8dc4e5e241f95a49.png#pic_left)
TIM输出比较
文章目录 前言一、TIM输出比较简介二、PWM简介2.1 PWM基本概念2.2 PWM参数2.3 PWM波形2.4 PWM基本结构2.5 PWM参数计算 三、舵机简介3.1 舵机的工作原理3.2 输入PWM信号的要求3.3 硬件电路 四、直流电机及驱动简介4.1 直流电机4.2 TB6612电机驱动芯片 前言 提示:本…...
![](https://csdnimg.cn/release/blog_editor_html/release2.3.6/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=N7T8)
JNPF 5.0升级钜惠,感恩回馈永远在路上
尊敬的JNPF用户们: 经过引迈团队数月的辛勤努力和不断的技术创新,JNPF快速开发平台迎来全新升级——5.0版本!此次5.0版本的迭代革新,不仅代表着我们技术实力的进一步提升,是我们对用户需求的深度理解和积极回应。为了…...
![](https://img-blog.csdnimg.cn/img_convert/11e4c8d04b21445188cdb7f2152f6fbf.png)
三维平面电磁铁、交流电磁铁、显微镜磁场北京大学方案
根据用户北京大学需求设计制造方案如下 三维平面电磁铁产品规格 5MPS63-25型三维平面电磁铁,X、Y方向磁场由2对正交的磁极产生,Z轴由一组同轴线圈产生; 每轴对应的两个线圈正接产生均匀磁场,反接产生梯度磁场; …...
![](https://www.ngui.cc/images/no-images.jpg)
awk引号转义问题
这是我在终端运行的脚本: for ib1 in $(seq 0 999);do ibstr$(printf sample52-%d $ib1);calculate_rmsd --reorder Motif52.pdb ${ibstr}.pdb | awk "{printf "%d %8f\n", $ib1, $0}" >> sample52_hotspots; done 但是报错: …...
![](https://i-blog.csdnimg.cn/direct/27897c25cb5d49fe9aa763da2897865f.jpeg)
C语言典型例题46
《C程序设计教程(第四版)——谭浩强》 题目: 习题3.6 企业发放的奖金根据利润提成。利润I低于或等于100 000元的,奖金可提成10%; 利润高于100 000元,低于200000元&…...
![](https://i-blog.csdnimg.cn/direct/cce03976097e4308a36899a9a691939a.png)
【目标检测】AGMF-Net:遥感目标检测的无注意力全局多尺度融合网络
《Attention-Free Global Multiscale Fusion Network for Remote Sensing Object Detection》 遥感目标检测的无注意力全局多尺度融合网络 原文:https://ieeexplore.ieee.org/document/10371366 摘要 遥感目标检测(RSOD)在复杂背景和小目标…...
![](https://i-blog.csdnimg.cn/direct/46e5a5d31c084304b434120e108d5880.jpeg)
2007-2022年上市公司资源节约数据
2007-2022年上市公司资源节约数据 1、时间:2007-2022年 2、来源:上市公司年报、社会责任报告、上市公司网站信息 3、指标:水资源节约、电力节约、原煤节约、天然气节约、汽油节约、柴油节约、集中供热节约、折算成统一标准煤共计节约 4、…...
![](https://i-blog.csdnimg.cn/direct/2ad595b3f76d4781b2c1f2dcb4a3ecf8.png)
onlyoffice连接器(connector)开发使用精讲 二次开发 深入开发【一】
连接器是onlyoffice调用web api的一个基础工具,可以方便开发者或者用户与业务系统结合使用web功能。 关于connector官方说明文档在这里:Automation API - ONLYOFFICE Api Documentation 注意:该功能针对开发者版、企业版,社区版常…...
![](https://img-blog.csdnimg.cn/img_convert/2053da67907921445b43f42868d2f47b.png)
VAuditDemo安装漏洞
目录 VAuditDemo安装漏洞 index.php header.php config.php lib.php install.php 分析结果 漏洞利用 第一步:删除install.lock文件,访问 install.php 抓包 第二步:通过审计构造payload 第三步:修改抓包请求内容&#x…...
![](https://www.ngui.cc/images/no-images.jpg)
算法学习-2024.8.16
一、Tensorrt学习补充 TensorRT支持INT8和FP16的计算。深度学习网络在训练时,通常使用 32 位或 16 位数据。TensorRT则在网络的推理时选用不这么高的精度,达到加速推断的目的。 TensorRT对于网络结构进行了重构,把一些能够合并的运算合并在了…...
![](https://i-blog.csdnimg.cn/direct/7f7230442b1b45b7a0811c577f7eba14.png)
ansible环境搭建
任务背景 公司的服务器越来越多, 维护⼀些简单的事情都会变得很繁琐。⽤ shell脚本来管理少量服务器效率还⾏, 服务器多了之后, shell脚本⽆ 法实现⾼效率运维。这种情况下,我们需要引⼊⾃动化运维⼯具, 对 多台服务器实现⾼效运维。 任务要求 通过管理服务器能够…...
![](https://i-blog.csdnimg.cn/direct/c7881e2d37ef44daa8bcb2a6b7264edc.png)
在线陪玩App小程序源码开发:技术挑战与解决方案
随着互联网技术的飞速发展和用户需求的多样化,在线陪玩App小程序逐渐在游戏娱乐领域占据了一席之地。这类小程序不仅为用户提供了丰富的娱乐体验,也为开发者带来了新的机遇。然而,在开发过程中,数据处理、性能优化、系统扩展性和安…...
![](https://img-blog.csdnimg.cn/img_convert/1686f305f695e6f5ee627071669cd4ae.webp?x-oss-process=image/format,png)
iOS profiles文件过期如何更新
创建发布用的Certificates 首先进入到https://developer.apple.com/account页面选择【证书】进入【新建证书】页面 点击【新建证书】按钮: 根据需求选中对应的【证书类型】,我选的是【Apple Distribution】, 开发者证书选择【Apple Devel…...
![](https://www.ngui.cc/images/no-images.jpg)
C/C++|C++标准库 string 流之std::ostringstream 和 std::istringstream 流
我们在 sstream 头文件中定义了三个类型来支持内存IO(ostringstream\istringstream\stringstream),这些类型可以向 string 写入数据,这里我们主要讲: std::ostringstream 和 std::istringstream( C Primer 中文版第五版) 以上的两个类型都继…...
![](https://i-blog.csdnimg.cn/direct/0fdb02fe9ba44c548d62ae1fd838701e.png)
Java-Redis
文章目录 基础基础内容使用场景/功能常见数据类型下载与安装可视化(多个)发布订阅功能事务两种持久化主从模式哨兵模式集群模式Cluster缓存淘汰过期删除缓存一致 Cache Aside缓存击穿缓存穿透缓存雪崩 实战内容配置文件配置Redis的BeanRedis为什么这么快…...
![](https://www.ngui.cc/images/no-images.jpg)
requests快速入门
1 安装requests库 如果你还没有安装requests库,可以通过pip安装: pip install requests 2 GET请求 GET请求通常用于从服务器请求数据。使用requests.get()函数可以发送GET请求。 2.1 基本使用 import requests url https://api.example.com/da…...
![](https://i-blog.csdnimg.cn/direct/10baf2ad0da24962807debaace75371b.png)
企业高性能web服务器——Nginx
# 企业高性能web服务器 1、Nginx 编译安装 1.1 编译安装 Nginx 这里下载nginx-1.24.0.tar.gz和nginx-1.26.1.tar.gz可以在官方网站上下载:https://nginx.org/en/download.html 示例:nginx-1.24.0.tar.gz #提前将编译安装出现问题的安装包下载好&…...
![](https://www.ngui.cc/images/no-images.jpg)
FreeSWITCH Java ESL Client Demo
1简介 在开启Java ESL Client编程之前,请先阅读《FreeSWITCH权威指南》学习什么是FreeSWITCH Event Socket。 Java连接FreeSWITCH的ESL可以采用两种模式:inbound和outbound。 Inbound模式:Java应用作为客户端主动连接到FreeSWITCH的内置TCP…...
![](https://i-blog.csdnimg.cn/direct/5cde990fe7a9421e9e60e685ec5d4f67.png)
手摸手系列之Linux下根据自己的jdk包构建docker镜像
项目在本地导出PDF文件正常,部署到Linux服务器docker容器中导出就报错,百撕不得姐,经查,docker依赖的openjdk版本是8u112版本,而我本地是8u421版本,那就升级jdk的小版本试试。 在docker的中央仓库[点我直达…...
![](https://i-blog.csdnimg.cn/direct/5c4b921e386440d7b9fa4110b17e2a16.png)
tomcat相关
一、部署安装tomcat 在10和20上安装tomcat [root10 ~]# dnf install java-1.8.0-openjdk.x86_64 -y #安装java环境 [root10 ~]# tar zxf apache-tomcat-9.0.93.tar.gz -C /usr/local/ #安装并启动tomcat [root10 ~]# ln -s /usr/local/apache-tomcat-9.0.93/ /usr/local/tomcat…...
![](https://i-blog.csdnimg.cn/direct/677d685204984d6d84c5f1bef8fb2d4c.jpeg)
20240821给飞凌OK3588-C的核心板刷Rockchip原厂的Buildroot并启动
20240821给飞凌OK3588-C的核心板刷Rockchip原厂的Buildroot并启动 2024/8/21 15:22 viewproviewpro-ThinkBook-16-G5-IRH:~/repo_RK3588_Buildroot20240508$ viewproviewpro-ThinkBook-16-G5-IRH:~/repo_RK3588_Buildroot20240508$ ./build.sh lunch 3. rockchip_rk3588_evb7_…...
![](https://www.ngui.cc/images/no-images.jpg)
服务优雅上下线优雅停机
一、目的 服务发生线程锁住,需要下线服务时,保证请求中的接口不受影响,执行完后,再下线服务 二、步骤 *kill -15时执行改钩子函数 优雅停机 1.当线程锁住 2.运维那边监控到,然后进行kill -15 进程ID 3.代码这边监…...
![](https://img-blog.csdnimg.cn/img_convert/b69f26807510000987831d5c883916c1.png)
什么是生信分析?深入探讨生物信息学的技术、方法与广泛应用
介绍 生物信息学分析,简称生信分析,是一个结合了生物学、计算机科学、信息学和统计学的多学科领域,旨在处理、分析和解释海量的生物数据。随着现代生物技术的发展,尤其是高通量测序(Next-Generation Sequencing, NGS&…...
![](https://www.ngui.cc/images/no-images.jpg)
JavaScript判断数组是否包含某个值
目录: 1.for循环/while循环2.数组的some方法3.数组的filter方法4.array.indexOf5.array.findIndex6.array.includes7.array.find8.set中的has方法 1.for循环/while循环 for循环: function contains(arr, val) {for (var i 0; i < arr.length; i) {if (arr[i] …...
![](https://www.ngui.cc/images/no-images.jpg)
C# - 如何在Windows系统中通过C#添加新的PATH条目至系统和用户环境变量
编写系统环境变量-->系统变量-->path-->添加新的列 01:直接写 using Microsoft.Win32; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace updatesystempath01 {class Program{stati…...
![](https://i-blog.csdnimg.cn/direct/5fbb52cb8c4b435b920339dc22d27543.png)
Unity | Shader基础知识(第二十二集:两次渲染)
目录 一、前言 二、“渲染两次” 三、本次成品介绍 四、第一次渲染代码 五、第二次渲染代码 六、截止目前的所有代码 七、调整代码 八、总结 一、前言 之前一直讲的shader文件中,都只写了一次CG代码。 为了大家对这部分的整体理解,我们这次渲…...
![](https://i-blog.csdnimg.cn/direct/b9faa7874e1a4e1e8ca9a6f365464f17.jpeg)
鸿蒙Harmony实战开发:Arkts构造函数
构造函数 类声明可以包含用于初始化对象状态的构造函数。 构造函数定义如下: constructor ([parameters]) {// ... } typescript 如果未定义构造函数,则会自动创建具有空参数列表的默认构造函数,例如: class Point {x: numbe…...
![](https://www.ngui.cc/images/no-images.jpg)
@vueuse/core使用useColorMode实现主题颜色切换
useColorMode 是一个在前端开发中常用的自定义钩子(Hook),尤其在需要支持深色模式和浅色模式切换的场景下。这个钩子可以根据用户的选择或系统设置动态调整页面样式。 一、安装和引入 npm install vueuse/core # 或者 yarn add vueuse/…...
![](https://img-blog.csdnimg.cn/2021021823085787.gif#pic_center)
常州网站建设推广公司/长沙网络推广网站制作
前言 前面说了很多关于Servlet的一些基础知识,这一篇主要说一下关于Servlet的线程安全问题。 1:多线程的Servlet模型 要想弄清Servlet线程安全我们必须先要明白Servlet实例是如何创建,它的模式是什么样的。 在默认的情况下Servlet容器对声…...
![](https://img-blog.csdnimg.cn/img_convert/1b15419b8fbac47dcd60bba46853d4c8.png)
做网站怎么引流/成都关键词优化排名
文 | 曾响铃 来源 | 科技向令说 从只能想象的文字艺术概念,到能够视听的具象化影像,再到可实操的极致视听交互体验。电影,似乎成了元宇宙从科幻到科技,由虚变实的见证者。 1992年,美国科幻小说家尼尔斯蒂芬森在其小…...
![](https://img-blog.csdnimg.cn/img_convert/7bd9e893bb983bada2e50d37b3fb1754.png)
工作空窗期怎么缴纳社保/seo工作流程图
前言 人人都想进大厂,当然我也不例外。早在春招的时候我就有向某某某大厂投岗了不少简历,可惜了,疫情期间都是远程面试,加上那时自身也有问题,导致屡投屡败。突然也意识到自己肚子里没啥货,问个啥都是卡卡…...
![](/images/no-images.jpg)
做网站的过程/sem搜索
5462. 压缩字符串 II 大家好,我叫亓官劼(q guān ji ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在CSDN中写博客,唯一博客更新的地址为:亓官劼的博…...
![](https://img-blog.csdnimg.cn/img_convert/53675c25c81dea91e1d3387ff851bcde.png)
平台优化是指什么/seo概念的理解
知识点: Netty框架如何引导服务端监听网络端口并读写消息Netty框架如何连接远程服务器并读写消息Netty框架ChannelInboundHandlerAdapter部分事件使用方法Netty框架Channel管道使用方法 前言 上一篇对Netty框架做了一个大概的介绍,并对核心部件Channel、…...
![](/images/no-images.jpg)
个人做的小网站需要备案/广州谷歌推广
Lammps支持的平台很多,可在windows、linux、Mac上运行。 我平时用的lammps版本有两种:windows版和ubuntu版,台式机和笔记本上安装的是windows串行版,主要用来写in文件和简单测试,如果代码没有问题就传到服务器…...