x32dbg使用总结

1、界面介绍

2、改变窗口内字体显示大小

3、快捷键

回车:在call函数回车可进入函数体内

-:返回上一步

+:返回下一步

空格:反汇窗窗口中选中call函数或其它任一段按空格就能显示真实的地址,然后点中内存窗口按快捷键CTRL+G输入内存地址查看

4、汇编命令

push:推入,但凡是push寄存器的,都是在前面已经赋值过,就得在前面找赋了什么值,右键点击“高亮模式”即可方便查找前面的值

函数头部:push ebp

pushad:全部压入栈中

函数尾部:ret x

一个参数:push ecx

pop:弹出

popad:将eax、ecx、edx、ebx、esp、ebp、esi、edi全部弹出

eax:存放函数的返回值,寄存器每一个都有独特的作用。

lea:lea bx,[bx+si]:给的是后面的地址,不是值。

move:传送数据的指令,move bx,[bx+si] 给的是后面地址中的值。

jne:条件判断转移,右键“流程图”,右键“脱离”,右键“在反汇编中转到”

je:条件判断转移

esp+4:函数的第一个参数

ret:返回,无条件从函数内部体跳出

jmp: 强制跳转转移,无条件跳转,除了jmp都是条件跳转

push\pop:先进去的,后弹出来;后进去的,先弹出来;

sub:新开辟一块内存区域

函数入参顺序从右往左

_cdecl、_stdcall 入栈顺序:从右到左,

加:add eax,ebx   eax = eax + ebx

减:sub esp,8   esp = esp - 8

乘:被乘数固定为eax,结果放在eax|edx中,数字很小就放在eax中,数字很大eax,edx都可以;无符号:mul,有符号:imul

除:被除数固定为eax|edx,很字很小被除数就是有eax,商在eax,余数在edx;无符号:div,有符号:idiv

整数比较:cmp eax,1 相当于sub eax,1 但是不保存相减结果,只改变标志位(AF CF OF PF SF ZF)

重要标志寄存器(对准标志位双击修改):

ZF:零标志位。代码执行后结果为0,那么ZF=1;结果不为0,则ZF=0;

SF:符号标志位。相关指令执行后结果为负(-),那以SF=1;结果为非负数,则SF=0;

OF:溢出标志位。记录了有符号运算的结果是否发生了溢出,如果发生溢出OF=1;如果没有OF=0;

寄存器ESP与EBP

ESP:栈指针寄存器,其内存放着一个指针,该指针永远指向系统栈最上面一个栈帧的栈顶,永远在开头部份;

EBP基址指针寄存器,其内存放着一个指针,该指针永远指向系统栈最上面一个栈帧底部,永远在结尾部份;

栈帧:过程活动记录,是编译器用来实现过程/函数调用的一种数据结构。

右下角堆栈窗口在研究什么?在研究函数调用过程中的临时数据【参数,局部变量】;

 

posted @   滔天蟹  阅读(630)  评论(0编辑  收藏  举报
编辑推荐:
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
阅读排行:
· ThreeJs-16智慧城市项目(重磅以及未来发展ai)
· .NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想
· 软件产品开发中常见的10个问题及处理方法
· Vite CVE-2025-30208 安全漏洞
· MQ 如何保证数据一致性?
点击右上角即可分享
微信分享提示