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

Posted 17bdw随手笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了逆向知识堆栈图-汇编中的函数相关的知识,希望对你有一定的参考价值。

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

以上是关于逆向知识堆栈图-汇编中的函数的主要内容,如果未能解决你的问题,请参考以下文章

Android 逆向使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 创建反汇编解析器实例对象 | 设置汇编解析器显示细节 )(代码片段

逆向知识裸函数(Naked函数)

逆向知识第十讲,循环在汇编中的表现形式,以及代码还原

C++反汇编与逆向分析-读书笔记

C++反汇编与逆向分析-读书笔记

Windows逆向安全之基础知识