vs反汇编函数入口处指令
这个很简单ebp-0c0h 是给出一段深度为0c0h堆栈,留给你的函数存变量。
因为第一条指令前还有一条指令mov ebp esp 所以从ebp到esp是一个深度为0c0h的堆栈,可以想想下 esp想当于地面
现在你朝地下挖了个深度为0c0h的洞,ebp现在就是洞底。
然后,rep stos 是重复指令,重复次数是 30h 次,表示每次都向那个洞里放0cccccccch,
0ccccccch是4个字节,放30次 ,刚好等于第一句指定的堆栈的深度(16进制 30h*4=0c0h,有不理解打开windows
计算器算下)
所以余下三句的意思就是 你把那个洞里全放成了0cccc cccch
为什么要放0ccccccch?
0cccccccch是个机器指令,是个中断指令。因为堆栈是存变量的,不可能被执行,所以一旦万一发生错误使堆栈被执行,那也只能执行个中断
被断了下来。
《天书夜读 从汇编到windows内核编程》第一章有详细说明 ,有什么不理解你再去参考下吧
多重随机标签