能力值:
( LV2,RANK:10 )
在线值:
|
-
-
2 楼
个人看法: 可以读的, 首先 节表以前的信息是连续的,这部分的内存影象和其在文件中的影象是一样的。 节表以后的各节的RA可以通过baseimage+vra 得到,并按内存要求对齐。
|
能力值:
( LV4,RANK:50 )
|
-
-
3 楼
程序加载进内存的基址就是DOS头的起始位置,从那儿开始按照PE结构读取相关信息即可
第2个没听明白,加载PE和你CreateFile有必然联系么?
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
一个是文件对齐一个是内存对齐了
|
能力值:
( LV2,RANK:10 )
在线值:

|
-
-
5 楼
谢谢您们的回复.
是这样的,我用CreateFile和ReadFile可以得到ImageDosHeader等结构,但是我用OpenProcess和ReadProcessMemory就得不到,
另外我用ReadProcessMemory从地址0开始读,读不到.
我实际上就是想找到程序的数据段和代码段的地址范围,不知道用PE的头里能不能得到.
|
能力值:
( LV3,RANK:20 )
|
-
-
6 楼
肯定可以,PE文件的信息都加载到内存里了.HOOK API有一种方法不就是改变IAT表中的数据吗?不加载到内存中怎么改.并且加载后读取内容比用ReadFile方便一些,因为不用再RVA和文件偏移转换了 
你如果还拿不准的话你可以找个EXE文件用OD加载,然后跳到0x00400000看看,从MZ开头,全都一样.至于你用ReadProcessMemory读不到,可能你程序写得不对,或者有些地方有内存保护属性而你没有去掉所以读不到了.(VirtualProtect)
|
|
|