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
逆向知识堆栈图-汇编中的函数
Posted 17bdw随手笔记
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了逆向知识堆栈图-汇编中的函数相关的知识,希望对你有一定的参考价值。
以上是关于逆向知识堆栈图-汇编中的函数的主要内容,如果未能解决你的问题,请参考以下文章
Android 逆向使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 创建反汇编解析器实例对象 | 设置汇编解析器显示细节 )(代码片段