首页
社区
课程
招聘
[旧帖] [求助]学习脱壳时候遇到的一个小问题 0.00雪花
发表于: 2010-8-26 19:50 1103

[旧帖] [求助]学习脱壳时候遇到的一个小问题 0.00雪花

2010-8-26 19:50
1103
重定位
   文件执行时将被映像到指定内存地址中,这个初始内存地址称为基地址(ImageBase)。当然这只是程序文件中声明的,程序运行时能够保证系统一定满足其要求吗?
   对于EXE的程序文件来说,Windows系统会尽量满足。例如某EXE文件的基地址为0x400000,而运行时Windows系统提供给程序的基地址也同样是0x400000。在这种情况下就不需要进行地址“重定位”了。由于不需要对EXE文件进行“重定位”,所以加壳软件把原程序文件中用于保存重定位信息的区块干脆也删除了,这样使得加壳后的文件更加小巧。有些工具提供“Wipe Reloc”的功能,其实就是这个作用。
不过对于DLL的动态链接库文件来说,Windows系统没有办法保证每一次DLL运行时提供相同的基地址。这样“重定位”就很重要了,此时壳中也需要提供进行“重定位”的代码,否则原程序中的代码是无法正常运行起来的。从这点来说,加壳的DLL比加壳的EXE更难修正。

上文引自本论坛的:http://bbs.pediy.com/showthread.php?t=20366

我知道这个地址应该指的是虚拟地址。。。
我的问题是:为什么于动态链接库文件,Windows系统没有办法保证每一次DLL运行时提供相同的基地址,而对于EXE的程序文件Windows系统会尽量满足?
大虾帮帮忙。。。

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 90
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
自己先顶一顶~
2010-8-27 06:32
0
游客
登录 | 注册 方可回帖
返回
//