汇编网首页登录博客注册
cxn的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态

[2007-11-06 13:50] 推荐博文 关于“程序加载到内存时的位置真的不确定吗”的实验

图片载入中
---------------------------------------点击图片放大---------------------------------------

在论坛讨论的一个问题程序加载到内存时的位置真的不确定吗?
帖子如下:http://www.asmedu.net/bbs/pasteinfo.jsp?part=1&level=free&kind=1020&qkSg=2&qID=5984&readSg=1

      我的观点是还是要看当时内存占用情况.加载同一个程序再退出再加载地址一样是因为系统中的内存占用情况一样,加载的程序并没有驻留内存,内存完全释放了.所以再加载和第一次加载是一样的.如果加载的程序驻留内存了占用了一定的内存空间那么再加载地址就不一样了.
      比如DOS下的某些病毒会常驻内存,在加载病毒前和加载病毒后,加载同一个程序的地址就是不一样的.
      DOS下的病毒?呵呵很难找了,找个容易点的,在Turbo c 2.0中有个帮助程序THELP.COM.这个程序的作用是驻留内存,当按小键盘的数字键5的时候弹出TC的帮助.这个程序常驻内存退出后也要占用内存空间.我们来试验一下,在运行THELP前加载一个程序地址是13FB退出,运行THELP,再加载同一个程序发现地址变化了,为什么?这是因为THELP占用了一段内存空间再加载程序只能从剩余的内存空间中分配了.所以地址变化了.
      简单实验有不对之处请多多指正.
评论次数(4)  |  浏览次数(2193)  |  类型(技术文章) |  收藏此文  | 

[  游客   发表于  2007-11-06 14:31  ]

;Windows和DOS下通用的代码自定位
基本上是Virus通用代码
    call @CallMe
@CallMe:
    pop ax

[  Wednesday   发表于  2007-11-06 17:23  ]

nothing impossible

[  dreamhk   发表于  2007-11-07 11:47  ]

很好,谢谢你的实验

[  liaojiededepan   发表于  2008-06-13 07:15  ]

高手啊~!学习了

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码