-
-
[原创]超简易pe文件判别程序api实现 编译器dev
-
发表于: 2011-2-11 08:06 3016
-
#include <cstdlib>
#include <iostream>
#include <windows.h>
using namespace std;
int main(int argc, char *argv[])
{
BYTE *base= new BYTE[500];
char filename[500];
cout<<"请输入文件名"<<endl;
cin>>filename;
cout<<filename<<endl;
//打开文件,使用win32api
HANDLE hFile= CreateFile(filename,GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
DWORD ReadSize;
if(ReadFile(hFile,base,500,&ReadSize,NULL)==true)
{
if(*base=='M')
{
if(*(base+1)=='Z')
MessageBox(NULL,"exe文件","已确定",MB_OK);
//接下来进行PE文件的分析,先分析mz头
IMAGE_DOS_HEADER dosHeader;
ReadFile(hFile,&dosHeader,sizeof(dosHeader),&ReadSize,NULL);
SetFilePointer( hFile,dosHeader.e_lfanew,NULL,FILE_BEGIN);
IMAGE_NT_HEADERS ntHeader;
ReadFile(hFile,&ntHeader,sizeof(ntHeader),&ReadSize,NULL);
printf("%x",ntHeader.Signature);
if(ntHeader.Signature==0x00004550)
{
MessageBox(NULL,"PE文件","我靠",MB_OK);
}
else
{
MessageBox(NULL,"非PE文件","我靠",MB_OK);
}
}
else
{
MessageBox(NULL,"非exe文件","我靠",MB_OK);
}
}
else
{
MessageBox(NULL,"打开文件失败","打开文件失败",MB_OK);
}
CloseHandle( hFile);
system("PAUSE");
return EXIT_SUCCESS;
}
#include <iostream>
#include <windows.h>
using namespace std;
int main(int argc, char *argv[])
{
BYTE *base= new BYTE[500];
char filename[500];
cout<<"请输入文件名"<<endl;
cin>>filename;
cout<<filename<<endl;
//打开文件,使用win32api
HANDLE hFile= CreateFile(filename,GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
DWORD ReadSize;
if(ReadFile(hFile,base,500,&ReadSize,NULL)==true)
{
if(*base=='M')
{
if(*(base+1)=='Z')
MessageBox(NULL,"exe文件","已确定",MB_OK);
//接下来进行PE文件的分析,先分析mz头
IMAGE_DOS_HEADER dosHeader;
ReadFile(hFile,&dosHeader,sizeof(dosHeader),&ReadSize,NULL);
SetFilePointer( hFile,dosHeader.e_lfanew,NULL,FILE_BEGIN);
IMAGE_NT_HEADERS ntHeader;
ReadFile(hFile,&ntHeader,sizeof(ntHeader),&ReadSize,NULL);
printf("%x",ntHeader.Signature);
if(ntHeader.Signature==0x00004550)
{
MessageBox(NULL,"PE文件","我靠",MB_OK);
}
else
{
MessageBox(NULL,"非PE文件","我靠",MB_OK);
}
}
else
{
MessageBox(NULL,"非exe文件","我靠",MB_OK);
}
}
else
{
MessageBox(NULL,"打开文件失败","打开文件失败",MB_OK);
}
CloseHandle( hFile);
system("PAUSE");
return EXIT_SUCCESS;
}
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
他的文章
- [讨论]加密与解密第四版什么时候出? 48396
- [原创]超简易pe文件判别程序api实现 编译器dev 3017
- [原创]一个无聊的简易人机对战五子棋 7965
- [讨论]不知道有人中了sola宅男病毒 2466
- [讨论]不知程序员证书对找工作有何用 5653
看原图
赞赏
雪币:
留言: