<<  < 2014 - 11 >  >>
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30




#i nclude <stdio.h>
#i nclude <windows.h>
#i nclude <winnt.h>

BOOL IsPEfile(LPVOID ImageBase);

int main(void)
{
HMODULE HINSTAN=NULL;
HINSTAN = GetModuleHandle(NULL);//获取文件实例句柄
if (IsPEfile(HINSTAN))
{
printf("Is a Protable Executable File!\n");
return 0;
}    
printf("not is a protable Executable File!\n");
return 0;
}

                           //  1  //
////////////////////////判断文件是否为PE文件/////////////////////////////////////
BOOL IsPEfile(LPVOID ImageBase)   
{
PIMAGE_DOS_HEADER PDH;
PIMAGE_NT_HEADERS32 PNTH;
if (!ImageBase)
{
return false;
}
PDH=(PIMAGE_DOS_HEADER)ImageBase;
if (PDH->e_magic!=IMAGE_DOS_SIGNATURE)
{
return false;
}
PNTH=(PIMAGE_NT_HEADERS32)((DWORD)PDH+PDH->e_lfanew);
if (PNTH->Signature != IMAGE_NT_SIGNATURE)
{
return false;
}
return true;
}
//////////////////////////////////////////////////////////////////////////

  • 标签:PE windows 
    发表评论:
    天涯博客欢迎您!