2021-04-07 标志寄存器

本文介绍了x86汇编中标志寄存器的使用,包括不同尺寸数据push后的esp变化,pushad/popad命令的作用,以及如何通过断点和跟踪调用来分析代码。此外,还探讨了标志寄存器中的关键位,如进位、奇偶、辅助进位、零标志、符号和溢出标志,并强调了它们在条件跳转指令中的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

标志寄存器

多数情况下push 后 esp会-4 例如push eax        (eax是32位寄存器)

                                             再例如 push dword ptr ds:[123abc] (dword 双字 32位)

少数情况下push后esp会-2   例如push ax        (ax是16位寄存器)

                                             再例如 push word ptr ds:[123abc] (word 单字 16位)

能push 8位的数据吗? push al? 不能 不允许。

 

pushad popad命令    逆向常用命令 将8个寄存器压入栈  eax ecx edx ebx ESP EBP esi edi

 

在messagebox位置下断点 运行

然后观察栈顶 这里存储着返回位置          (?不是EBP+4吗??)

在此处右键-> follow in disassembler  来到调用处

E8    BD 00 00 00          (call myexe.0040143A)     此时 ollydbg会自动生成注释 MessageBoxA

                                                                                     ollydbg是如何知道这个是messageboxA呢? 1参数类型  2函数地址 在哪个dll里,dll里有一个导出表

从这个call向上找 可在注释区发现“密码不正确注册失败”等字样

在一个6A 00 (push 0)处 下新断点  禁用之前的me

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值