我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:一品彩票 > 反汇编程序 >

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

归档日期:06-11       文本归类:反汇编程序      文章编辑:爱尚语录

  从源代码到编译连接之后生成exe文件之后我想知道exe文件究竟是怎么加载带内存之上来运行的。帮我分析一下下面一行的反汇编之后的代码:::00401075::8B4DFCMOVECX,[EBP-4]::00401078::...

  从源代码到编译连接之后生成exe文件之后我想知道exe文件究竟是怎么加载带内存之上来运行的。帮我分析一下下面一行的反汇编之后的代码: ::00401075:: 8B4D FC MOV ECX,[EBP-4] ::00401078:: C1E1 02 SHL ECX,2 ::0040107B:: 51 PUSH ECX 这个是用C32Asm反编译的,后面的汇编代码就没什么好解释的了,主要是:前面的00401075这个地址是程序运行时加载到内存中的地址吗?这个地址后面的是偏移地址吗?

  展开全部每一个windows进程都映射到独立的4G(32位)的虚拟地址空间里面的,而不是直接访问物理内存的。 也就是说,每个进程都有属于她自己独立的私有空间,他们不可能被加载到同一个物理内存位置的,假设进程1在0x00401075这个地方有代码,进程2在0x00401075这个地方也有代码,他们也不是可能是重复的。 而win2000以后的系统(32位非3G模式)用户方式下的内存是由0x00010000开始的,exe文件映像被加载到其中起始地址为0x00400000的空间里面(个人觉得这个0x00400000可能是为了兼容win98的程序的原因,因为win98的用户方式地址分区是由0x00400000开始的)。 所以这里的0x00400000就是楼上说的那个基地址。而他们怎么加载就要看exe文件头里面的定义了。

本文链接:http://explodingspec.com/fanhuibianchengxu/462.html