【逆向知识】堆栈图-汇编中的函数
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
相关推荐
omyrobin 2020-09-23
gocuber 2020-07-16
贤时间 2020-07-06
hickwu 2020-06-14
xushxbigbear微信 2020-06-12
shayuchaor 2020-06-07
乾坤一碼農 2020-05-19
平凡的程序员 2020-05-07
IT小牛的IT见解 2020-04-30
BlueSkyUSC 2020-03-22
淼寒儿 2020-03-12
范范 2020-02-26
渴望就奋力追寻 2020-01-28
alicelmx 2020-01-24
Joymine 2020-01-17
hitxueliang 2020-01-07
roseying 2019-12-28
cxcxrs 2019-12-21