能力值:
( LV2,RANK:10 )
|
-
-
2 楼
通常windows的loader?以dll的base address?首啉戴入,如果那?位置已?被?了才啉第二?位置.所以晷嫔?不是LoadLibrary等API,而是那?被戴入的DLL的PE header中所指的base address是否被??,如果?有,首啉的base address就?被用?戴入你的DLL,如果位置被?了,??乎PE中有?有relocation table和PE中characteristic奄是否可容杂base address relocation才?定是否戴入你的DLL.
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
非常感谢,明白了,我再去试试
总之关键就是dll中的base address,那我要构造特定的dll了,再问一句,所有dll的初始base address应该都是一个定值,这个默认的地址是哪???这些dll装入内存的时候,大都要重定位,系统给它重新定位选择地址是依据一个什么样的算法,比如是从高地址开始,或者说是完全随机的等等???
|
能力值:
( LV4,RANK:50 )
|
-
-
4 楼
dll的 BaseAddress 可以用pe工具修改,比如说lordpe。
而且可以在链接的时候指定:
Visual C++ Linker Options
Linker Options
..
/BASE Sets a base address for the program
|
|
|