x64dbg 安装使用教程

x64dbg的安装与配置
x64dbg官网地址:https://x64dbg.com/#start

x64dbg界面介绍
1.反汇编窗口

这个位置显示的是需要分析的程序的反汇编代码。在第一个区域的最左侧例如“7712EAA3”这一列就是内存地址区域,接着“E8 07”就是汇编指令的opcode,“jmp xxxxxxxxx”这个区域就是汇编代码区,最后有一个空白的地方,我们可以在这个位置输入一些注释。

2.寄存器窗口

这里显示的是当前所调试程序的寄存器信息。

3.数据窗口

这里一般查看的是内存地址的内容。最左边是地址,接着是对应地址的十六进制数据,最右侧是十六进制对应的ASCII码。

4.堆栈窗口

显示一些堆栈的信息。

基本调试方法
首先我们了解一下一些基本的操作指令。
F2:设置断点。(可以简单理解为暂停)
F4:运行到光标处
F7:单步步入。(遇到call指令,进入call函数的实现处继续执行汇编指令)
F8:单步步过。(遇到call指令,执行call函数,之后接着执行call指令的下一条指令)
F9:运行程序(如果没有碰到断点,程序会一直执行到结束。)

Ctrl+F9: 执行到函数返回处,用于跳出函数实现

Alt+F9:执行到用户代码,用于快速跳出系统函数

Ctrl+G:输入十六进制地址,快速定位到该地址处

搜索字符串

修改后保存成EXE
文件->补丁(ctrl+P)

修补文件

自己输入文件名加.exe后缀

命令支持
格式

命令 arg1 , arg2 , argN
 
寄存器
所有大小的寄存器都可以用作变量

 
内存读取
[addr]              读取DWORD / QWORD

n:[addr]           从addr开始读取n个字节

seg:[addr]       段寄存器加偏移读取DWORD / QWORD        seg可以gs,es,cs,fs,ds,ss

byte:[addr]      读取BYTE 

word:[addr]     读取word

dword:[addr]    读取dword

qword:[addr]    读取qword

字节/字/双字/四字/指针(ptr)
ReadByte,Byte,byte(addr):从 addr 读取一个字节,并返回该值。
ReadWord,Word,word(addr):从 addr 读取一个字(2字节),并返回该值。
ReadDword,Dword,dword(addr):从 addr 读取双字(4字节),并返回该值。
ReadQword,Qword,qword(addr):从 addr 读取四字(8字节),并返回该值(仅用于x64)。
ReadPtr,ReadPointer,ptr,Pointer,pointer(addr):从 addr 读取一个指针(4/8 字节),并返回该值。

数字
默认情况下,所有数字都解释为十六进制!如果要指定,可以x或0x作为前缀。十进制数可以通过在数字前加点号来使用.123=7B

模块数据
键入GetProcAddress,它将自动解析为函数的实际地址。要明确定义从哪个模块加载API,请使用:[module].dll:[api]或[module]:[api]。当[module]为空字符串时:GetProcAddress,将使用CPU中当前选择的模块。

加载的模块基地
如果您要访问加载模块的基地址,你可以写:[module]:0,[module]:base,[module]:imagebase或[module]:header

RVA /文件偏移量
如果要访问模块RVA,则可以写[module]:0+[rva],也可以写[module]:$[rva]。如果要将文件偏移量转换为VA,可以使用[module]:#[offset]。例如,当[module]为空字符串时,将使用CPU中当前选择的模块

模块的入口点
要访问一个模块的入口点,你可以写[module]:entry,[module]:oep或[module]:ep。请注意,当有名称为的导出时entry,oep否则ep将返回这些地址

表达式
调试器允许使用基本表达式。只需在命令窗口中键入一个表达式,结果就会显示在控制台中。除了计算之外,它还允许使用类似C的语法快速更改变量

括号:(1+2),[1+6]比其他操作优先。
一元减/二进制非/逻辑非:(-1负1),~1(二进制非1),!0(逻辑非0)。
乘法/除法:(2*3常规乘法),2`3(得到乘法的高分),6/3(常规除法),5%3(除法的模/余数)。
加法/减法:(1+3加法),5-2(减法)。
左/右移位/旋转:(1<<2向左移位,shl表示无符号,sal表示有符号),10>>1(向右移位,shl表示无符号,sal表示有符号),1<<<2(向左旋转),1>>>2(向右旋转)。
小(相等)/大(等于):4<10,3>6,1<=2,6>=7(如果真解析为1,0,如果假)。
等于/不等于:1==1,2!=6(如果为true,则解析为1;如果为false,则解析为0)。
二进制和:(12&2常规二进制和)。
二进制异或:(2^1常规二进制异或)。
二进制或:(2|8常规二进制或)。
逻辑和:(0&&3如果为true,则解析为1;如果为false,则解析为0)。
逻辑或:(0||3如果为true,则解析为1;如果为false,则解析为0)。
逻辑含义:(0->1如果为true,则解析为1;如果为false,则解析为0)
处理信息
peb() :获取PEB地址。
teb() :获取TEB地址。
tid() :获取当前线程ID
插件
stringsx64dbg        字符串搜索
    x64dbgApiBreak        API断点
    xAnalyzer                   分析
    SharpOD x64              反调试

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

视频推拉流EasyDSS无人机直播技术巡查焚烧、烟火情况

焚烧作为一种常见的废弃物处理方式&#xff0c;往往会对环境造成严重污染。因此&#xff0c;减少焚烧、推广绿色能源和循环经济成为重要措施。通过加强森林防灭火队伍能力建设与长效机制建立&#xff0c;各地努力减少因焚烧引发的森林火灾&#xff0c;保护生态环境。 巡察烟火…

禾赛激光雷达AT_128_P_A02激光时间同步配置

sudo apt update sudo apt-get install linuxptp ethtool sudo ethtool -T 网卡名字(ifconfig可以查看)网卡名即连接激光雷达之后配置的ip所对应的网卡名称 一般来说看到如下提示信息才正常&#xff1a; lzslzs-Precision-3591:~$ ethtool -T enp0s31f6 Time stamping paramet…

java项目部署相关记录

部署 简单部署(Windows) redis我使用小皮面板开的 mysql也是 maven打包 先打包,打包成功,找到对应jar包 在文件夹打开,然后再次目录上开cmd java -jar jplan-0.0.1-SNAPSHOT.jar需要注意的是,windows的java环境要和idea项目里边的java是一致的 运行成功! 属性配置方式…

v-for遍历多个el-popover;el-popover通过visible控制显隐;点击其他隐藏el-popover

场景:el-popover通过visible控制显隐;同时el-popover是遍历生成的多个。 原文档的使用visible后就不能点击其他地方使其隐藏;同时解决实现点击其他区域隐藏 <template><div><template v-for="(item,index) in arr" :key="index"><…

【Ubuntu】清理、压缩VirtualBox磁盘空间大小

1、说明 本人为虚拟机创建了两个硬盘:root.vdi 和 hoom.vdi,在创建虚拟机时,分别挂载在/root目录和/home目录下。 下面演示分别清理、压缩两个磁盘的空间。 2、清理空间 1)清理 root.vid sudo dd if=/dev/zero of=/EMPTY bs=1M;sudo rm -f /EMPTY输出信息中会提示,如…

微信小程序跳转其他小程序以及跳转网站

一、跳转其他小程序 1.1 知道appid和页面路径 wx.navigateToMiniProgram({appId: appid, // 替换为目标小程序 AppIDpath: pathWithParams, // 小程序路径envVersion: release, // 开发版、体验版或正式版success(res) {console.log("跳转到其他小程序成功&#xff01;&q…

在ensp中ACL路由控制实验

一、实验目的 掌握ACL路由控制管理 二、实验要求 要求&#xff1a; 配置路由策略&#xff0c;左右两边不公开区域对方不可达&#xff0c;其他区域可以互相ping通 设备&#xff1a; 1、三台路由器 2、四台交换机 3、四台电脑 4、四台服务器 使用ensp搭建实验环境,如图所…

NIFI使用

1 从Kafka接收消息&#xff0c;存储到数据库中。 &#xff08;1&#xff09; ConsumerKafka processor &#xff08;2&#xff09;Execute Scripts Processor 我这里是使用JS脚本进行处理。 还有很多其他语言的脚本。 var flowFile session.get(); if (flowFile ! null) {v…

【leetcode】替换后的最长重复字符、将字符串翻转到单调递增

1.替换后的最长重复字符 示例如下&#xff1a; 下面我们来分析一下一个例子&#xff0c;其中K 2 暴力枚举 这里的字符串s是仅由大写字母组成&#xff0c;首先我们尝试用暴力解法的思路来想一下这道题&#xff0c;通过从第一个字符开始进行枚举&#xff0c;如果出现了条件判断…

如何制作“优美”PPT

目录 1.免费PPT模板网站&#xff1a; 2.免费有较好质量的图片网站&#xff1a; 免费图片资源 免费透明PNG图片资源&#xff1a; 免费icon图片资源&#xff1a; 3.选择好的图片&#xff1a; 图片底色 4.要与不要 千万不要&#xff1a; 一定要&#xff1a; 6.一些建议…

类和对象一

目录 1.类的引入 2.类的定义 3.访问限定符 4.类的作用域 5.类对象模型 6.类的大小 1.类的引入 C语言结构体中只能定义变量&#xff0c;在C中&#xff0c;结构体不仅可以定义变量&#xff0c;也可以定义函数。 C兼容C语言&#xff0c;结构用法可以继续使用 同时sruct也升…

【计算机网络】实验13:运输层端口

实验13 运输层端口 一、实验目的 本次实验旨在验证TCP和IP运输层端口号的作用&#xff0c;深入理解它们在网络通信中的重要性。通过实验&#xff0c;我将探讨端口号如何帮助区分不同的应用程序和服务&#xff0c;使得在同一台主机上能够同时运行多个网络服务而不发生冲突。此…

关于睡懒觉

我们经常听到一个词&#xff1a;睡懒觉。 我认为&#xff0c;睡懒觉这个词&#xff0c;是错误的。 人&#xff0c;是需要睡眠的&#xff0c;睡不够&#xff0c;就不会醒。睡够了&#xff0c;自然会醒&#xff0c;也不想继续睡。不信你试试&#xff0c;睡够了&#xff0c;你…

【推荐算法】单目标精排模型——FiBiNET

key word: 学术论文 Motivation&#xff1a; 传统的Embedding&MLP算法是通过内积和Hadamard product实现特征交互的&#xff0c;这篇文章的作者提出了采用SENET实现动态学习特征的重要性&#xff1b;作者认为简单的内积和Hadamard product无法有效对稀疏特征进行特征交互&a…

C语言:define定义常量和定义宏(详解)

本篇博客给大家带来的是#define定义常量和#define定义宏的方法 &#x1f41f;&#x1f41f;文章专栏&#xff1a;C语言 &#x1f680;&#x1f680;若有问题评论区下讨论&#xff0c;我会及时回答 ❤❤欢迎大家点赞、收藏、分享 你们的支持就是我创造的动力 今日思想&#xff1…

Spring Boot如何实现防盗链

一、什么是盗链 盗链是个什么操作&#xff0c;看一下百度给出的解释&#xff1a;盗链是指服务提供商自己不提供服务的内容&#xff0c;通过技术手段绕过其它有利益的最终用户界面&#xff08;如广告&#xff09;&#xff0c;直接在自己的网站上向最终用户提供其它服务提供商的…

Unity入门(了解生命周期)

目录 1.新建Script&#xff08;给物体添加C#代码&#xff09; 2.Unity常用的生命周期介绍 1.新建Script&#xff08;给物体添加C#代码&#xff09; 首先点击物体&#xff0c;选择Add Component 搜索 New Script&#xff0c;自命名添加这里命名为PlayerController 2.打开Pla…

【OpenCV】图像阈值

简单阈值法 此方法是直截了当的。如果像素值大于阈值&#xff0c;则会被赋为一个值&#xff08;可能为白色&#xff09;&#xff0c;否则会赋为另一个值&#xff08;可能为黑色&#xff09;。使用的函数是 cv.threshold。第一个参数是源图像&#xff0c;它应该是灰度图像。第二…

神经网络中的过拟合问题及其解决方案

目录 ​编辑 过拟合的定义与影响 过拟合的成因 1. 模型复杂度过高 2. 训练数据不足 3. 训练时间过长 4. 数据特征过多 解决方案 1. 数据增强 2. 正则化 3. Dropout 4. 提前停止 5. 减少模型复杂度 6. 集成学习 7. 交叉验证 8. 增加数据量 9. 特征选择 10. 使…

Redis篇-4--原理篇3--Redis发布/订阅(Pub/Sub)

1、概述 Redis 发布/订阅&#xff08;Publish/Subscribe&#xff0c;简称 Pub/Sub&#xff09;是一种消息传递模式&#xff0c;允许客户端订阅一个或多个通道&#xff08;channel&#xff09;&#xff0c;并接收其他客户端发布到这些通道的消息。 2、Redis 发布/订阅的主要概…