能力值:
( LV2,RANK:10 )
|
-
-
2 楼
修改前:
修改后:
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
好像要修改每个需重定位的绝对地址吧,没试过
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
嗯,我修改了还是不行,应该是哪里错了或者漏了
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
你确定你的程序运行起来后基址是你修改之后的值吗?
|
能力值:
( LV8,RANK:130 )
|
-
-
7 楼
不需要修改重定位表吧?难道我记错了。。
|
能力值:
( LV11,RANK:190 )
|
-
-
8 楼
重定位表不需要修改,ImageBase改了就行
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
只改ImageBase不行的喔,无法运行的
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
我也不是很清楚……
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
被我改了后压根就运行不起来……
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
改起来超级麻烦吧.
主要是要重新计算内存地址操作区.
比如 _except_handler 还有常量地址 比如 push const mov [const],e*x/value
这样子的.
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
在PE文件头的File Header中有一个Characteristics字段,你把IMAGE_FILE_RELOCS_STRIPPED属性加上,然后再试试
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
菜鸟飘过
程序入口地址改了吗,我记得好像也需要修改一下。。
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
基址被系统改了,不是你修改的0x500000,打开OD可以看看
|
能力值:
( LV3,RANK:20 )
|
-
-
16 楼
如果你修改了ImageBase,那么在PE加载器加载这个模块时会出现以下几种情况:1.模块刚好加载到修改后的ImageBase,PE加载器会认为不需要做重定位处理了,很显然,程序是无法运行的,要想使模块正确加载是需要进行重定位处理的;2.模块刚好加载到旧ImageBase,此时由于ImageBase和实际加载的位置不同,所以PE加载器认为需要进行重定位处理的,但实际上这种情况下不需要进行重定位处理;3.模块即没有加载到旧ImageBase也没有加载到新ImageBase,PE加载器一样会进行重定位处理,并且是按照修改后的ImageBase作重定位处理的,模块依然不能正确使用;结论:修改ImageBase,模块中所有需要重定位的基地址都需要修改,否则模块无法正确使用
最后于 2020-4-22 22:17
被Mr.hack编辑
,原因:
|
|
|