堆栈图:

ctrl+g:跳转到输入的目标地址
F2:选中地址后按F2,设置断点
F8:单步调试,会跳过Call指令(单步步过)
F7:单步调试,不会跳过Call指令(单步步入)
堆栈图分析步骤:

第一步:观察寄存器(ESP、EBP、EIP)确定运行前的堆栈位置。画出初始堆栈图。
第二步:单步调试,观察栈顶与栈底的变化,以及是否有值入栈或出栈。
第三步:重复第一步,第二步。

函数:
计算机的函数,是一个固定的一个程序段,或称其为一个子程序,它在可以实现固定运算功能的同时还带有一入口和一个出口,所谓的入口,就是函数所带的各个参数,我们可以通过这个入口,把函数的参数值代入子程序,供计算机处理,所谓出口,就是指函数的计算结果,也称为返回值,在计算机求得之后,由此口带回给调用它的程序。
Windows堆栈:

堆栈的特点是先入后出,后入先出;除头尾节点之外,每个元素有一个前驱,一个后继。

堆栈简称栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。

栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针。

logo