从反汇编中看exe程序的运行原理谢谢了,大神帮忙啊

从源代码到编译连接之后生成exe文件之后我想知道exe文件究竟是怎么加载带内存之上来运行的。帮我分析一下下面一行的反汇编之后的代码:::00401075::8B4DFCM... 从源代码到编译连接之后生成exe文件之后我想知道exe文件究竟是怎么加载带内存之上来运行的。帮我分析一下下面一行的反汇编之后的代码: ::00401075:: 8B4D FC MOV ECX,[EBP-4] ::00401078:: C1E1 02 SHL ECX,2 ::0040107B:: 51 PUSH ECX 这个是用C32Asm反编译的,后面的汇编代码就没什么好解释的了,主要是:前面的00401075这个地址是程序运行时加载到内存中的地址吗?这个地址后面的是偏移地址吗? 展开
 我来答
一七九nGrB
2014-07-08 · TA获得超过174个赞
知道答主
回答量:110
采纳率:0%
帮助的人:131万
展开全部
每一个windows进程都映射到独立的4G(32位)的虚拟地址空间里面的,而不是直接访问物理内存的。 也就是说,每个进程都有属于她自己独立的私有空间,他们不可能被加载到同一个物理内存位置的,假设进程1在0x00401075这个地方有代码,进程2在0x00401075这个地方也有代码,他们也不是可能是重复的。 而win2000以后的系统(32位非3G模式)用户方式下的内存是由0x00010000开始的,exe文件映像被加载到其中起始地址为0x00400000的空间里面(个人觉得这个0x00400000可能是为了兼容win98的程序的原因,因为win98的用户方式地址分区是由0x00400000开始的)。 所以这里的0x00400000就是楼上说的那个基地址。而他们怎么加载就要看exe文件头里面的定义了。

满意请采纳
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式