首页 > 编程语言 > 详细

C++反汇编->加法分析

时间:2014-04-11 11:44:05      阅读:575      评论:0      收藏:0      [点我收藏+]

为了分析的简便,代码采用以下方式风格:

#include "iostream"

void main()
{
	int a,b;
	a=1;
	b=2;
	std::cout<<"Hello World"<<std::endl;
	std::cout<<"HHHHHHHHHHHH"<<std::endl;
	std::cout<<a+b<<std::endl;
	system("pause");
}

ollydeb分析如下:

地址               HEX数据                             反汇编                                                                    注释

00401570 > > \55                    PUSH EBP
00401571   .  8BEC                  MOV EBP,ESP
00401573   .  83EC 48               SUB ESP,48
00401576   .  53                    PUSH EBX
00401577   .  56                    PUSH ESI
00401578   .  57                    PUSH EDI
00401579   .  8D7D B8               LEA EDI,DWORD PTR SS:[EBP-48]
0040157C   .  B9 12000000           MOV ECX,12
00401581   .  B8 CCCCCCCC           MOV EAX,CCCCCCCC
00401586   .  F3:AB                 REP STOS DWORD PTR ES:[EDI]
00401588   .  C745 FC 01000000      MOV DWORD PTR SS:[EBP-4],1                  ;  将1赋值到a中
0040158F   .  C745 F8 02000000      MOV DWORD PTR SS:[EBP-8],2                  ;  将2赋值到b中
00401596   .  68 C8104000           PUSH test1.004010C8
0040159B   .  68 34004700           PUSH OFFSET test1.??_C@_0M@FEIK@Hello?5Worl>;  hello world
004015A0   .  68 A0DE4700           PUSH OFFSET test1.std::cout                 ;  std::cout函数
004015A5   .  E8 DBFCFFFF           CALL test1.00401285
004015AA   .  83C4 08               ADD ESP,8
004015AD   .  8BC8                  MOV ECX,EAX
004015AF   .  E8 2CFCFFFF           CALL test1.004011E0
004015B4   .  68 C8104000           PUSH test1.004010C8
004015B9   .  68 24004700           PUSH OFFSET test1.??_C@_0N@DPFC@HHHHHHHHHHH>;  hhhhhhhhhhhh
004015BE   .  68 A0DE4700           PUSH OFFSET test1.std::cout                 ;  std::cout函数
004015C3   .  E8 BDFCFFFF           CALL test1.00401285
004015C8   .  83C4 08               ADD ESP,8
004015CB   .  8BC8                  MOV ECX,EAX
004015CD   .  E8 0EFCFFFF           CALL test1.004011E0
004015D2   .  68 C8104000           PUSH test1.004010C8
004015D7   .  8B45 FC               MOV EAX,DWORD PTR SS:[EBP-4]                ;  存放变量a到EAX中
004015DA   .  0345 F8               ADD EAX,DWORD PTR SS:[EBP-8]                ;  执行加操作  将b变量的值加到EAX中
004015DD   .  50                    PUSH EAX
004015DE      B9                    DB B9
004015DF   .  A0DE4700              DD OFFSET test1.std::cout                   ;  std::out 输出相加后的数值
004015E3   .  E8 17FBFFFF           CALL test1.004010FF
004015E8   .  8BC8                  MOV ECX,EAX
004015EA   .  E8 F1FBFFFF           CALL test1.004011E0
004015EF   .  68 1C004700           PUSH OFFSET test1.??_C@_05PBCN@pause?$AA@   ; /pause
004015F4   .  E8 97F30100           CALL test1.system                           ; \system
004015F9   .  83C4 04               ADD ESP,4


C++反汇编->加法分析,布布扣,bubuko.com

C++反汇编->加法分析

原文:http://blog.csdn.net/sunboyiris/article/details/23378263

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!