看流星社区

 找回密码
 注册账号
查看: 2066|回复: 0

判断pe文件

[复制链接]

该用户从未签到

发表于 2017-6-2 13:28:25 | 显示全部楼层 |阅读模式
#include <afxdlgs.h>是为了使用CFileDialog

main.h如下:
#include <afxwin.h>

class CMyApp:public CWinApp
{
        BOOL InitInstance();
};




main.cpp如下:
#include "main.h"
#include <afxdlgs.h>

CMyApp theApp;

BOOL CMyApp::InitInstance()
{
        CFileDialog dlg(TRUE);
        if (dlg.DoModal() != IDOK)
        {
                return FALSE;
        }
        //打开文件
        HANDLE hFile = ::CreateFile(dlg.GetPathName(), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
        if (INVALID_HANDLE_VALUE == hFile)
        {
                return FALSE;
        }
        IMAGE_DOS_HEADER dosHeader;
        IMAGE_NT_HEADERS32 ntHeader;
        DWORD dwReturn;
        BOOL bIsPe=FALSE;
        ::ReadFile(hFile, &amp;dosHeader, sizeof(IMAGE_DOS_HEADER), &amp;dwReturn, NULL);
        if (dwReturn == sizeof(IMAGE_DOS_HEADER))
        {
                if (dosHeader.e_magic == IMAGE_DOS_SIGNATURE) //mz
                {
                        if (-1 != ::SetFilePointer(hFile, dosHeader.e_lfanew, NULL, FILE_BEGIN))
                        {
                                ::ReadFile(hFile, &amp;ntHeader, sizeof(IMAGE_NT_HEADERS32), &amp;dwReturn, NULL);
                                if (dwReturn == sizeof(IMAGE_NT_HEADERS32))
                                {
                                        if (ntHeader.Signature == IMAGE_NT_SIGNATURE) //pe
                                        {
                                                bIsPe = TRUE;
                                        }
                                }
                        }
                                               
                }
        }
        ::CloseHandle(hFile); //与上面的CreateFile区对写
        if (bIsPe)
        {
                MessageBoxA(NULL, "is a pe file", "", MB_OK);
        }
        else
        {
                MessageBoxA(NULL, "not a pe file", "", MB_OK);
        }
        return FALSE;
}
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-3-28 21:51

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表