加密与解密 调试篇 动态调试技术 (四)-x64dbg/MDebug

news2024/11/17 5:25:12

x64dbg是开源的调试器 支持 32位和64位

Download x64dbg

我们使用64位程序进行实验

加载TraceMe64

然后我们通过之前了解到了

TraceMe是用

GetDlgItemTextA来读取我们输入的值

所以我们在x64dbg中对其进行断点

但是我们先要设置

x64dbg在加载程序的时候是在系统断点处

所以我们要在选项->设置->去除'系统断点'

然后我们开始运行程序F9

随便输入

然后开始设置断点

快捷键 Ctrl+G打开表达式窗口

选择 GetDlgItemTextA

 快捷键 F2设置断点

或者在命令 bp GetDlgItemTextA

点击check

 中断

然后这个时候我们是在winapi函数里 我们F8走出函数

call qword ptr ds:[<&GetDlgItemTextA>]
这里进行读取用户名
mov r9d,65
lea r8,qword ptr ss:[rbp-40]
mov edx,3E8
movsxd rsi,eax
mov rcx,rbx
call qword ptr ds:[<&GetDlgItemTextA>]
这里进行读取序列号
xor edi,edi
cmp byte ptr ss:[rsp+70],dil
je traceme64.7FF754461636
cmp esi,5
jl traceme64.7FF754461636
mov r9d,3
mov r8d,edi
cmp rsi,r9
jle traceme64.7FF7544615B4
mov eax,edi
lea r11,qword ptr ds:[7FF7544B5000]
nop word ptr ds:[rax+rax],ax
movzx ecx,byte ptr ss:[rsp+r9+70]
cmp rax,7
cmovg rax,rdi
inc r9
movzx edx,byte ptr ds:[rax+r11]
inc rax
imul edx,ecx
add r8d,edx
cmp r9,rsi
jl traceme64.7FF754461590
lea rdx,qword ptr ds:[7FF7544A5410]
lea rcx,qword ptr ss:[rsp+70]
call qword ptr ds:[<&wsprintfA>]
lea rdx,qword ptr ss:[rsp+70]
lea rcx,qword ptr ss:[rbp-40]
call qword ptr ds:[<&lstrcmp>]

我们能知道 这个就是我们关键汇编 我们进行读懂

 当我们运行到 00007FF7544615CF的时候 其实 rdx出现了 真正的序列号

还有一个命令读取方式 就是可以读取 字符串

dump rdx

 使用消息断点来调试

我们先把断点取消

然后重新执行 程序

什么都不用输入 点击check

然后进入句柄

右键刷新一下

 选择check 右键 ->消息断点

 

 然后确定

 重新点击check

 程序会停在 ntdll.dll模块

我们想要回到程序领空 就多次使用CTRL+F9即可

但是实际无法退出 因为会一直在内部代码循环

所以我们进行操作

切换到 内存布局窗口

 找到text 然后设置一次性内存断点

 然后F9就可以

这个时候就回到了程序领空

MDebug

MDebug是一个windows的应用程序调试器

具有 32位和64位

我们打开文件后 需要在调试的地方点击执行 才会出现反汇编窗口

 

 在任意寄存器 地址 函数 按回车键 就可以跳转到相应的目标地址处

 

 MDebug的表达式

调试过程中 需要查看内存地址 或者反汇编的地址

这些有的时候需要进行计算得出

下面是 MDebug支持的表达式

API : CreateFileA MessageBoxA ExitProcess AfxMessageBox

十六进制数字或字符常量 :  0a1bh 0x402000 "'A'"  "'ABCD'"

寄存器: eax ebx ecx edx esi edi esp ebp eip ax bx cx dx si di sp bp al ah bl bh cl ch
dl dh

内存地址 :[0012f300]  [0x04200] [eax] [ebp] [esp]




注意 上面四个可以一起混合使用

MessageBoxA + 0x6 

0x112233 *([esp+8]+edi)

0xabcd*(eax-ebx)+al+bl+[eax+4]

eax*4

同时上面四种也可以进行混合逻辑运算

(eax>ebx)&&(EIP >= modulebase && EIP<(modulebase + size))

(eax << 0x18) >> 0x10

调试

MDebug 支持多种调试模式 

假如 我们启动一个程序进行调试 调试 DLL模块 附加一个正在运行的程序
调试服务 调试一段独立的shellcode 同时支持子进程调试

1.调试服务

文件 ->调试进程->服务 就可以进行服务调试了

2.调试shellcode

文件->调试代码 就可以进行代码的调试了

3.调试DLL

当我们进行分析的时候 会发现真正需要分析的功能位于 某一个 DLL(动态链接库)的输出函数中

MDebug支持直接打开DLL进行调试 并且允许直接调试 DLL的输出函数

在被调试程序运行的过程中  希望调试器能够在特定的DLL模块被加载时

中断在模块的入口

选项->调试 -> 在模块加载时停止在模块入口点

4.调试子进程

如果程序在中途 启动了 一个子进程 就需要从入口开始调试子进程

选项->调试-> 调试子进程

断点

断点是所有调试器的基本操作

普通断点:

INT 3


硬件断点:
 
DR寄存器实现断点功能  只能4个 并且支持读写执行条件

内存断点:

把断点的内存页(4KB)设置为 PAGE GUARD 
程序访问就会触发异常


消息断点:

想要知道 按钮对应的消息处理函数


模块断点:

模块断点就是执行到某一个模块 就进行断点

在调试的时候 我们不知道什么会调用 DLL模块 也不知道调用DLL模块的什么函数

这个时候就要使用模块断点

其他功能

内存搜索

在搜索框中 输入普通字符串和十六进制的字符 指定内存范围进行搜索


脚本


跟踪

插件

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

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

相关文章

本原多项式和不可约多项式

本文讨论的&#xff0c;不做特别说明的话&#xff0c;都是在伽罗华域(Galois Fields)上。 1、不可约多项式&#xff08;Irreducible Polynomial&#xff09; 定义&#xff1a;不能写成两个次数较低的多项式乘积形式的多项式。 多项式分解网站&#xff1a;EE4253 Polynomial …

中尺度气象学期末复习笔记

中尺度气象学期末复习笔记 文章目录 中尺度气象学期末复习笔记三个表示天气的词之间的关系&#xff08;一&#xff09;天气系统的尺度划分1.1 为什么要进行尺度分析1.2 经验分类Ligda对中尺度的定义 1.3 理论分类谱分析通过无量纲数进行分类 1.4 实用分类奥兰斯基分类AEIOU分类…

如何恢复u盘数据?数据恢复,就看这4个方法!

案例&#xff1a;每次清理u盘时&#xff0c;总是会不小心删除重要的数据&#xff0c;如何恢复u盘数据呢&#xff1f; 【u盘中的数据删除了还能恢复吗&#xff1f;我昨天想把u盘里一些不需要的图片和文件删除&#xff0c;但不小心删了些有用的数据&#xff0c;有什么方法可以帮我…

【洛谷】P8306 【模板】字典树

&#xff08;最后有解释哦&#xff09; 0:所需参数 const int N3e610;int t[N][70],cnt[N],idx; char s[N]; 1.映射字符 int getnum(char x) {if(x>A&&x<Z) return x-A;else if(x>a&&x<z) return x-a26;else return x-052; } 2.插入字符串 voi…

pdf文档怎么转换成excel?分享这几个方法!

当涉及将PDF转换为Excel时&#xff0c;许多人可能会遇到困扰。PDF因其统一性、稳定性和不可编辑性而被广泛应用于日常工作和学习中。然而&#xff0c;在某些特殊情况下&#xff0c;例如在网络上找到的PDF资料中需要借鉴其中的内容制作Excel文档&#xff0c;我们需要找到方法将P…

谷歌Imagen Editor融入AI技术,助力图片创作

AI科技的应用越来越广泛&#xff0c;自然也被各个公司所重视&#xff0c;近日谷歌就推出利用AI技术的图片创作软件Imagen Editor&#xff0c;这款软件成熟以后&#xff0c;或将助力图片的创作。 近日有消息称&#xff0c;谷歌正在研发一款名为Imagen Editor生成式AI工具&…

设施管理系统

随着经济的快速发展&#xff0c;各种基础设施都在更新&#xff0c;在企事业单位中各种设施也都难以管理&#xff0c;以往传统的管理模式已经无法适应现代社会的需求&#xff0c;设备管理的滞后反而会影响设施设备的使用效果&#xff0c;因此设施设备管理系统必不可少。那么什么…

uniapp实现单选以及多选

<!-- 多选 --> <template><view class"choiceSupervisionLinkman"><view class"searchBox"><uni-search-bar :radius"8" placeholder"请输入成员名称" clearButton"none" confirm"search&q…

记录一些maven依赖冲突

目录 Mybatis-Plusswagger报错pagehelper分页失效 Mybatis-Plus <dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>2.0.6</version></dependency><dependency><groupId&…

自动化的艺术

对于基础设施来说&#xff0c;很多服务都有类似的架构、数据库交互和UI&#xff0c;本文介绍了Paypal通过模板自动化基础设施微服务脚手架代码的实践&#xff0c;最大化节约了开发服务的时间并保证了服务的一致性。原文&#xff1a;The Art of Automating Automation[1] 简介 作…

6.4 构建并评价回归模型

6.4 构建并评价回归模型 6.4.1 使用sklearn估计器构建线性回归模型6.4.2 评价回归模型小结 6.4.1 使用sklearn估计器构建线性回归模型 按照研究方法划分&#xff0c;回归分析研究的范围大致如图所示&#xff1a;   在回归模型中&#xff0c;自变量与因变量具有相关关系&…

python对象与类

文章目录 简述类与对象什么是类&#xff1f;什么是对象&#xff1f;类与对象的关系什么是面向对象编程? 创建类与对象创建创建对象引用类的成员类的属性类的行为self的作用 简述类与对象 什么是类&#xff1f; 类就是包含属性和行为的一种说法&#xff0c;在程序上的class即…

深度学习应用篇-自然语言处理-命名实体识别[9]:BiLSTM+CRF实现命名实体识别、实体、关系、属性抽取实战项目合集(含智能标注)【上篇】

【深度学习入门到进阶】必看系列&#xff0c;含激活函数、优化策略、损失函数、模型调优、归一化算法、卷积模型、序列模型、预训练模型、对抗神经网络等 专栏详细介绍&#xff1a;【深度学习入门到进阶】必看系列&#xff0c;含激活函数、优化策略、损失函数、模型调优、归一化…

GPT问题记录

如何遍历切片 1.for循环 package mainimport "fmt"func main(){s : []int{1,2,3,4}for i : 0; i < len(s); i{fmt.Printf("s[%d]%d\n",i,s[i])} } 运行结果 2.range 关键字 package mainimport "fmt"func main() {s : []int{1,2,3,4,5}for in…

苹果公布Apple Vision Pro头显的六种交互手势

苹果 Vision Pro 头显的交互&#xff0c;并不依赖物理控制器&#xff0c;而是通过追踪眼球和手势来交互虚拟物体。苹果设计师在近日的开发者会议中&#xff0c;概述了 Vision Pro 头显可以使用的交互手势。 Tap&#xff1a; 同时点击拇指和食指会向头戴显示设备发出信号&…

【.net core】图片压缩

使用SkiaSharp组件实现功能&#xff0c;组件下载在nuget中安装最新版本至项目 功能实现类&#xff1a; using SkiaSharp; using System; using System.Collections.Generic; using System.IO; using System.Text;namespace YiSha.Util {public static class ImageCompression{…

瑞吉外卖功能完善

文章目录 获取源码1、后台管理——菜品起售停售前端请求数据分析编写方法 2、后台管理——菜品删除前端请求数据分析编写方法 3、后台管理——修改套餐前端请求分析方法一&#xff1a;完成点击修改时数据的回显方法二&#xff1a;修改套餐 4、后台管理——启停售套餐前端请求分…

全国PMO专业人士年度盛会︱2023第十二届PMO大会将于8月在京召开

企业要基业长青就必须持续保持组织活力。企业的内外部环境不会一成不变&#xff0c;顺应变化及时调整变革避免组织出现僵化低效才能在激烈的市场竞争中存活下来。PMO从成立到逐渐发挥越来越强的作用本身即是一种组织变革的过程&#xff0c;从这个意义上来说PMO因组织变革而生&a…

epson L350打印机拆解

卡扣固定 搓纸轮 送纸器

数据库的基本知识---入门前必读

目录 一.认识数据库 二.数据库的分类 三.SQL介绍 3.1SQL是什么 3.2.SQL语言使用方式 总结 &#x1f63d;个人主页&#xff1a;tq02的博客_CSDN博客-C语言,Java,Java数据结构领域博主 &#x1f308;梦的目标&#xff1a;努力学习&#xff0c;打败数据库&#xff0c;拼搏一…