反汇编分析函数传参,调用,执行过程中堆栈变化。

eip保存的是将要执行的下条指令的地址

esp 栈顶指针 保存栈顶地址

ebp 栈底指针 保存栈底地址

反汇编分析函数传参,调用,执行过程中堆栈变化。_第1张图片

 

 

反汇编分析函数传参,调用,执行过程中堆栈变化。_第2张图片

 

 

push 2 :

        sub esp,4

         mov dword ptr ss:[esp],2

 

反汇编分析函数传参,调用,执行过程中堆栈变化。_第3张图片

 

反汇编分析函数传参,调用,执行过程中堆栈变化。_第4张图片

反汇编分析函数传参,调用,执行过程中堆栈变化。_第5张图片

反汇编分析函数传参,调用,执行过程中堆栈变化。_第6张图片

执行完call 指令后有三处变化,说明我们上述分析没有错误。

反汇编分析函数传参,调用,执行过程中堆栈变化。_第7张图片

反汇编分析函数传参,调用,执行过程中堆栈变化。_第8张图片

push ebp :可替换为如下代码

         sub esp,4

          mov dword ptr ss:[esp],ebp //ebp的值为0019FF30

反汇编分析函数传参,调用,执行过程中堆栈变化。_第9张图片

反汇编分析函数传参,调用,执行过程中堆栈变化。_第10张图片

将esp的值赋给ebp提升栈底

反汇编分析函数传参,调用,执行过程中堆栈变化。_第11张图片

反汇编分析函数传参,调用,执行过程中堆栈变化。_第12张图片

反汇编分析函数传参,调用,执行过程中堆栈变化。_第13张图片

反汇编分析函数传参,调用,执行过程中堆栈变化。_第14张图片

上图是我们自己的推断,我们在看看调试其中和我们的是否一致

反汇编分析函数传参,调用,执行过程中堆栈变化。_第15张图片

发觉一致,说明我们推断正确

反汇编分析函数传参,调用,执行过程中堆栈变化。_第16张图片

反汇编分析函数传参,调用,执行过程中堆栈变化。_第17张图片

反汇编分析函数传参,调用,执行过程中堆栈变化。_第18张图片

反汇编分析函数传参,调用,执行过程中堆栈变化。_第19张图片

反汇编分析函数传参,调用,执行过程中堆栈变化。_第20张图片

REP指令:按计数寄存器 (ECX) 中指定的次数重复执行字符串指令

STOS指令:讲Al/AX/EAX的值存储到[EDI]指定的内存单元

并且根据标志寄存器中DF位来判断执行完一次stos指令是应该递增还是递减

若DF位为0,则递增,DF位为1,则递减

递增或者递减多少字节由数据宽度来确定,若将eax的值存储到[edi]则递增四个字节

 

上面三条指令实现的功能是:用CCCCCCCCC将缓冲区填充,防止缓冲区溢出

反汇编分析函数传参,调用,执行过程中堆栈变化。_第21张图片

反汇编分析函数传参,调用,执行过程中堆栈变化。_第22张图片

反汇编分析函数传参,调用,执行过程中堆栈变化。_第23张图片

 

pop edi :

       mov edi,dword ptr ss:[esp]

        add esp,4

 

反汇编分析函数传参,调用,执行过程中堆栈变化。_第24张图片

反汇编分析函数传参,调用,执行过程中堆栈变化。_第25张图片

反汇编分析函数传参,调用,执行过程中堆栈变化。_第26张图片

pop ebp

      mov ebp,dword ptr ss:[esp]

     add esp,4

反汇编分析函数传参,调用,执行过程中堆栈变化。_第27张图片

反汇编分析函数传参,调用,执行过程中堆栈变化。_第28张图片

反汇编分析函数传参,调用,执行过程中堆栈变化。_第29张图片

我们发觉,函数调用完成后,esp与原来未执行esp的值不相等

反汇编分析函数传参,调用,执行过程中堆栈变化。_第30张图片

反汇编分析函数传参,调用,执行过程中堆栈变化。_第31张图片

 

调用后

为了平衡堆栈 ,执行add esp,8

执行后堆栈恢复平衡

 

反汇编分析函数传参,调用,执行过程中堆栈变化。_第32张图片

到此,整个函数的调用过程分析完毕

总结:

该函数实现的功能为:

mov eax,dword ptr ss:[ebp+0x8]

add eax,dword ptr ss:[ebp+0xC]

可以修改为c代码

int fun(int a,int b){

return a+b;

}

若a等于1,b=2;

则为1+2

函数参数入栈顺序:从右到左

 

反汇编分析函数传参,调用,执行过程中堆栈变化。_第33张图片

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(汇编笔记)