-
-
[求助]奇异的定位
-
发表于:
2009-7-14 20:47
4048
-
直到昨天,我写了个加壳的程序,主要是为了加深对pe文件格式的熟悉。
昨天晚上编译通过后,我找来程序做测试,用写好的加壳程序给一个叫Frist.exe的程序加上了壳,Frist.exe是我写的一个小功能的程序没什么用。
加壳后启动了Frist.exe弹出错误对话框,访问00401000地址读写错误。(并没有做seh处理)
用od载入了Frist.exe 发现所有偏移的地址都成了00401XXX这让我非常郁闷
pe段下添加一个.gt的段,rva是5000,段大小是671字节,对齐后是800字节,段Number+1,修改程序入口点,5000+sizeof 宿主代码开头那些定义的用来存放或使用的东西.
修改完毕,执行程序 发现我所寻址定义的那些数据全部变成了400000+1000+偏移
并非段定义的rva5000 按原先想象的因该是400000+5000+偏移,却并非如此。
我想因该是IMAGE_OPTIONAL_HEADER OptionalHeader下的BaseCode的问题,但是并没有试图去修改,因为别人的加壳程序并没有对这个进行改动。
不知道问题出在哪,希望各位能简要的叙述一下,便移地址是如何进行重定位的和重新地位与pe文件格式下字段的关系。 谢谢大家!
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课