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

反汇编逆向实例_简单函数调用

时间:2014-08-01 15:44:01      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   使用   os   io   cti   ar   

 

反汇编逆向实例_简单函数调用  

                                                                                      by:比方

逆向反汇编第一章,基本函数调用 

示例代码:

 1 #include"stdio.h"
 2 int function(int a,int b)
 3 {
 4     int c=a+b;
 5     return c;
 6 }
 7 void main()
 8 {
 9     function(1,2);
10     getchar();
11 } 

反汇编结果:

 

1 #include "stdio.h"
2 
3  int function(int a,int b)
4 
5 {

 

00C213A3 sub esp,0CCh                 ;空出一片栈空间用来存储局部变量,本函数内部使用

00C213A9 push ebx                        ;esp-4 保存环境
00C213AA push esi                         ;esp-4 保存环境
00C213AB push edi                         ;esp-4 保存环境
 
 
 
;写es断点调试,因为临时变量区没有代码,大小为0cch
00C213AC lea edi,[ebp-0CCh]          
00C213B2 mov ecx,33h
00C213B7 mov eax,0CCCCCCCCh
00C213BC rep stos dword ptr es:[edi]   ;es段edi位置正好是本函数使用开始使用的栈起始地址。
 
 
 
1 ;int c= a+b;

00C213BE mov eax,dword ptr [a]         ;mov eax,[ebp+8] 参数1即a   为什么加8,因为前面压入了8字节分别为main做的压入EIP和前面的Push ebp

00C213C1 add eax,dword ptr [b]          ;add eax,[ebp+0ch] 参数2即b ebp里的值始终是esp原值

00C213C4 mov dword ptr [c],eax
 
 
 
1 ;return c;

00C213C7 mov eax,dword ptr [c]         ;eax始终用来存放返回值

 

}

 

00C213CA pop edi    ;恢复环境

00C213CB pop esi    ;恢复环境

00C213CC pop ebx   ;恢复环境

 

 


 

00C213CD mov esp,ebp

00C213CF pop ebp
00C213D0 ret  
 
 

 

反汇编逆向实例_简单函数调用,布布扣,bubuko.com

反汇编逆向实例_简单函数调用

标签:style   blog   color   使用   os   io   cti   ar   

原文地址:http://www.cnblogs.com/hailunchina/p/3885007.html

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