读书人

有关PE文件格式的疑问解决思路

发布时间: 2012-04-10 21:03:56 作者: rapoo

有关PE文件格式的疑问
IMAGE_DOS_HEADER MyDos;
IMAGE_NT_HEADERS MyPe;

FILE *fp;
fp = fopen( "d:\\sys1.exe ", "r+b ");
fseek(fp, 0 , 0);
if (MyDos.e_magic == IMAGE_DOS_SIGNATURE)
cout < < "DOS " < <endl;
else
cout < <IMAGE_DOS_SIGNATURE < <MyDos.e_magic < < "not Dos " < <endl;

fclose(fp);
getchar();

问题:1.只要是我fopen过的文件(包括PE文件与非PE文件)都变成“非win32的合法程序”。
2.fopen一个PE文件,但是MyDos.e_magic 却不等于IMAGE_DOS_SIGNATURE。为什么?难道代码有错吗?


[解决办法]
用 "rb" 方式打开

[解决办法]
楼上正解,看看文档'+'是干什么用的。和PE无关。

读书人网 >C++

热点推荐