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:基址指针寄存器,其内存放着一个指针,该指针永远指向系统栈最上面一个栈帧的底部,永远在结尾部份;
栈帧:过程活动记录,是编译器用来实现过程/函数调用的一种数据结构。
右下角堆栈窗口在研究什么?在研究函数调用过程中的临时数据【参数,局部变量】;

【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ThreeJs-16智慧城市项目(重磅以及未来发展ai)
· .NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想
· 软件产品开发中常见的10个问题及处理方法
· Vite CVE-2025-30208 安全漏洞
· MQ 如何保证数据一致性?