国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++判斷pe文件實例

2020-01-26 15:14:18
字體:
來源:轉載
供稿:網友

本文實例講述了C++判斷pe文件的方法。分享給大家供大家參考。

具體實現方法如下:

#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, &dosHeader, sizeof(IMAGE_DOS_HEADER), &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, &ntHeader, sizeof(IMAGE_NT_HEADERS32), &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; 
}

希望本文所述對大家的C++程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 都兰县| 吉安市| 湘潭市| 伊宁市| 彭山县| 乌兰察布市| 郸城县| 浦县| 天全县| 通化市| 平凉市| 屏东市| 丰原市| 前郭尔| 大竹县| 偃师市| 邢台县| 陆川县| 长武县| 社旗县| 莫力| 固始县| 水富县| 花莲市| 兰坪| 平顺县| 盐城市| 陆河县| 图木舒克市| 洞口县| 达州市| 宁化县| 芦溪县| 溆浦县| 沂水县| 乌拉特后旗| 仲巴县| 福建省| 云南省| 阿巴嘎旗| 贞丰县|