업데이트로 돌아가기
New releaseAug 14, 2026

TABPE v2026.8

사이버 보안 연구자를 위한 월간 Windows PE 기준 데이터셋

공유

TABPE

TABPE란 무엇인가?

TABPE (TABriz + PE의 조합 - 타브리즈는 제 고향이며, 제 도시에 대한 사랑으로 이 프로젝트를 명명했습니다)는 깨끗하고 완전히 업데이트된 Windows 10 Pro 및 Windows 11 Pro 버전에서 모든 PE 파일(Windows 실행 파일)의 정보( .exe, .dll, .sys 등 포함)를 포함하는 개방형 구조화된 데이터셋입니다.

제 작업 방식은 다음과 같습니다:

  • Windows를 설치하고, 매달 Microsoft가 보안 업데이트(Patch Tuesday)를 릴리스한 후 시스템을 업데이트하려고 했습니다.
  • 어떤 달에는 업데이트가 Patch Tuesday 당일 또는 며칠 후에 정확히 적용되었습니다.
  • 다른 달에는 여러 이유(예: 이란의 인터넷 중단)로 인해 제때 업데이트하지 못했습니다. 그런 경우 업데이트 파일( .msu)을 수동으로 다운로드하여 설치했습니다.
  • 결과적으로 Patch Tuesday 기준 정확한 스캔 시간은 며칠에서 몇 주까지 다를 수 있습니다. 그러나 스캔 날짜까지 Microsoft에서 릴리스한 모든 업데이트는 시스템에 적용되었습니다.

각 스캔의 정확한 시작 및 종료 시간은 pe_files_info.json 파일의 scan_info 섹션에 기록됩니다.

프로젝트 출력물

각 릴리스는 세 가지 주요 파일을 제공합니다:

파일설명
pe_files_info.json모든 PE 파일(헤더, 섹션, 임포트, 익스포트, SHA256 해시, 보안 정보, LOAD_CONFIG 등)에 대한 전체 정보를 포함하는 메인 파일
file_list.txt해당 Windows 버전의 모든 PE 파일 경로의 전체 목록
scanner.log오류 및 스캐너가 액세스할 수 없는 파일(Access Denied) + 오류 로그

pe_files_info.json 샘플 구조

{
    "scan_info": {
        "start_time": "2026-06-04T06:21:51-07:00",
        "end_time": "2026-06-04T08:09:37-07:00",
        "duration": "1h 47m 45s",
        "windows_version": {
            "os_name": "Windows 11 Pro",
            "os_version": "10.0.26100.8457 Build 26100",
            "system_type": "x64-based PC",
            "version": "24H2",
            "last_update": "KB5087054"
        },
        "total_files": 29377,
        "error_files": 12,
        "error_files_list": [
            {
                "id": 7618,
                "path": "C:\\Windows\\SysWOW64\\compobj.dll"
            },
            {
                "id": 8561,
                "path": "C:\\Windows\\SysWOW64\\ole2disp.dll"
            },
            {
                "id": 8562,
                "path": "C:\\Windows\\SysWOW64\\ole2nls.dll"
            },
            {
                "id": 8560,
                "path": "C:\\Windows\\SysWOW64\\ole2.dll"
            },
            {
                "id": 8839,
                "path": "C:\\Windows\\SysWOW64\\storage.dll"
            },
            {
                "id": 8912,
                "path": "C:\\Windows\\SysWOW64\\typelib.dll"
            },
            {
                "id": 28768,
                "path": "C:\\Windows\\WinSxS\\x86_microsoft-windows-n..nd-syswow64-payload_31bf3856ad364e35_1.0.26100.1_none_d3b8ff829e6c9bfb\\ole2.dll"
            },
            {
                "id": 28767,
                "path": "C:\\Windows\\WinSxS\\x86_microsoft-windows-n..nd-syswow64-payload_31bf3856ad364e35_1.0.26100.1_none_d3b8ff829e6c9bfb\\compobj.dll"
            },
            {
                "id": 28769,
                "path": "C:\\Windows\\WinSxS\\x86_microsoft-windows-n..nd-syswow64-payload_31bf3856ad364e35_1.0.26100.1_none_d3b8ff829e6c9bfb\\ole2disp.dll"
            },
            {
                "id": 28770,
                "path": "C:\\Windows\\WinSxS\\x86_microsoft-windows-n..nd-syswow64-payload_31bf3856ad364e35_1.0.26100.1_none_d3b8ff829e6c9bfb\\ole2nls.dll"
            },
            {
                "id": 28772,
                "path": "C:\\Windows\\WinSxS\\x86_microsoft-windows-n..nd-syswow64-payload_31bf3856ad364e35_1.0.26100.1_none_d3b8ff829e6c9bfb\\typelib.dll"
            },
            {
                "id": 28771,
                "path": "C:\\Windows\\WinSxS\\x86_microsoft-windows-n..nd-syswow64-payload_31bf3856ad364e35_1.0.26100.1_none_d3b8ff829e6c9bfb\\storage.dll"
            }
        ]
    },
    "pe_files": [
        {
            "id": 1,
            "filename": "msdaosp.dll",
            "path": "C:\\Program Files\\Common Files\\System\\Ole DB\\msdaosp.dll",
            "sha256": "38390b62e81fd3381d6ea2d50c5e35ff93370e70122326c0cb8de53f9f9085d0",
            "file_type": "dll",
            "has_rich_header": "YES",
            "machine": "AMD64",
            "time_date_stamp": "2010-06-03 08:46:58 UTC",
            "characteristics": [
                "EXECUTABLE_IMAGE",
                "LARGE_ADDRESS_AWARE",
                "UP_SYSTEM_ONLY"
            ],
            "magic": "PE32+",
            "major_linker_version": 14,
            "minor_linker_version": 38,
            "major_os_version": 10,
            "minor_os_version": 0,
            "major_image_version": 10,
            "minor_image_version": 0,
            "major_subsystem_version": 10,
            "minor_subsystem_version": 0,
            "checksum": 188850,
            "subsystem": "WINDOWS_GUI",
            "dll_characteristics": [
                "DYNAMIC_BASE",
                "GUARD_CF",
                "HIGH_ENTROPY_VA",
                "NX_COMPAT"
            ],
            "data_directories": [
                "EXPORT_TABLE",
                "IMPORT_TABLE",
                "RESOURCE_TABLE",
                "EXCEPTION_TABLE",
                "BASE_RELOCATION_TABLE",
                "DEBUG",
                "LOAD_CONFIG_TABLE",
                "IAT"
            ],
            "sections": [
                {
                    "name": ".text",
                    "characteristics": [
                        "CNT_CODE",
                        "MEM_EXECUTE",
                        "MEM_SHARED"
                    ]
                },
                {
                    "name": "fothk",
                    "characteristics": [
                        "CNT_CODE",
                        "MEM_EXECUTE",
                        "MEM_SHARED"
                    ]
                },
                {
                    "name": ".rdata",
                    "characteristics": [
                        "CNT_INITIALIZED_DATA",
                        "MEM_EXECUTE"
                    ]
                },
                {
                    "name": ".data",
                    "characteristics": [
                        "CNT_INITIALIZED_DATA",
                        "MEM_EXECUTE",
                        "MEM_READ"
                    ]
                },
                {
                    "name": ".pdata",
                    "characteristics": [
                        "CNT_INITIALIZED_DATA",
                        "MEM_EXECUTE"
                    ]
                },
                {
                    "name": ".rsrc",
                    "characteristics": [
                        "CNT_INITIALIZED_DATA",
                        "MEM_EXECUTE"
                    ]
                },
                {
                    "name": ".reloc",
                    "characteristics": [
                        "CNT_INITIALIZED_DATA",
                        "LNK_NRELOC_OVFL",
                        "MEM_EXECUTE"
                    ]
                }
            ],
            "exports": [
                "DllCanUnloadNow",
                "DllGetClassObject",
                "DllMain",
                "DllRegisterServer",
                "DllUnregisterServer"
            ],
            "imports": [
                {
                    "dll_name": "ADVAPI32.DLL",
                    "functions": [
                        "RegCloseKey",
                        "RegOpenKeyExW",
                        "RegQueryValueExW"
                    ]
                },
                {
                    "dll_name": "KERNEL32.DLL",
                    "functions": [
                        "CompareStringA",
                        "CompareStringW",
                        "DeleteCriticalSection",
                        "DisableThreadLibraryCalls",
                        "EnterCriticalSection",
                        "GetCurrentProcess",
                        "GetCurrentProcessId",
                        "GetCurrentThread",
                        "GetCurrentThreadId",
                        "GetProcessHeap",
                        "GetSystemDefaultLCID",
                        "GetSystemInfo",
                        "GetSystemTimeAsFileTime",
                        "GetTickCount",
                        "InitializeCriticalSection",
                        "LeaveCriticalSection",
                        "MultiByteToWideChar",
                        "QueryPerformanceCounter",
                        "RtlCaptureContext",
                        "RtlLookupFunctionEntry",
                        "RtlVirtualUnwind",
                        "SetUnhandledExceptionFilter",
                        "Sleep",
                        "TerminateProcess",
                        "TryEnterCriticalSection",
                        "UnhandledExceptionFilter",
                        "WideCharToMultiByte"
                    ]
                },
                {
                    "dll_name": "MSVCRT.DLL",
                    "functions": [
                        "_XcptFilter",
                        "__C_specific_handler",
                        "_amsg_exit",
                        "_callnewh",
                        "_initterm",
                        "_mbsinc",
                        "_purecall",
                        "_wcsicmp",
                        "floor",
                        "free",
                        "malloc",
                        "memcmp",
                        "memcpy",
                        "memmove",
                        "memset",
                        "realloc"
                    ]
                },
                {
                    "dll_name": "OLE32.DLL",
                    "functions": [
                        "CLSIDFromProgID",
                        "CoCreateInstance",
                        "CoGetMalloc",
                        "CoTaskMemFree",
                        "ProgIDFromCLSID",
                        "StringFromCLSID"
                    ]
                },
                {
                    "dll_name": "USER32.DLL",
                    "functions": [
                        "DispatchMessageW",
                        "LoadStringW",
                        "MsgWaitForMultipleObjects",
                        "PeekMessageW",
                        "TranslateMessage"
                    ]
                }
            ],
            "debug_info": [
                "CODEVIEW"
            ],
            "mitigations": [
                "DYNAMIC_BASE/ASLR",
                "NX_COMPAT/DEP",
                "CFG",
                "HIGH_ENTROPY_VA"
            ],
            "has_certificate": false,
            "load_config": {
                "raw": "00000148 size\n0 time date stamp\n0.00 Version\n0 GlobalFlags Clear\n0 GlobalFlags Set\n0 Critical Section Default Timeout\n0 Decommit Free Block Threshold\n0 Decommit Total Free Threshold\n0000000000000000 Lock Prefix Table\n0 Maximum Allocation Size\n0 Virtual Memory Threshold\n0 Process Affinity Mask\n0 Process Heap Flags\n0 CSD Version\n0000 Dependent Load Flag\n0000000000000000 Edit List\n00000001800190C0 Security Cookie\n0000000180015B38 Guard CF address of check-function pointer\n0000000180015B40 Guard CF address of dispatch-function pointer\n0000000180015BD4 Guard CF function table\nA5 Guard CF function count\n10417500 Guard Flags\nCF instrumented\nFID table present\nProtect delayload IAT\nDelayload IAT in its own section\nExport suppression info present\nLong jump target table present\nEH Continuation table present\n0000 Code Integrity Flags\n0000 Code Integrity Catalog\n00000000 Code Integrity Catalog Offset\n00000000 Code Integrity Reserved\n0000000000000000 Guard CF address taken IAT entry table\n0 Guard CF address taken IAT entry count\n0000000000000000 Guard CF long jump target table\n0 Guard CF long jump target count\n0000000000000000 Dynamic value relocation table\n0000000000000000 Hybrid metadata pointer\n0000000000000000 Guard RF address of failure-function\n0000000000000000 Guard RF address of failure-function pointer\n00000228 Dynamic value relocation table offset\n0007 Dynamic value relocation table section\n0000 Reserved2\n0000000000000000 Guard RF address of stack pointer verification function pointer\n00000000 Hot patching table offset\n0000 Reserved3\n0000000000000000 Enclave configuration pointer\n0000000000000000 Volatile metadata pointer\n0000000180015B90 Guard EH continuation table\nD Guard EH continuation count\n0000000180015B48 Guard XFG address of check-function pointer\n0000000180015B50 Guard XFG address of dispatch-function pointer\n0000000180015B58 Guard XFG address of dispatch-table-function pointer\n0000000180015B60 CastGuard OS determined failure mode\n0000000000000000 Guard memcpy function pointer\nGuard CF Function Table\nAddress\n--------\n0000000180001060\n00000001800012E0\n0000000180001550\n00000001800017D0\n0000000180001AA0\n0000000180001AC0\n0000000180001AE0\n0000000180001B60\n0000000180001BA0\n0000000180001CF0\n0000000180001D10\n0000000180001D30\n0000000180001D40\n0000000180001D50\n0000000180001D60\n0000000180001D70\n0000000180002080\n00000001800022C0\n00000001800022D0\n00000001800022F0\n0000000180002B70\n0000000180003470\n00000001800034D0\n0000000180003D20\n0000000180003D30\n0000000180003D40\n0000000180003F30\n0000000180003F50\n0000000180003F60\n0000000180003F70\n0000000180003F80\n0000000180003F90\n0000000180003FA0\n0000000180003FC0\n0000000180003FD0\n0000000180003FE0\n0000000180003FF0\n0000000180004000\n0000000180004010\n0000000180004500\n00000001800046A0\n0000000180004800\n0000000180004810\n0000000180004840\n0000000180004A30\n0000000180005490\n00000001800054A0\n00000001800055A0\n0000000180005710\n00000001800057A0\n00000001800057B0\n00000001800059B0\n0000000180005AD0\n0000000180005B70\n0000000180005BB0\n0000000180005BD0\n0000000180005C10\n0000000180005E00\n00000001800062F0\n00000001800064C0\n0000000180006890\n00000001800068D0\n0000000180006A00\n0000000180006BB0\n0000000180006C30\n0000000180006C50\n0000000180007150\n00000001800075B0\n00000001800076A0\n0000000180007C60\nE 0000000180008570\nE 00000001800085E0\nE 00000001800088F0\n0000000180008BD0\n00000001800094F0\n0000000180009B80\n000000018000A040\n000000018000A060\n000000018000A0A0\n000000018000A3E0\n000000018000A420\n000000018000A620\n000000018000A790\n000000018000A890\n000000018000A8C0\n000000018000A930\n000000018000AA40\n000000018000AA70\n000000018000AAF0\n000000018000AB20\n000000018000AB80\n000000018000AC70\n000000018000ACA0\n000000018000AD30\n000000018000ADB0\n000000018000AE00\n000000018000AF40\n000000018000B470\n000000018000B630\n000000018000BA90\n000000018000CFF0\n000000018000D0D0\n000000018000D190\n000000018000D2E0\n000000018000D2F0\n000000018000D300\n000000018000D310\n000000018000D320\n000000018000D330\n000000018000D350\n000000018000D360\n000000018000D450\n000000018000D4C0\n000000018000D910\n000000018000D930\n000000018000E030\n000000018000E5B0\n000000018000EBF0\n000000018000EC00\n000000018000EF90\n000000018000F370\n000000018000F6F0\n000000018000F780\n000000018000F7D0\n000000018000F7E0\n000000018000F800\n000000018000F820\n000000018000F830\n000000018000FA80\n000000018000FCA0\n00000001800102A0\n0000000180010440\n00000001800104B0\n00000001800105D0\n0000000180010680\n0000000180010960\n0000000180010970\n0000000180010980\n0000000180010990\n00000001800109A0\n00000001800109B0\n0000000180010A10\n0000000180010A20\n0000000180010A30\n0000000180010A40\n0000000180010A50\n0000000180010A60\n0000000180010B50\n0000000180010B90\n0000000180010C90\n0000000180010D00\n0000000180010E80\n0000000180010FD0\n0000000180011580\n0000000180011750\n0000000180012050\n0000000180013080\n0000000180013100\n0000000180013120\n0000000180013140\n0000000180013170\n0000000180013180\n0000000180013190\n00000001800131C0\n00000001800131E0\nGuard EH Continuation Table\nAddress\n--------\n00000001800013A3\n00000001800013DA\n0000000180001411\n000000018000143E\n0000000180001460\n000000018000148E\n00000001800014C4\n0000000180001508\n0000000180001640\n00000001800085C4\n0000000180008B93\n000000018000D49B\n0000000180010CE8\nDynamic Value Relocation Table (version: 1)\nSymbol VA: 0000000000000007 IMAGE_DYNAMIC_RELOCATION_FUNCTION_OVERRIDE\nTotal function overrides size: 20 bytes\nBDD data: 20 bytes\nFunction Override (1)\nOriginal RVA: 00013480\nBDD Offset: 0\nRVA array size: 4\nReloc size: C\nRVAs:\n[00000000] 00013480\nBDD (version: 1, 18 bytes):\n[00000000] 0002, 0001, 00000142\n[00000001] 0001, 0001, 00000000\n[00000002] 0000, 0000, 00000000\nFixup RVAs:\n[00000000] = page 00014000 rva 00014011 type 1"
            }
        },

사이버 보안 사용 사례

방어적 (Blue Team)

  • 가장 탐지: 시스템의 파일 해시를 TABPE의 해시와 비교하여 합법적인 시스템 파일로 위장한 가짜 파일 및 악성코드(예: 가짜 svchost.exe)를 탐지할 수 있습니다.
  • 포렌식 분석: TABPE에서 파일 해시를 검색하여 해당 파일이 Windows 자체에 속하는지 외부 위협인지 빠르게 확인할 수 있습니다.
  • LOLBin 식별: 합법적인 Windows 파일의 기능(임포트 및 익스포트를 통해)을 조사하여 공격자가 악성 코드 실행에 사용할 수 있는 기본 제공 도구를 확인할 수 있습니다.

공격적 (Red Team)

  • DLL 사이드로딩: 합법적인 실행 파일의 임포트 테이블을 조사하여 특정 실행 파일이 로드하는 DLL을 확인할 수 있습니다. 이 정보는 DLL 사이드로딩 기법에 중요합니다.
  • 보안 메커니즘이 없는 파일 찾기: mitigations 섹션을 확인하여 ASLR 또는 DEP가 없는 파일을 찾을 수 있으며, 이는 익스플로잇 개발을 더 쉽게 만듭니다.
  • LOLBin 식별: Red Team의 경우 공격에 사용할 수 있는 코드 실행, 파일 다운로드 또는 네트워크 통신과 같은 기능을 가진 합법적인 Windows 파일이 무엇인지 아는 것이 중요합니다.

악성코드 분석 및 익스플로잇 개발

  • 패커 탐지: 패킹된 악성코드는 종종 비정상적인 섹션을 가집니다. TABPE는 정상 파일의 기준을 제공하여 이상 징후를 더 빨리 발견할 수 있습니다.
  • 완화 조치 확인: 익스플로잇을 작성하기 전에 대상 파일에 어떤 보안 메커니즘(ASLR, DEP, CFG 등)이 활성화되어 있는지 알아야 합니다. TABPE가 이 정보를 제공합니다.

시간에 따른 변경 사항 추적 (바이너리 디핑)

두 개의 다른 릴리스 간에 PE 파일을 비교하여 다음을 수행할 수 있습니다:

  • 각 Patch Tuesday 동안 정확히 어떤 파일이 변경되었는지 확인합니다.
  • 자동 보안 패치를 식별합니다.
  • 제로데이 취약점 분석을 위해 파일 변경 사항을 추적합니다.

기술 정보

특징
플랫폼Windows 10 Pro 및 Windows 11 Pro (x64)
가상화 환경VMware Workstation (격리된 VM, 호스트 간섭 없음)
업데이트 빈도매월 (각 Patch Tuesday 이후)
버전당 PE 파일 수약 25,000 – 31,000개 파일
출력 형식JSON (Python, PowerShell, C# 등으로 처리 가능)
태그 형식YYYY.M (예: 2026년 5월의 경우 2026.5)
압축 파일 크기~30 MB (원본 JSON ~1 GB)

면책 조항

이 프로젝트는 연구 및 교육 목적으로만 제공됩니다. 제시된 데이터는 합법적인 Windows 파일의 기준입니다. 이 정보를 불법, 악의적 또는 무단 활동에 사용하는 경우 전적으로 사용자의 책임입니다. 저자는 이 데이터의 오용에 대해 어떠한 책임도 지지 않습니다.

라이선스

이 프로젝트는 MIT 라이선스에 따라 배포됩니다.

카테고리