
cve-2026-40369에 대한 관련 멤버 오프셋 및 함수 주소를 위한 eprocess 오프셋 풀러
Windows ntoskrnl.exe 이진 파일에서 중요 커널 메타데이터를 추출하기 위한 IDA Python 스크립트입니다. 이 도구는 CVE-2026-40369 및 기타 커널 취약점을 대상으로 하는 익스플로잇 개발에 필요한 함수 RVA와 _EPROCESS 구조체 오프셋을 자동으로 추출합니다.
이 도구는 익스플로잇 페이로드에 하드코딩해야 하는 버전별 커널 메타데이터를 자동으로 추출하여 CVE-2026-40369에 대한 성공적인 익스플로잇을 컴파일하는 데 도움을 줍니다. 추출된 값은 다양한 Windows 빌드 및 패치 수준에서 적절한 함수 후킹과 구조체 멤버 액세스를 보장합니다.
자동 함수 RVA 추출: 주요 커널 함수의 RVA를 검색합니다:
ExpGetProcessInformationExpQuerySystemInformationCmpLayerVersionCountCmpLayerVersionsPsInitialSystemProcess_EPROCESS 구조체 오프셋: 다음 멤버의 오프셋을 추출합니다:
UniqueProcessIdActiveProcessLinksTokenImageFileName즉시 사용 가능한 출력: CVE-2026-40369 익스플로잇 코드에 직접 붙여넣을 수 있는 형식화된 출력을 생성합니다
IDA Pro에서 ntoskrnl.exe를 엽니다
일치하는 Windows PDB 심볼을 로드합니다:
스크립트를 실행합니다:
extract_metadata.py 선택스크립트는 다음을 출력합니다:
=== RVAs (image base = 0x140000000) ===
ExpGetProcessInformation: ea=0x1400a1234 rva=0xa1234
ExpQuerySystemInformation: ea=0x1400a5678 rva=0xa5678
...
=== _EPROCESS member offsets ===
_EPROCESS.UniqueProcessId: 0x440
_EPROCESS.ActiveProcessLinks: 0x448
_EPROCESS.Token: 0x4d8
_EPROCESS.ImageFileName: 0x5e8
=== g_builds[] row (paste at poc.c:146) ===
{ 26200, 8037, 0xA1234, 0xA5678, 0x440, 0x448, 0x4D8, 0x5E8 },
| Error | Solution |
|---|---|
| "NOT FOUND (PDB not loaded?)" | ntoskrnl.exe 버전에 맞는 올바른 Windows PDB 파일을 로드하십시오 |
| "_EPROCESS not in Local Types" | PDB가 제대로 로드되었는지 확인하고, 파일 → 로드 파일 → PDB 파일을 시도하십시오 |
| Script runs but no output | IDA Python 콘솔이 열려 있는지 확인하십시오 (Windows → 출력 창 → Python) |
이 스크립트는 PDB 심볼을 사용할 수 있는 모든 Windows ntoskrnl.exe 버전에서 작동합니다. Windows 10 및 Windows 11에서 테스트되었습니다.
이 도구는 보안 연구 및 공인된 분석 목적으로만 있는 그대로 제공됩니다.