Win32逆向学习之C语言的函数调用二
上一篇文章简单介绍了一下查看反汇编代码的方式,这一篇主要分析汇编代码。
c的源代码为:
#include <stdio.h>
int func(){
int z = 1;
return z;
}
int main(){
func();
return 0;
}
生成的汇编代码为:
1: #include <stdio.h>
2:
3: int func(){
00401020 55 push ebp
00401021 8B EC mov ebp,esp
00401023 83 EC 44 sub esp,44h
00401026 53 push ebx
00401027 56 push esi
00401028 57 push edi
00401029 8D 7D BC lea edi,[ebp-44h]
0040102C B9 11 00 00 00 mov ecx,11h
00401031 B8 CC CC CC CC mov eax,0CCCCCCCCh
00401036 F3 AB rep stos dword ptr [edi]
4: int z = 1;
00401038 C7 45 FC 01 00 00 00 mov dword ptr [ebp-4],1
5: return z;
0040103F 8B 45 FC mov eax,dword ptr [ebp-4]
6: }
00401042 5F pop edi
00401043 5E pop esi
00401044 5B pop ebx
00401045 8B E5 mov esp,ebp
00401047 5D pop ebp
00401048 C3 ret
和main函数的反汇编:
7:
8: int main(){
00401060 55 push ebp
00401061 8B EC mov ebp,esp
00401063 83 EC 40 sub esp,40h
00401066 53 push ebx
00401067 56 push esi
00401068 57 push edi
00401069 8D 7D C0 lea edi