标志寄存器
多数情况下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