码迷,mamicode.com
首页 > 其他好文 > 详细

【逆向知识】堆栈图-汇编中的函数

时间:2018-02-17 10:32:04      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:堆栈   check   string   寄存器   str   off   div   数据   cccccc   

push        ebp                 ; 提升堆栈
mov         ebp,esp   
sub         esp,0CCh  
------------------------------------------
push        ebx                 ; 保留现场,函数在执行的时候会用到一些寄存器,但这些寄存器中
push        esi                 ; 值很可能会被程序用到,所以要先存储到内存中
push        edi  
push        ecx  
------------------------------------------
lea         edi,[ebp-0CCh]      ; 向分配的空间填充数据
mov         ecx,33h  
mov         eax,0CCCCCCCCh  
rep stos    dword ptr es:[edi]  
----------------------------------
pop         ecx                 ; 函数实际实现的功能
mov         dword ptr [this],ecx  

mov         eax,dword ptr [this]  
mov         dword ptr [eax+4],1  

mov         eax,dword ptr [nID]  
push        eax  
push        offset string "\r\nID:%d Who is your God? I am!\r\n"... (0EC6E94h)  
call        _printf (0E33D73h)  
add         esp,8  
----------------------------------------
pop         edi                 ; 恢复现场,将之前保留的寄存器的值恢复
pop         esi  
pop         ebx  
-----------------------------------------
add         esp,0CCh            ; 堆栈平衡
cmp         ebp,esp  
call        __RTC_CheckEsp (0E32356h)  
mov         esp,ebp             ; 降低堆栈 
pop         ebp                 ; 恢复栈底
ret         4                   ; 函数执行完毕,返回到调用处,等同于pop eip

【逆向知识】堆栈图-汇编中的函数

标签:堆栈   check   string   寄存器   str   off   div   数据   cccccc   

原文地址:https://www.cnblogs.com/17bdw/p/8451376.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!