首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-04-10 
有关PE文件格式的疑问IMAGE_DOS_HEADERMyDosIMAGE_NT_HEADERSMyPeFILE*fpfpfopen( d:\\sys1.exe ,r

有关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无关。

热点排行