実行可能形式ファイルの判定【Windows API】

ウィルス対策ソフトくらいしか使い道が無い気がしますが、与えたファイルが実行ファイルか通常のファイルか判定するAPIがあります。今回は実際にEXEファイルの判定を行ってみましょう。

    char szFileName[MAX_PATH+1] = "D:\\TEST.EXE";
    DWORD dwBinaryType;

    if (GetBinaryType(szFileName, &dwBinaryType)) {
        switch (dwBinaryType)
        {
        case SCS_32BIT_BINARY:
            printf("Win32 ベースのアプリケーション\n");
            break;

        case SCS_DOS_BINARY:
            printf("MS-DOS ベースのアプリケーション\n");
            break;

        case SCS_OS216_BINARY:
            printf("16 ビット版 OS/2 ベースのアプリケーション\n");
            break;

        case SCS_PIF_BINARY:
            printf("MS-DOS ベースのアプリケーションを実行する PIF ファイル\n");
            break;

        case SCS_POSIX_BINARY:
            printf("POSIX ベースのアプリケーション\n");
            break;

        case SCS_WOW_BINARY:
            printf("16 ビット版 Windows ベースのアプリケーション\n");
            break;
        }
    }

 

Windows API

Posted by @erestage