首页
社区
课程
招聘
[原创]C语言最简main函数的反汇编代码解析
发表于: 2013-3-19 10:25 11544

[原创]C语言最简main函数的反汇编代码解析

2013-3-19 10:25
11544

对于新手而言,汇编看着就头疼,更别提去OD什么东东了,我也正处于这个阶段。前两天看了《天书夜读》第一章关于main函数反汇编的解析,顿时有种茅塞顿开的感觉。再看起来汇编代码,虽然还是没有看C语言那么容易,但心情变得很轻松。这都是《天书夜读》的功劳。特此分享给菜菜同行。
目前我们写的最简单的Main函数如下:

#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
	return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
010C13A0  push        ebp  
010C13A1  mov         ebp,esp  
010C13A3  sub         esp,0C0h  
010C13A9  push        ebx  
010C13AA  push        esi  
010C13AB  push        edi  
010C13AC  lea         edi,[ebp-0C0h]  
010C13B2  mov         ecx,30h  
010C13B7  mov         eax,0CCCCCCCCh  
010C13BC  rep stos    dword ptr es:[edi]  
	return 0;
010C13BE  xor         eax,eax  
}
010C13C0  pop         edi  
010C13C1  pop         esi  
010C13C2  pop         ebx  
010C13C3  mov         esp,ebp  
010C13C5  pop         ebp  
010C13C6  ret
push        ebp
mov         ebp,esp
xor         eax,eax
ret

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 6
支持
分享
最新回复 (14)
雪    币: 254
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
谢谢楼主分享,学习学习
2013-3-19 10:35
0
雪    币: 144
活跃值: (46)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
多谢分享啊啊
2013-3-19 10:40
0
雪    币: 7
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
好文章,必须顶
2013-3-25 08:05
0
雪    币: 38
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
顶一下。一直想看这个
2013-4-12 22:06
0
雪    币: 92
活跃值: (100)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
6
真心有用啊1!!
2013-4-14 00:46
0
雪    币: 35
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
010C13A3  sub         esp,0C0h
;把esp往上移动一个范围,等于在栈中开辟一片空间存储main函数的局部变量

但是main函数中并没有局部变量啊????
2013-4-14 12:24
0
雪    币: 70
活跃值: (40)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
8
你的问题提问的很好。这是编译器Debug模式下的汇编代码,Release模式下只会生成xor eax ,eax哦,估计你也知道为什么。

函数确实没有加入局部变量。在这个mian函数中,开辟出0C0h的预留数据空间,由于并没有局部变量,所以后面将这段区域插入int 3的机器码。正常的程序是不可能执行数据空间的,如果执行了,就会运行int 3软中断,表明程序存在缺陷。所以插入这个预留空间,主要是便于程序的Debug调试。

你如果写个局部变量等含有很多信息的函数,就和咱们汇编代码有很多相似性了。估计都是基于main函数这个模式来汇编的。
2013-4-14 23:20
0
雪    币: 8
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
好文章 顶起
2013-4-21 13:59
0
雪    币: 19
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
好文!等会我也想写一份  :)
2013-4-21 21:23
0
雪    币: 100
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
cff
11
感谢楼主分享
2013-4-23 10:06
0
雪    币: 283
活跃值: (162)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
thanks a lot.
2013-4-27 08:04
0
雪    币: 240
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
好帖必须顶,不顶没人性。。
2013-5-1 06:20
0
雪    币: 70
活跃值: (40)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
14
不知不觉这个是优秀文章了,自己好激动。我要好好努力!
2013-6-1 12:39
0
雪    币: 123
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
必须得学习,这个写的好!
2013-6-1 13:51
0
游客
登录 | 注册 方可回帖
返回
//