ホーム › System.Diagnostics.Debug.Extensions › KDDEBUGGER_DATA64
KDDEBUGGER_DATA64
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| Header | DBGKD_DEBUG_DATA_HEADER64 | 24 | +0 | +0 | デバッガデータブロックの共通ヘッダ(64ビット)。 |
| KernBase | ULONGLONG | 8 | +24 | +24 | カーネルイメージの基底アドレス。 |
| BreakpointWithStatus | ULONGLONG | 8 | +32 | +32 | ステータス付きブレークポイント命令のアドレス。 |
| SavedContext | ULONGLONG | 8 | +40 | +40 | 保存済みコンテキストのアドレス。 |
| ThCallbackStack | WORD | 2 | +48 | +48 | スレッドのコールバックスタックのオフセット。 |
| NextCallback | WORD | 2 | +50 | +50 | 次のコールバックフレームのオフセット。 |
| FramePointer | WORD | 2 | +52 | +52 | コールバックフレームポインタのオフセット。 |
| _bitfield | WORD | 2 | +54 | +54 | 各種フラグをまとめたビットフィールド。 |
| KiCallUserMode | ULONGLONG | 8 | +56 | +56 | KiCallUserMode関数のアドレス。 |
| KeUserCallbackDispatcher | ULONGLONG | 8 | +64 | +64 | ユーザーコールバックディスパッチャのアドレス。 |
| PsLoadedModuleList | ULONGLONG | 8 | +72 | +72 | 読み込み済みモジュールリストのアドレス。 |
| PsActiveProcessHead | ULONGLONG | 8 | +80 | +80 | アクティブプロセスリストの先頭アドレス。 |
| PspCidTable | ULONGLONG | 8 | +88 | +88 | クライアントID(PID/TID)テーブルのアドレス。 |
| ExpSystemResourcesList | ULONGLONG | 8 | +96 | +96 | システムリソースリストのアドレス。 |
| ExpPagedPoolDescriptor | ULONGLONG | 8 | +104 | +104 | ページプール記述子のアドレス。 |
| ExpNumberOfPagedPools | ULONGLONG | 8 | +112 | +112 | ページプールの数を保持する変数のアドレス。 |
| KeTimeIncrement | ULONGLONG | 8 | +120 | +120 | タイマ刻み(時間増分)を保持する変数のアドレス。 |
| KeBugCheckCallbackListHead | ULONGLONG | 8 | +128 | +128 | バグチェックコールバックリストの先頭アドレス。 |
| KiBugcheckData | ULONGLONG | 8 | +136 | +136 | バグチェックデータ配列のアドレス。 |
| IopErrorLogListHead | ULONGLONG | 8 | +144 | +144 | I/Oエラーログリストの先頭アドレス。 |
| ObpRootDirectoryObject | ULONGLONG | 8 | +152 | +152 | オブジェクトマネージャのルートディレクトリのアドレス。 |
| ObpTypeObjectType | ULONGLONG | 8 | +160 | +160 | 型オブジェクトのタイプを示すアドレス。 |
| MmSystemCacheStart | ULONGLONG | 8 | +168 | +168 | システムキャッシュの開始アドレス。 |
| MmSystemCacheEnd | ULONGLONG | 8 | +176 | +176 | システムキャッシュの終了アドレス。 |
| MmSystemCacheWs | ULONGLONG | 8 | +184 | +184 | システムキャッシュのワーキングセット情報のアドレス。 |
| MmPfnDatabase | ULONGLONG | 8 | +192 | +192 | ページフレーム番号(PFN)データベースのアドレス。 |
| MmSystemPtesStart | ULONGLONG | 8 | +200 | +200 | システムPTE領域の開始アドレス。 |
| MmSystemPtesEnd | ULONGLONG | 8 | +208 | +208 | システムPTE領域の終了アドレス。 |
| MmSubsectionBase | ULONGLONG | 8 | +216 | +216 | サブセクションの基底アドレス。 |
| MmNumberOfPagingFiles | ULONGLONG | 8 | +224 | +224 | ページングファイル数を保持する変数のアドレス。 |
| MmLowestPhysicalPage | ULONGLONG | 8 | +232 | +232 | 最小物理ページ番号を保持する変数のアドレス。 |
| MmHighestPhysicalPage | ULONGLONG | 8 | +240 | +240 | 最大物理ページ番号を保持する変数のアドレス。 |
| MmNumberOfPhysicalPages | ULONGLONG | 8 | +248 | +248 | 物理ページ総数を保持する変数のアドレス。 |
| MmMaximumNonPagedPoolInBytes | ULONGLONG | 8 | +256 | +256 | 非ページプールの最大バイト数を保持する変数のアドレス。 |
| MmNonPagedSystemStart | ULONGLONG | 8 | +264 | +264 | 非ページシステム領域の開始アドレス。 |
| MmNonPagedPoolStart | ULONGLONG | 8 | +272 | +272 | 非ページプールの開始アドレス。 |
| MmNonPagedPoolEnd | ULONGLONG | 8 | +280 | +280 | 非ページプールの終了アドレス。 |
| MmPagedPoolStart | ULONGLONG | 8 | +288 | +288 | ページプールの開始アドレス。 |
| MmPagedPoolEnd | ULONGLONG | 8 | +296 | +296 | ページプールの終了アドレス。 |
| MmPagedPoolInformation | ULONGLONG | 8 | +304 | +304 | ページプール情報のアドレス。 |
| MmPageSize | ULONGLONG | 8 | +312 | +312 | メモリページのサイズ(バイト)。 |
| MmSizeOfPagedPoolInBytes | ULONGLONG | 8 | +320 | +320 | ページプールのサイズ(バイト)を保持する変数のアドレス。 |
| MmTotalCommitLimit | ULONGLONG | 8 | +328 | +328 | コミット上限を保持する変数のアドレス。 |
| MmTotalCommittedPages | ULONGLONG | 8 | +336 | +336 | コミット済みページ数を保持する変数のアドレス。 |
| MmSharedCommit | ULONGLONG | 8 | +344 | +344 | 共有コミット量を保持する変数のアドレス。 |
| MmDriverCommit | ULONGLONG | 8 | +352 | +352 | ドライバのコミット量を保持する変数のアドレス。 |
| MmProcessCommit | ULONGLONG | 8 | +360 | +360 | プロセスのコミット量を保持する変数のアドレス。 |
| MmPagedPoolCommit | ULONGLONG | 8 | +368 | +368 | ページプールのコミット量を保持する変数のアドレス。 |
| MmExtendedCommit | ULONGLONG | 8 | +376 | +376 | 拡張コミット量を保持する変数のアドレス。 |
| MmZeroedPageListHead | ULONGLONG | 8 | +384 | +384 | ゼロ化済みページリストの先頭アドレス。 |
| MmFreePageListHead | ULONGLONG | 8 | +392 | +392 | 空きページリストの先頭アドレス。 |
| MmStandbyPageListHead | ULONGLONG | 8 | +400 | +400 | スタンバイページリストの先頭アドレス。 |
| MmModifiedPageListHead | ULONGLONG | 8 | +408 | +408 | 変更済みページリストの先頭アドレス。 |
| MmModifiedNoWritePageListHead | ULONGLONG | 8 | +416 | +416 | 書き戻し不要の変更済みページリストの先頭アドレス。 |
| MmAvailablePages | ULONGLONG | 8 | +424 | +424 | 利用可能ページ数を保持する変数のアドレス。 |
| MmResidentAvailablePages | ULONGLONG | 8 | +432 | +432 | 常駐可能ページ数を保持する変数のアドレス。 |
| PoolTrackTable | ULONGLONG | 8 | +440 | +440 | プール追跡テーブルのアドレス。 |
| NonPagedPoolDescriptor | ULONGLONG | 8 | +448 | +448 | 非ページプール記述子のアドレス。 |
| MmHighestUserAddress | ULONGLONG | 8 | +456 | +456 | ユーザー空間の最高アドレスを保持する変数のアドレス。 |
| MmSystemRangeStart | ULONGLONG | 8 | +464 | +464 | システム空間の開始アドレスを保持する変数のアドレス。 |
| MmUserProbeAddress | ULONGLONG | 8 | +472 | +472 | ユーザーポインタ検証上限アドレスを保持する変数のアドレス。 |
| KdPrintCircularBuffer | ULONGLONG | 8 | +480 | +480 | デバッグ出力用循環バッファの開始アドレス。 |
| KdPrintCircularBufferEnd | ULONGLONG | 8 | +488 | +488 | デバッグ出力用循環バッファの終了アドレス。 |
| KdPrintWritePointer | ULONGLONG | 8 | +496 | +496 | 循環バッファの書き込み位置を保持するアドレス。 |
| KdPrintRolloverCount | ULONGLONG | 8 | +504 | +504 | 循環バッファのロールオーバー回数を保持するアドレス。 |
| MmLoadedUserImageList | ULONGLONG | 8 | +512 | +512 | 読み込み済みユーザーイメージリストのアドレス。 |
| NtBuildLab | ULONGLONG | 8 | +520 | +520 | OSビルドラボ文字列のアドレス。 |
| KiNormalSystemCall | ULONGLONG | 8 | +528 | +528 | 通常システムコールエントリのアドレス。 |
| KiProcessorBlock | ULONGLONG | 8 | +536 | +536 | プロセッサ制御ブロック配列のアドレス。 |
| MmUnloadedDrivers | ULONGLONG | 8 | +544 | +544 | アンロード済みドライバ情報のアドレス。 |
| MmLastUnloadedDriver | ULONGLONG | 8 | +552 | +552 | 最後にアンロードされたドライバのインデックスのアドレス。 |
| MmTriageActionTaken | ULONGLONG | 8 | +560 | +560 | トリアージ処理状態を保持する変数のアドレス。 |
| MmSpecialPoolTag | ULONGLONG | 8 | +568 | +568 | 特殊プールタグを保持する変数のアドレス。 |
| KernelVerifier | ULONGLONG | 8 | +576 | +576 | カーネルベリファイアフラグのアドレス。 |
| MmVerifierData | ULONGLONG | 8 | +584 | +584 | ベリファイアデータのアドレス。 |
| MmAllocatedNonPagedPool | ULONGLONG | 8 | +592 | +592 | 割り当て済み非ページプール量のアドレス。 |
| MmPeakCommitment | ULONGLONG | 8 | +600 | +600 | コミットのピーク量を保持する変数のアドレス。 |
| MmTotalCommitLimitMaximum | ULONGLONG | 8 | +608 | +608 | コミット上限の最大値を保持する変数のアドレス。 |
| CmNtCSDVersion | ULONGLONG | 8 | +616 | +616 | サービスパック(CSD)バージョンのアドレス。 |
| MmPhysicalMemoryBlock | ULONGLONG | 8 | +624 | +624 | 物理メモリブロック記述子のアドレス。 |
| MmSessionBase | ULONGLONG | 8 | +632 | +632 | セッション空間の基底アドレス。 |
| MmSessionSize | ULONGLONG | 8 | +640 | +640 | セッション空間のサイズを保持する変数のアドレス。 |
| MmSystemParentTablePage | ULONGLONG | 8 | +648 | +648 | システム親ページテーブルページのアドレス。 |
| MmVirtualTranslationBase | ULONGLONG | 8 | +656 | +656 | 仮想アドレス変換の基底情報のアドレス。 |
| OffsetKThreadNextProcessor | WORD | 2 | +664 | +664 | KTHREAD内のNextProcessorフィールドのオフセット。 |
| OffsetKThreadTeb | WORD | 2 | +666 | +666 | KTHREAD内のTEBポインタのオフセット。 |
| OffsetKThreadKernelStack | WORD | 2 | +668 | +668 | KTHREAD内のカーネルスタックのオフセット。 |
| OffsetKThreadInitialStack | WORD | 2 | +670 | +670 | KTHREAD内の初期スタックのオフセット。 |
| OffsetKThreadApcProcess | WORD | 2 | +672 | +672 | KTHREAD内のAPCプロセスのオフセット。 |
| OffsetKThreadState | WORD | 2 | +674 | +674 | KTHREAD内のスレッド状態のオフセット。 |
| OffsetKThreadBStore | WORD | 2 | +676 | +676 | KTHREAD内のバッキングストアのオフセット(IA64)。 |
| OffsetKThreadBStoreLimit | WORD | 2 | +678 | +678 | KTHREAD内のバッキングストア上限のオフセット(IA64)。 |
| SizeEProcess | WORD | 2 | +680 | +680 | EPROCESS構造体のサイズ。 |
| OffsetEprocessPeb | WORD | 2 | +682 | +682 | EPROCESS内のPEBポインタのオフセット。 |
| OffsetEprocessParentCID | WORD | 2 | +684 | +684 | EPROCESS内の親プロセスIDのオフセット。 |
| OffsetEprocessDirectoryTableBase | WORD | 2 | +686 | +686 | EPROCESS内のディレクトリテーブル基底のオフセット。 |
| SizePrcb | WORD | 2 | +688 | +688 | PRCB(プロセッサ制御ブロック)のサイズ。 |
| OffsetPrcbDpcRoutine | WORD | 2 | +690 | +690 | PRCB内のDPCルーチンのオフセット。 |
| OffsetPrcbCurrentThread | WORD | 2 | +692 | +692 | PRCB内の現在スレッドのオフセット。 |
| OffsetPrcbMhz | WORD | 2 | +694 | +694 | PRCB内のプロセッサ周波数(MHz)のオフセット。 |
| OffsetPrcbCpuType | WORD | 2 | +696 | +696 | PRCB内のCPU種別のオフセット。 |
| OffsetPrcbVendorString | WORD | 2 | +698 | +698 | PRCB内のベンダー文字列のオフセット。 |
| OffsetPrcbProcStateContext | WORD | 2 | +700 | +700 | PRCB内のプロセッサ状態コンテキストのオフセット。 |
| OffsetPrcbNumber | WORD | 2 | +702 | +702 | PRCB内のプロセッサ番号のオフセット。 |
| SizeEThread | WORD | 2 | +704 | +704 | ETHREAD構造体のサイズ。 |
| L1tfHighPhysicalBitIndex | BYTE | 1 | +706 | +706 | L1TF緩和用の上位物理アドレスビット位置。 |
| L1tfSwizzleBitIndex | BYTE | 1 | +707 | +707 | L1TF緩和用のスウィズルビット位置。 |
| Padding0 | DWORD | 4 | +708 | +708 | アラインメント用のパディング。 |
| KdPrintCircularBufferPtr | ULONGLONG | 8 | +712 | +712 | 循環バッファポインタを保持する変数のアドレス。 |
| KdPrintBufferSize | ULONGLONG | 8 | +720 | +720 | 循環バッファのサイズを保持する変数のアドレス。 |
| KeLoaderBlock | ULONGLONG | 8 | +728 | +728 | ローダパラメータブロックのアドレス。 |
| SizePcr | WORD | 2 | +736 | +736 | PCR(プロセッサ制御領域)のサイズ。 |
| OffsetPcrSelfPcr | WORD | 2 | +738 | +738 | PCR内の自己参照ポインタのオフセット。 |
| OffsetPcrCurrentPrcb | WORD | 2 | +740 | +740 | PCR内の現在PRCBポインタのオフセット。 |
| OffsetPcrContainedPrcb | WORD | 2 | +742 | +742 | PCR内に含まれるPRCBのオフセット。 |
| OffsetPcrInitialBStore | WORD | 2 | +744 | +744 | PCR内の初期バッキングストアのオフセット(IA64)。 |
| OffsetPcrBStoreLimit | WORD | 2 | +746 | +746 | PCR内のバッキングストア上限のオフセット(IA64)。 |
| OffsetPcrInitialStack | WORD | 2 | +748 | +748 | PCR内の初期スタックのオフセット。 |
| OffsetPcrStackLimit | WORD | 2 | +750 | +750 | PCR内のスタック上限のオフセット。 |
| OffsetPrcbPcrPage | WORD | 2 | +752 | +752 | PRCB内のPCRページのオフセット。 |
| OffsetPrcbProcStateSpecialReg | WORD | 2 | +754 | +754 | PRCB内のプロセッサ状態特殊レジスタのオフセット。 |
| GdtR0Code | WORD | 2 | +756 | +756 | GDT内のリング0コードセグメントセレクタ。 |
| GdtR0Data | WORD | 2 | +758 | +758 | GDT内のリング0データセグメントセレクタ。 |
| GdtR0Pcr | WORD | 2 | +760 | +760 | GDT内のリング0 PCRセグメントセレクタ。 |
| GdtR3Code | WORD | 2 | +762 | +762 | GDT内のリング3コードセグメントセレクタ。 |
| GdtR3Data | WORD | 2 | +764 | +764 | GDT内のリング3データセグメントセレクタ。 |
| GdtR3Teb | WORD | 2 | +766 | +766 | GDT内のリング3 TEBセグメントセレクタ。 |
| GdtLdt | WORD | 2 | +768 | +768 | GDT内のLDTセレクタ。 |
| GdtTss | WORD | 2 | +770 | +770 | GDT内のTSSセレクタ。 |
| Gdt64R3CmCode | WORD | 2 | +772 | +772 | GDT内の64ビット互換モードリング3コードセレクタ。 |
| Gdt64R3CmTeb | WORD | 2 | +774 | +774 | GDT内の64ビット互換モードリング3 TEBセレクタ。 |
| IopNumTriageDumpDataBlocks | ULONGLONG | 8 | +776 | +776 | トリアージダンプデータブロック数のアドレス。 |
| IopTriageDumpDataBlocks | ULONGLONG | 8 | +784 | +784 | トリアージダンプデータブロック配列のアドレス。 |
| VfCrashDataBlock | ULONGLONG | 8 | +792 | +792 | ベリファイアのクラッシュデータブロックのアドレス。 |
| MmBadPagesDetected | ULONGLONG | 8 | +800 | +800 | 検出された不良ページ数を保持する変数のアドレス。 |
| MmZeroedPageSingleBitErrorsDetected | ULONGLONG | 8 | +808 | +808 | ゼロ化ページの単一ビット誤り検出数のアドレス。 |
| EtwpDebuggerData | ULONGLONG | 8 | +816 | +816 | ETWデバッガデータのアドレス。 |
| OffsetPrcbContext | WORD | 2 | +824 | +824 | PRCB内のコンテキストポインタのオフセット。 |
| OffsetPrcbMaxBreakpoints | WORD | 2 | +826 | +826 | PRCB内の最大ブレークポイント数のオフセット。 |
| OffsetPrcbMaxWatchpoints | WORD | 2 | +828 | +828 | PRCB内の最大ウォッチポイント数のオフセット。 |
| OffsetKThreadStackLimit | DWORD | 4 | +832 | +832 | KTHREAD内のスタック上限のオフセット。 |
| OffsetKThreadStackBase | DWORD | 4 | +836 | +836 | KTHREAD内のスタック基底のオフセット。 |
| OffsetKThreadQueueListEntry | DWORD | 4 | +840 | +840 | KTHREAD内のキューリストエントリのオフセット。 |
| OffsetEThreadIrpList | DWORD | 4 | +844 | +844 | ETHREAD内のIRPリストのオフセット。 |
| OffsetPrcbIdleThread | WORD | 2 | +848 | +848 | PRCB内のアイドルスレッドのオフセット。 |
| OffsetPrcbNormalDpcState | WORD | 2 | +850 | +850 | PRCB内の通常DPC状態のオフセット。 |
| OffsetPrcbDpcStack | WORD | 2 | +852 | +852 | PRCB内のDPCスタックのオフセット。 |
| OffsetPrcbIsrStack | WORD | 2 | +854 | +854 | PRCB内のISRスタックのオフセット。 |
| SizeKDPC_STACK_FRAME | WORD | 2 | +856 | +856 | KDPC_STACK_FRAME構造体のサイズ。 |
| OffsetKPriQueueThreadListHead | WORD | 2 | +858 | +858 | 優先度キューのスレッドリスト先頭のオフセット。 |
| OffsetKThreadWaitReason | WORD | 2 | +860 | +860 | KTHREAD内の待機理由のオフセット。 |
| Padding1 | WORD | 2 | +862 | +862 | アラインメント用のパディング。 |
| PteBase | ULONGLONG | 8 | +864 | +864 | ページテーブルエントリ(PTE)の基底アドレス。 |
| RetpolineStubFunctionTable | ULONGLONG | 8 | +872 | +872 | Retpolineスタブ関数テーブルのアドレス。 |
| RetpolineStubFunctionTableSize | DWORD | 4 | +880 | +880 | Retpolineスタブ関数テーブルのサイズ。 |
| RetpolineStubOffset | DWORD | 4 | +884 | +884 | Retpolineスタブのオフセット。 |
| RetpolineStubSize | DWORD | 4 | +888 | +888 | Retpolineスタブのサイズ。 |
| OffsetEProcessMmHotPatchContext | WORD | 2 | +892 | +892 | EPROCESS内のホットパッチコンテキストのオフセット。 |
| OffsetKThreadShadowStackLimit | DWORD | 4 | +896 | +896 | KTHREAD内のシャドウスタック上限のオフセット。 |
| OffsetKThreadShadowStackBase | DWORD | 4 | +900 | +900 | KTHREAD内のシャドウスタック基底のオフセット。 |
| ShadowStackEnabled | ULONGLONG | 8 | +904 | +904 | シャドウスタック有効フラグを保持する変数のアドレス。 |
| PointerAuthMask | ULONGLONG | 8 | +912 | +912 | ポインタ認証マスクを保持する変数のアドレス(ARM64)。 |
| OffsetPrcbExceptionStack | WORD | 2 | +920 | +920 | PRCB内の例外スタックのオフセット。 |
各言語での定義
#include <windows.h>
// LIST_ENTRY64 (x64 16 / x86 16 バイト)
typedef struct LIST_ENTRY64 {
ULONGLONG Flink;
ULONGLONG Blink;
} LIST_ENTRY64;
// DBGKD_DEBUG_DATA_HEADER64 (x64 24 / x86 24 バイト)
typedef struct DBGKD_DEBUG_DATA_HEADER64 {
LIST_ENTRY64 List;
DWORD OwnerTag;
DWORD Size;
} DBGKD_DEBUG_DATA_HEADER64;
// KDDEBUGGER_DATA64 (x64 928 / x86 928 バイト)
typedef struct KDDEBUGGER_DATA64 {
DBGKD_DEBUG_DATA_HEADER64 Header;
ULONGLONG KernBase;
ULONGLONG BreakpointWithStatus;
ULONGLONG SavedContext;
WORD ThCallbackStack;
WORD NextCallback;
WORD FramePointer;
WORD _bitfield;
ULONGLONG KiCallUserMode;
ULONGLONG KeUserCallbackDispatcher;
ULONGLONG PsLoadedModuleList;
ULONGLONG PsActiveProcessHead;
ULONGLONG PspCidTable;
ULONGLONG ExpSystemResourcesList;
ULONGLONG ExpPagedPoolDescriptor;
ULONGLONG ExpNumberOfPagedPools;
ULONGLONG KeTimeIncrement;
ULONGLONG KeBugCheckCallbackListHead;
ULONGLONG KiBugcheckData;
ULONGLONG IopErrorLogListHead;
ULONGLONG ObpRootDirectoryObject;
ULONGLONG ObpTypeObjectType;
ULONGLONG MmSystemCacheStart;
ULONGLONG MmSystemCacheEnd;
ULONGLONG MmSystemCacheWs;
ULONGLONG MmPfnDatabase;
ULONGLONG MmSystemPtesStart;
ULONGLONG MmSystemPtesEnd;
ULONGLONG MmSubsectionBase;
ULONGLONG MmNumberOfPagingFiles;
ULONGLONG MmLowestPhysicalPage;
ULONGLONG MmHighestPhysicalPage;
ULONGLONG MmNumberOfPhysicalPages;
ULONGLONG MmMaximumNonPagedPoolInBytes;
ULONGLONG MmNonPagedSystemStart;
ULONGLONG MmNonPagedPoolStart;
ULONGLONG MmNonPagedPoolEnd;
ULONGLONG MmPagedPoolStart;
ULONGLONG MmPagedPoolEnd;
ULONGLONG MmPagedPoolInformation;
ULONGLONG MmPageSize;
ULONGLONG MmSizeOfPagedPoolInBytes;
ULONGLONG MmTotalCommitLimit;
ULONGLONG MmTotalCommittedPages;
ULONGLONG MmSharedCommit;
ULONGLONG MmDriverCommit;
ULONGLONG MmProcessCommit;
ULONGLONG MmPagedPoolCommit;
ULONGLONG MmExtendedCommit;
ULONGLONG MmZeroedPageListHead;
ULONGLONG MmFreePageListHead;
ULONGLONG MmStandbyPageListHead;
ULONGLONG MmModifiedPageListHead;
ULONGLONG MmModifiedNoWritePageListHead;
ULONGLONG MmAvailablePages;
ULONGLONG MmResidentAvailablePages;
ULONGLONG PoolTrackTable;
ULONGLONG NonPagedPoolDescriptor;
ULONGLONG MmHighestUserAddress;
ULONGLONG MmSystemRangeStart;
ULONGLONG MmUserProbeAddress;
ULONGLONG KdPrintCircularBuffer;
ULONGLONG KdPrintCircularBufferEnd;
ULONGLONG KdPrintWritePointer;
ULONGLONG KdPrintRolloverCount;
ULONGLONG MmLoadedUserImageList;
ULONGLONG NtBuildLab;
ULONGLONG KiNormalSystemCall;
ULONGLONG KiProcessorBlock;
ULONGLONG MmUnloadedDrivers;
ULONGLONG MmLastUnloadedDriver;
ULONGLONG MmTriageActionTaken;
ULONGLONG MmSpecialPoolTag;
ULONGLONG KernelVerifier;
ULONGLONG MmVerifierData;
ULONGLONG MmAllocatedNonPagedPool;
ULONGLONG MmPeakCommitment;
ULONGLONG MmTotalCommitLimitMaximum;
ULONGLONG CmNtCSDVersion;
ULONGLONG MmPhysicalMemoryBlock;
ULONGLONG MmSessionBase;
ULONGLONG MmSessionSize;
ULONGLONG MmSystemParentTablePage;
ULONGLONG MmVirtualTranslationBase;
WORD OffsetKThreadNextProcessor;
WORD OffsetKThreadTeb;
WORD OffsetKThreadKernelStack;
WORD OffsetKThreadInitialStack;
WORD OffsetKThreadApcProcess;
WORD OffsetKThreadState;
WORD OffsetKThreadBStore;
WORD OffsetKThreadBStoreLimit;
WORD SizeEProcess;
WORD OffsetEprocessPeb;
WORD OffsetEprocessParentCID;
WORD OffsetEprocessDirectoryTableBase;
WORD SizePrcb;
WORD OffsetPrcbDpcRoutine;
WORD OffsetPrcbCurrentThread;
WORD OffsetPrcbMhz;
WORD OffsetPrcbCpuType;
WORD OffsetPrcbVendorString;
WORD OffsetPrcbProcStateContext;
WORD OffsetPrcbNumber;
WORD SizeEThread;
BYTE L1tfHighPhysicalBitIndex;
BYTE L1tfSwizzleBitIndex;
DWORD Padding0;
ULONGLONG KdPrintCircularBufferPtr;
ULONGLONG KdPrintBufferSize;
ULONGLONG KeLoaderBlock;
WORD SizePcr;
WORD OffsetPcrSelfPcr;
WORD OffsetPcrCurrentPrcb;
WORD OffsetPcrContainedPrcb;
WORD OffsetPcrInitialBStore;
WORD OffsetPcrBStoreLimit;
WORD OffsetPcrInitialStack;
WORD OffsetPcrStackLimit;
WORD OffsetPrcbPcrPage;
WORD OffsetPrcbProcStateSpecialReg;
WORD GdtR0Code;
WORD GdtR0Data;
WORD GdtR0Pcr;
WORD GdtR3Code;
WORD GdtR3Data;
WORD GdtR3Teb;
WORD GdtLdt;
WORD GdtTss;
WORD Gdt64R3CmCode;
WORD Gdt64R3CmTeb;
ULONGLONG IopNumTriageDumpDataBlocks;
ULONGLONG IopTriageDumpDataBlocks;
ULONGLONG VfCrashDataBlock;
ULONGLONG MmBadPagesDetected;
ULONGLONG MmZeroedPageSingleBitErrorsDetected;
ULONGLONG EtwpDebuggerData;
WORD OffsetPrcbContext;
WORD OffsetPrcbMaxBreakpoints;
WORD OffsetPrcbMaxWatchpoints;
DWORD OffsetKThreadStackLimit;
DWORD OffsetKThreadStackBase;
DWORD OffsetKThreadQueueListEntry;
DWORD OffsetEThreadIrpList;
WORD OffsetPrcbIdleThread;
WORD OffsetPrcbNormalDpcState;
WORD OffsetPrcbDpcStack;
WORD OffsetPrcbIsrStack;
WORD SizeKDPC_STACK_FRAME;
WORD OffsetKPriQueueThreadListHead;
WORD OffsetKThreadWaitReason;
WORD Padding1;
ULONGLONG PteBase;
ULONGLONG RetpolineStubFunctionTable;
DWORD RetpolineStubFunctionTableSize;
DWORD RetpolineStubOffset;
DWORD RetpolineStubSize;
WORD OffsetEProcessMmHotPatchContext;
DWORD OffsetKThreadShadowStackLimit;
DWORD OffsetKThreadShadowStackBase;
ULONGLONG ShadowStackEnabled;
ULONGLONG PointerAuthMask;
WORD OffsetPrcbExceptionStack;
} KDDEBUGGER_DATA64;using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct LIST_ENTRY64
{
public ulong Flink;
public ulong Blink;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct DBGKD_DEBUG_DATA_HEADER64
{
public LIST_ENTRY64 List;
public uint OwnerTag;
public uint Size;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct KDDEBUGGER_DATA64
{
public DBGKD_DEBUG_DATA_HEADER64 Header;
public ulong KernBase;
public ulong BreakpointWithStatus;
public ulong SavedContext;
public ushort ThCallbackStack;
public ushort NextCallback;
public ushort FramePointer;
public ushort _bitfield;
public ulong KiCallUserMode;
public ulong KeUserCallbackDispatcher;
public ulong PsLoadedModuleList;
public ulong PsActiveProcessHead;
public ulong PspCidTable;
public ulong ExpSystemResourcesList;
public ulong ExpPagedPoolDescriptor;
public ulong ExpNumberOfPagedPools;
public ulong KeTimeIncrement;
public ulong KeBugCheckCallbackListHead;
public ulong KiBugcheckData;
public ulong IopErrorLogListHead;
public ulong ObpRootDirectoryObject;
public ulong ObpTypeObjectType;
public ulong MmSystemCacheStart;
public ulong MmSystemCacheEnd;
public ulong MmSystemCacheWs;
public ulong MmPfnDatabase;
public ulong MmSystemPtesStart;
public ulong MmSystemPtesEnd;
public ulong MmSubsectionBase;
public ulong MmNumberOfPagingFiles;
public ulong MmLowestPhysicalPage;
public ulong MmHighestPhysicalPage;
public ulong MmNumberOfPhysicalPages;
public ulong MmMaximumNonPagedPoolInBytes;
public ulong MmNonPagedSystemStart;
public ulong MmNonPagedPoolStart;
public ulong MmNonPagedPoolEnd;
public ulong MmPagedPoolStart;
public ulong MmPagedPoolEnd;
public ulong MmPagedPoolInformation;
public ulong MmPageSize;
public ulong MmSizeOfPagedPoolInBytes;
public ulong MmTotalCommitLimit;
public ulong MmTotalCommittedPages;
public ulong MmSharedCommit;
public ulong MmDriverCommit;
public ulong MmProcessCommit;
public ulong MmPagedPoolCommit;
public ulong MmExtendedCommit;
public ulong MmZeroedPageListHead;
public ulong MmFreePageListHead;
public ulong MmStandbyPageListHead;
public ulong MmModifiedPageListHead;
public ulong MmModifiedNoWritePageListHead;
public ulong MmAvailablePages;
public ulong MmResidentAvailablePages;
public ulong PoolTrackTable;
public ulong NonPagedPoolDescriptor;
public ulong MmHighestUserAddress;
public ulong MmSystemRangeStart;
public ulong MmUserProbeAddress;
public ulong KdPrintCircularBuffer;
public ulong KdPrintCircularBufferEnd;
public ulong KdPrintWritePointer;
public ulong KdPrintRolloverCount;
public ulong MmLoadedUserImageList;
public ulong NtBuildLab;
public ulong KiNormalSystemCall;
public ulong KiProcessorBlock;
public ulong MmUnloadedDrivers;
public ulong MmLastUnloadedDriver;
public ulong MmTriageActionTaken;
public ulong MmSpecialPoolTag;
public ulong KernelVerifier;
public ulong MmVerifierData;
public ulong MmAllocatedNonPagedPool;
public ulong MmPeakCommitment;
public ulong MmTotalCommitLimitMaximum;
public ulong CmNtCSDVersion;
public ulong MmPhysicalMemoryBlock;
public ulong MmSessionBase;
public ulong MmSessionSize;
public ulong MmSystemParentTablePage;
public ulong MmVirtualTranslationBase;
public ushort OffsetKThreadNextProcessor;
public ushort OffsetKThreadTeb;
public ushort OffsetKThreadKernelStack;
public ushort OffsetKThreadInitialStack;
public ushort OffsetKThreadApcProcess;
public ushort OffsetKThreadState;
public ushort OffsetKThreadBStore;
public ushort OffsetKThreadBStoreLimit;
public ushort SizeEProcess;
public ushort OffsetEprocessPeb;
public ushort OffsetEprocessParentCID;
public ushort OffsetEprocessDirectoryTableBase;
public ushort SizePrcb;
public ushort OffsetPrcbDpcRoutine;
public ushort OffsetPrcbCurrentThread;
public ushort OffsetPrcbMhz;
public ushort OffsetPrcbCpuType;
public ushort OffsetPrcbVendorString;
public ushort OffsetPrcbProcStateContext;
public ushort OffsetPrcbNumber;
public ushort SizeEThread;
public byte L1tfHighPhysicalBitIndex;
public byte L1tfSwizzleBitIndex;
public uint Padding0;
public ulong KdPrintCircularBufferPtr;
public ulong KdPrintBufferSize;
public ulong KeLoaderBlock;
public ushort SizePcr;
public ushort OffsetPcrSelfPcr;
public ushort OffsetPcrCurrentPrcb;
public ushort OffsetPcrContainedPrcb;
public ushort OffsetPcrInitialBStore;
public ushort OffsetPcrBStoreLimit;
public ushort OffsetPcrInitialStack;
public ushort OffsetPcrStackLimit;
public ushort OffsetPrcbPcrPage;
public ushort OffsetPrcbProcStateSpecialReg;
public ushort GdtR0Code;
public ushort GdtR0Data;
public ushort GdtR0Pcr;
public ushort GdtR3Code;
public ushort GdtR3Data;
public ushort GdtR3Teb;
public ushort GdtLdt;
public ushort GdtTss;
public ushort Gdt64R3CmCode;
public ushort Gdt64R3CmTeb;
public ulong IopNumTriageDumpDataBlocks;
public ulong IopTriageDumpDataBlocks;
public ulong VfCrashDataBlock;
public ulong MmBadPagesDetected;
public ulong MmZeroedPageSingleBitErrorsDetected;
public ulong EtwpDebuggerData;
public ushort OffsetPrcbContext;
public ushort OffsetPrcbMaxBreakpoints;
public ushort OffsetPrcbMaxWatchpoints;
public uint OffsetKThreadStackLimit;
public uint OffsetKThreadStackBase;
public uint OffsetKThreadQueueListEntry;
public uint OffsetEThreadIrpList;
public ushort OffsetPrcbIdleThread;
public ushort OffsetPrcbNormalDpcState;
public ushort OffsetPrcbDpcStack;
public ushort OffsetPrcbIsrStack;
public ushort SizeKDPC_STACK_FRAME;
public ushort OffsetKPriQueueThreadListHead;
public ushort OffsetKThreadWaitReason;
public ushort Padding1;
public ulong PteBase;
public ulong RetpolineStubFunctionTable;
public uint RetpolineStubFunctionTableSize;
public uint RetpolineStubOffset;
public uint RetpolineStubSize;
public ushort OffsetEProcessMmHotPatchContext;
public uint OffsetKThreadShadowStackLimit;
public uint OffsetKThreadShadowStackBase;
public ulong ShadowStackEnabled;
public ulong PointerAuthMask;
public ushort OffsetPrcbExceptionStack;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure LIST_ENTRY64
Public Flink As ULong
Public Blink As ULong
End Structure
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure DBGKD_DEBUG_DATA_HEADER64
Public List As LIST_ENTRY64
Public OwnerTag As UInteger
Public Size As UInteger
End Structure
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure KDDEBUGGER_DATA64
Public Header As DBGKD_DEBUG_DATA_HEADER64
Public KernBase As ULong
Public BreakpointWithStatus As ULong
Public SavedContext As ULong
Public ThCallbackStack As UShort
Public NextCallback As UShort
Public FramePointer As UShort
Public _bitfield As UShort
Public KiCallUserMode As ULong
Public KeUserCallbackDispatcher As ULong
Public PsLoadedModuleList As ULong
Public PsActiveProcessHead As ULong
Public PspCidTable As ULong
Public ExpSystemResourcesList As ULong
Public ExpPagedPoolDescriptor As ULong
Public ExpNumberOfPagedPools As ULong
Public KeTimeIncrement As ULong
Public KeBugCheckCallbackListHead As ULong
Public KiBugcheckData As ULong
Public IopErrorLogListHead As ULong
Public ObpRootDirectoryObject As ULong
Public ObpTypeObjectType As ULong
Public MmSystemCacheStart As ULong
Public MmSystemCacheEnd As ULong
Public MmSystemCacheWs As ULong
Public MmPfnDatabase As ULong
Public MmSystemPtesStart As ULong
Public MmSystemPtesEnd As ULong
Public MmSubsectionBase As ULong
Public MmNumberOfPagingFiles As ULong
Public MmLowestPhysicalPage As ULong
Public MmHighestPhysicalPage As ULong
Public MmNumberOfPhysicalPages As ULong
Public MmMaximumNonPagedPoolInBytes As ULong
Public MmNonPagedSystemStart As ULong
Public MmNonPagedPoolStart As ULong
Public MmNonPagedPoolEnd As ULong
Public MmPagedPoolStart As ULong
Public MmPagedPoolEnd As ULong
Public MmPagedPoolInformation As ULong
Public MmPageSize As ULong
Public MmSizeOfPagedPoolInBytes As ULong
Public MmTotalCommitLimit As ULong
Public MmTotalCommittedPages As ULong
Public MmSharedCommit As ULong
Public MmDriverCommit As ULong
Public MmProcessCommit As ULong
Public MmPagedPoolCommit As ULong
Public MmExtendedCommit As ULong
Public MmZeroedPageListHead As ULong
Public MmFreePageListHead As ULong
Public MmStandbyPageListHead As ULong
Public MmModifiedPageListHead As ULong
Public MmModifiedNoWritePageListHead As ULong
Public MmAvailablePages As ULong
Public MmResidentAvailablePages As ULong
Public PoolTrackTable As ULong
Public NonPagedPoolDescriptor As ULong
Public MmHighestUserAddress As ULong
Public MmSystemRangeStart As ULong
Public MmUserProbeAddress As ULong
Public KdPrintCircularBuffer As ULong
Public KdPrintCircularBufferEnd As ULong
Public KdPrintWritePointer As ULong
Public KdPrintRolloverCount As ULong
Public MmLoadedUserImageList As ULong
Public NtBuildLab As ULong
Public KiNormalSystemCall As ULong
Public KiProcessorBlock As ULong
Public MmUnloadedDrivers As ULong
Public MmLastUnloadedDriver As ULong
Public MmTriageActionTaken As ULong
Public MmSpecialPoolTag As ULong
Public KernelVerifier As ULong
Public MmVerifierData As ULong
Public MmAllocatedNonPagedPool As ULong
Public MmPeakCommitment As ULong
Public MmTotalCommitLimitMaximum As ULong
Public CmNtCSDVersion As ULong
Public MmPhysicalMemoryBlock As ULong
Public MmSessionBase As ULong
Public MmSessionSize As ULong
Public MmSystemParentTablePage As ULong
Public MmVirtualTranslationBase As ULong
Public OffsetKThreadNextProcessor As UShort
Public OffsetKThreadTeb As UShort
Public OffsetKThreadKernelStack As UShort
Public OffsetKThreadInitialStack As UShort
Public OffsetKThreadApcProcess As UShort
Public OffsetKThreadState As UShort
Public OffsetKThreadBStore As UShort
Public OffsetKThreadBStoreLimit As UShort
Public SizeEProcess As UShort
Public OffsetEprocessPeb As UShort
Public OffsetEprocessParentCID As UShort
Public OffsetEprocessDirectoryTableBase As UShort
Public SizePrcb As UShort
Public OffsetPrcbDpcRoutine As UShort
Public OffsetPrcbCurrentThread As UShort
Public OffsetPrcbMhz As UShort
Public OffsetPrcbCpuType As UShort
Public OffsetPrcbVendorString As UShort
Public OffsetPrcbProcStateContext As UShort
Public OffsetPrcbNumber As UShort
Public SizeEThread As UShort
Public L1tfHighPhysicalBitIndex As Byte
Public L1tfSwizzleBitIndex As Byte
Public Padding0 As UInteger
Public KdPrintCircularBufferPtr As ULong
Public KdPrintBufferSize As ULong
Public KeLoaderBlock As ULong
Public SizePcr As UShort
Public OffsetPcrSelfPcr As UShort
Public OffsetPcrCurrentPrcb As UShort
Public OffsetPcrContainedPrcb As UShort
Public OffsetPcrInitialBStore As UShort
Public OffsetPcrBStoreLimit As UShort
Public OffsetPcrInitialStack As UShort
Public OffsetPcrStackLimit As UShort
Public OffsetPrcbPcrPage As UShort
Public OffsetPrcbProcStateSpecialReg As UShort
Public GdtR0Code As UShort
Public GdtR0Data As UShort
Public GdtR0Pcr As UShort
Public GdtR3Code As UShort
Public GdtR3Data As UShort
Public GdtR3Teb As UShort
Public GdtLdt As UShort
Public GdtTss As UShort
Public Gdt64R3CmCode As UShort
Public Gdt64R3CmTeb As UShort
Public IopNumTriageDumpDataBlocks As ULong
Public IopTriageDumpDataBlocks As ULong
Public VfCrashDataBlock As ULong
Public MmBadPagesDetected As ULong
Public MmZeroedPageSingleBitErrorsDetected As ULong
Public EtwpDebuggerData As ULong
Public OffsetPrcbContext As UShort
Public OffsetPrcbMaxBreakpoints As UShort
Public OffsetPrcbMaxWatchpoints As UShort
Public OffsetKThreadStackLimit As UInteger
Public OffsetKThreadStackBase As UInteger
Public OffsetKThreadQueueListEntry As UInteger
Public OffsetEThreadIrpList As UInteger
Public OffsetPrcbIdleThread As UShort
Public OffsetPrcbNormalDpcState As UShort
Public OffsetPrcbDpcStack As UShort
Public OffsetPrcbIsrStack As UShort
Public SizeKDPC_STACK_FRAME As UShort
Public OffsetKPriQueueThreadListHead As UShort
Public OffsetKThreadWaitReason As UShort
Public Padding1 As UShort
Public PteBase As ULong
Public RetpolineStubFunctionTable As ULong
Public RetpolineStubFunctionTableSize As UInteger
Public RetpolineStubOffset As UInteger
Public RetpolineStubSize As UInteger
Public OffsetEProcessMmHotPatchContext As UShort
Public OffsetKThreadShadowStackLimit As UInteger
Public OffsetKThreadShadowStackBase As UInteger
Public ShadowStackEnabled As ULong
Public PointerAuthMask As ULong
Public OffsetPrcbExceptionStack As UShort
End Structureimport ctypes
from ctypes import wintypes
class LIST_ENTRY64(ctypes.Structure):
_fields_ = [
("Flink", ctypes.c_ulonglong),
("Blink", ctypes.c_ulonglong),
]
class DBGKD_DEBUG_DATA_HEADER64(ctypes.Structure):
_fields_ = [
("List", LIST_ENTRY64),
("OwnerTag", wintypes.DWORD),
("Size", wintypes.DWORD),
]
class KDDEBUGGER_DATA64(ctypes.Structure):
_fields_ = [
("Header", DBGKD_DEBUG_DATA_HEADER64),
("KernBase", ctypes.c_ulonglong),
("BreakpointWithStatus", ctypes.c_ulonglong),
("SavedContext", ctypes.c_ulonglong),
("ThCallbackStack", ctypes.c_ushort),
("NextCallback", ctypes.c_ushort),
("FramePointer", ctypes.c_ushort),
("_bitfield", ctypes.c_ushort),
("KiCallUserMode", ctypes.c_ulonglong),
("KeUserCallbackDispatcher", ctypes.c_ulonglong),
("PsLoadedModuleList", ctypes.c_ulonglong),
("PsActiveProcessHead", ctypes.c_ulonglong),
("PspCidTable", ctypes.c_ulonglong),
("ExpSystemResourcesList", ctypes.c_ulonglong),
("ExpPagedPoolDescriptor", ctypes.c_ulonglong),
("ExpNumberOfPagedPools", ctypes.c_ulonglong),
("KeTimeIncrement", ctypes.c_ulonglong),
("KeBugCheckCallbackListHead", ctypes.c_ulonglong),
("KiBugcheckData", ctypes.c_ulonglong),
("IopErrorLogListHead", ctypes.c_ulonglong),
("ObpRootDirectoryObject", ctypes.c_ulonglong),
("ObpTypeObjectType", ctypes.c_ulonglong),
("MmSystemCacheStart", ctypes.c_ulonglong),
("MmSystemCacheEnd", ctypes.c_ulonglong),
("MmSystemCacheWs", ctypes.c_ulonglong),
("MmPfnDatabase", ctypes.c_ulonglong),
("MmSystemPtesStart", ctypes.c_ulonglong),
("MmSystemPtesEnd", ctypes.c_ulonglong),
("MmSubsectionBase", ctypes.c_ulonglong),
("MmNumberOfPagingFiles", ctypes.c_ulonglong),
("MmLowestPhysicalPage", ctypes.c_ulonglong),
("MmHighestPhysicalPage", ctypes.c_ulonglong),
("MmNumberOfPhysicalPages", ctypes.c_ulonglong),
("MmMaximumNonPagedPoolInBytes", ctypes.c_ulonglong),
("MmNonPagedSystemStart", ctypes.c_ulonglong),
("MmNonPagedPoolStart", ctypes.c_ulonglong),
("MmNonPagedPoolEnd", ctypes.c_ulonglong),
("MmPagedPoolStart", ctypes.c_ulonglong),
("MmPagedPoolEnd", ctypes.c_ulonglong),
("MmPagedPoolInformation", ctypes.c_ulonglong),
("MmPageSize", ctypes.c_ulonglong),
("MmSizeOfPagedPoolInBytes", ctypes.c_ulonglong),
("MmTotalCommitLimit", ctypes.c_ulonglong),
("MmTotalCommittedPages", ctypes.c_ulonglong),
("MmSharedCommit", ctypes.c_ulonglong),
("MmDriverCommit", ctypes.c_ulonglong),
("MmProcessCommit", ctypes.c_ulonglong),
("MmPagedPoolCommit", ctypes.c_ulonglong),
("MmExtendedCommit", ctypes.c_ulonglong),
("MmZeroedPageListHead", ctypes.c_ulonglong),
("MmFreePageListHead", ctypes.c_ulonglong),
("MmStandbyPageListHead", ctypes.c_ulonglong),
("MmModifiedPageListHead", ctypes.c_ulonglong),
("MmModifiedNoWritePageListHead", ctypes.c_ulonglong),
("MmAvailablePages", ctypes.c_ulonglong),
("MmResidentAvailablePages", ctypes.c_ulonglong),
("PoolTrackTable", ctypes.c_ulonglong),
("NonPagedPoolDescriptor", ctypes.c_ulonglong),
("MmHighestUserAddress", ctypes.c_ulonglong),
("MmSystemRangeStart", ctypes.c_ulonglong),
("MmUserProbeAddress", ctypes.c_ulonglong),
("KdPrintCircularBuffer", ctypes.c_ulonglong),
("KdPrintCircularBufferEnd", ctypes.c_ulonglong),
("KdPrintWritePointer", ctypes.c_ulonglong),
("KdPrintRolloverCount", ctypes.c_ulonglong),
("MmLoadedUserImageList", ctypes.c_ulonglong),
("NtBuildLab", ctypes.c_ulonglong),
("KiNormalSystemCall", ctypes.c_ulonglong),
("KiProcessorBlock", ctypes.c_ulonglong),
("MmUnloadedDrivers", ctypes.c_ulonglong),
("MmLastUnloadedDriver", ctypes.c_ulonglong),
("MmTriageActionTaken", ctypes.c_ulonglong),
("MmSpecialPoolTag", ctypes.c_ulonglong),
("KernelVerifier", ctypes.c_ulonglong),
("MmVerifierData", ctypes.c_ulonglong),
("MmAllocatedNonPagedPool", ctypes.c_ulonglong),
("MmPeakCommitment", ctypes.c_ulonglong),
("MmTotalCommitLimitMaximum", ctypes.c_ulonglong),
("CmNtCSDVersion", ctypes.c_ulonglong),
("MmPhysicalMemoryBlock", ctypes.c_ulonglong),
("MmSessionBase", ctypes.c_ulonglong),
("MmSessionSize", ctypes.c_ulonglong),
("MmSystemParentTablePage", ctypes.c_ulonglong),
("MmVirtualTranslationBase", ctypes.c_ulonglong),
("OffsetKThreadNextProcessor", ctypes.c_ushort),
("OffsetKThreadTeb", ctypes.c_ushort),
("OffsetKThreadKernelStack", ctypes.c_ushort),
("OffsetKThreadInitialStack", ctypes.c_ushort),
("OffsetKThreadApcProcess", ctypes.c_ushort),
("OffsetKThreadState", ctypes.c_ushort),
("OffsetKThreadBStore", ctypes.c_ushort),
("OffsetKThreadBStoreLimit", ctypes.c_ushort),
("SizeEProcess", ctypes.c_ushort),
("OffsetEprocessPeb", ctypes.c_ushort),
("OffsetEprocessParentCID", ctypes.c_ushort),
("OffsetEprocessDirectoryTableBase", ctypes.c_ushort),
("SizePrcb", ctypes.c_ushort),
("OffsetPrcbDpcRoutine", ctypes.c_ushort),
("OffsetPrcbCurrentThread", ctypes.c_ushort),
("OffsetPrcbMhz", ctypes.c_ushort),
("OffsetPrcbCpuType", ctypes.c_ushort),
("OffsetPrcbVendorString", ctypes.c_ushort),
("OffsetPrcbProcStateContext", ctypes.c_ushort),
("OffsetPrcbNumber", ctypes.c_ushort),
("SizeEThread", ctypes.c_ushort),
("L1tfHighPhysicalBitIndex", ctypes.c_ubyte),
("L1tfSwizzleBitIndex", ctypes.c_ubyte),
("Padding0", wintypes.DWORD),
("KdPrintCircularBufferPtr", ctypes.c_ulonglong),
("KdPrintBufferSize", ctypes.c_ulonglong),
("KeLoaderBlock", ctypes.c_ulonglong),
("SizePcr", ctypes.c_ushort),
("OffsetPcrSelfPcr", ctypes.c_ushort),
("OffsetPcrCurrentPrcb", ctypes.c_ushort),
("OffsetPcrContainedPrcb", ctypes.c_ushort),
("OffsetPcrInitialBStore", ctypes.c_ushort),
("OffsetPcrBStoreLimit", ctypes.c_ushort),
("OffsetPcrInitialStack", ctypes.c_ushort),
("OffsetPcrStackLimit", ctypes.c_ushort),
("OffsetPrcbPcrPage", ctypes.c_ushort),
("OffsetPrcbProcStateSpecialReg", ctypes.c_ushort),
("GdtR0Code", ctypes.c_ushort),
("GdtR0Data", ctypes.c_ushort),
("GdtR0Pcr", ctypes.c_ushort),
("GdtR3Code", ctypes.c_ushort),
("GdtR3Data", ctypes.c_ushort),
("GdtR3Teb", ctypes.c_ushort),
("GdtLdt", ctypes.c_ushort),
("GdtTss", ctypes.c_ushort),
("Gdt64R3CmCode", ctypes.c_ushort),
("Gdt64R3CmTeb", ctypes.c_ushort),
("IopNumTriageDumpDataBlocks", ctypes.c_ulonglong),
("IopTriageDumpDataBlocks", ctypes.c_ulonglong),
("VfCrashDataBlock", ctypes.c_ulonglong),
("MmBadPagesDetected", ctypes.c_ulonglong),
("MmZeroedPageSingleBitErrorsDetected", ctypes.c_ulonglong),
("EtwpDebuggerData", ctypes.c_ulonglong),
("OffsetPrcbContext", ctypes.c_ushort),
("OffsetPrcbMaxBreakpoints", ctypes.c_ushort),
("OffsetPrcbMaxWatchpoints", ctypes.c_ushort),
("OffsetKThreadStackLimit", wintypes.DWORD),
("OffsetKThreadStackBase", wintypes.DWORD),
("OffsetKThreadQueueListEntry", wintypes.DWORD),
("OffsetEThreadIrpList", wintypes.DWORD),
("OffsetPrcbIdleThread", ctypes.c_ushort),
("OffsetPrcbNormalDpcState", ctypes.c_ushort),
("OffsetPrcbDpcStack", ctypes.c_ushort),
("OffsetPrcbIsrStack", ctypes.c_ushort),
("SizeKDPC_STACK_FRAME", ctypes.c_ushort),
("OffsetKPriQueueThreadListHead", ctypes.c_ushort),
("OffsetKThreadWaitReason", ctypes.c_ushort),
("Padding1", ctypes.c_ushort),
("PteBase", ctypes.c_ulonglong),
("RetpolineStubFunctionTable", ctypes.c_ulonglong),
("RetpolineStubFunctionTableSize", wintypes.DWORD),
("RetpolineStubOffset", wintypes.DWORD),
("RetpolineStubSize", wintypes.DWORD),
("OffsetEProcessMmHotPatchContext", ctypes.c_ushort),
("OffsetKThreadShadowStackLimit", wintypes.DWORD),
("OffsetKThreadShadowStackBase", wintypes.DWORD),
("ShadowStackEnabled", ctypes.c_ulonglong),
("PointerAuthMask", ctypes.c_ulonglong),
("OffsetPrcbExceptionStack", ctypes.c_ushort),
]#[repr(C)]
pub struct LIST_ENTRY64 {
pub Flink: u64,
pub Blink: u64,
}
#[repr(C)]
pub struct DBGKD_DEBUG_DATA_HEADER64 {
pub List: LIST_ENTRY64,
pub OwnerTag: u32,
pub Size: u32,
}
#[repr(C)]
pub struct KDDEBUGGER_DATA64 {
pub Header: DBGKD_DEBUG_DATA_HEADER64,
pub KernBase: u64,
pub BreakpointWithStatus: u64,
pub SavedContext: u64,
pub ThCallbackStack: u16,
pub NextCallback: u16,
pub FramePointer: u16,
pub _bitfield: u16,
pub KiCallUserMode: u64,
pub KeUserCallbackDispatcher: u64,
pub PsLoadedModuleList: u64,
pub PsActiveProcessHead: u64,
pub PspCidTable: u64,
pub ExpSystemResourcesList: u64,
pub ExpPagedPoolDescriptor: u64,
pub ExpNumberOfPagedPools: u64,
pub KeTimeIncrement: u64,
pub KeBugCheckCallbackListHead: u64,
pub KiBugcheckData: u64,
pub IopErrorLogListHead: u64,
pub ObpRootDirectoryObject: u64,
pub ObpTypeObjectType: u64,
pub MmSystemCacheStart: u64,
pub MmSystemCacheEnd: u64,
pub MmSystemCacheWs: u64,
pub MmPfnDatabase: u64,
pub MmSystemPtesStart: u64,
pub MmSystemPtesEnd: u64,
pub MmSubsectionBase: u64,
pub MmNumberOfPagingFiles: u64,
pub MmLowestPhysicalPage: u64,
pub MmHighestPhysicalPage: u64,
pub MmNumberOfPhysicalPages: u64,
pub MmMaximumNonPagedPoolInBytes: u64,
pub MmNonPagedSystemStart: u64,
pub MmNonPagedPoolStart: u64,
pub MmNonPagedPoolEnd: u64,
pub MmPagedPoolStart: u64,
pub MmPagedPoolEnd: u64,
pub MmPagedPoolInformation: u64,
pub MmPageSize: u64,
pub MmSizeOfPagedPoolInBytes: u64,
pub MmTotalCommitLimit: u64,
pub MmTotalCommittedPages: u64,
pub MmSharedCommit: u64,
pub MmDriverCommit: u64,
pub MmProcessCommit: u64,
pub MmPagedPoolCommit: u64,
pub MmExtendedCommit: u64,
pub MmZeroedPageListHead: u64,
pub MmFreePageListHead: u64,
pub MmStandbyPageListHead: u64,
pub MmModifiedPageListHead: u64,
pub MmModifiedNoWritePageListHead: u64,
pub MmAvailablePages: u64,
pub MmResidentAvailablePages: u64,
pub PoolTrackTable: u64,
pub NonPagedPoolDescriptor: u64,
pub MmHighestUserAddress: u64,
pub MmSystemRangeStart: u64,
pub MmUserProbeAddress: u64,
pub KdPrintCircularBuffer: u64,
pub KdPrintCircularBufferEnd: u64,
pub KdPrintWritePointer: u64,
pub KdPrintRolloverCount: u64,
pub MmLoadedUserImageList: u64,
pub NtBuildLab: u64,
pub KiNormalSystemCall: u64,
pub KiProcessorBlock: u64,
pub MmUnloadedDrivers: u64,
pub MmLastUnloadedDriver: u64,
pub MmTriageActionTaken: u64,
pub MmSpecialPoolTag: u64,
pub KernelVerifier: u64,
pub MmVerifierData: u64,
pub MmAllocatedNonPagedPool: u64,
pub MmPeakCommitment: u64,
pub MmTotalCommitLimitMaximum: u64,
pub CmNtCSDVersion: u64,
pub MmPhysicalMemoryBlock: u64,
pub MmSessionBase: u64,
pub MmSessionSize: u64,
pub MmSystemParentTablePage: u64,
pub MmVirtualTranslationBase: u64,
pub OffsetKThreadNextProcessor: u16,
pub OffsetKThreadTeb: u16,
pub OffsetKThreadKernelStack: u16,
pub OffsetKThreadInitialStack: u16,
pub OffsetKThreadApcProcess: u16,
pub OffsetKThreadState: u16,
pub OffsetKThreadBStore: u16,
pub OffsetKThreadBStoreLimit: u16,
pub SizeEProcess: u16,
pub OffsetEprocessPeb: u16,
pub OffsetEprocessParentCID: u16,
pub OffsetEprocessDirectoryTableBase: u16,
pub SizePrcb: u16,
pub OffsetPrcbDpcRoutine: u16,
pub OffsetPrcbCurrentThread: u16,
pub OffsetPrcbMhz: u16,
pub OffsetPrcbCpuType: u16,
pub OffsetPrcbVendorString: u16,
pub OffsetPrcbProcStateContext: u16,
pub OffsetPrcbNumber: u16,
pub SizeEThread: u16,
pub L1tfHighPhysicalBitIndex: u8,
pub L1tfSwizzleBitIndex: u8,
pub Padding0: u32,
pub KdPrintCircularBufferPtr: u64,
pub KdPrintBufferSize: u64,
pub KeLoaderBlock: u64,
pub SizePcr: u16,
pub OffsetPcrSelfPcr: u16,
pub OffsetPcrCurrentPrcb: u16,
pub OffsetPcrContainedPrcb: u16,
pub OffsetPcrInitialBStore: u16,
pub OffsetPcrBStoreLimit: u16,
pub OffsetPcrInitialStack: u16,
pub OffsetPcrStackLimit: u16,
pub OffsetPrcbPcrPage: u16,
pub OffsetPrcbProcStateSpecialReg: u16,
pub GdtR0Code: u16,
pub GdtR0Data: u16,
pub GdtR0Pcr: u16,
pub GdtR3Code: u16,
pub GdtR3Data: u16,
pub GdtR3Teb: u16,
pub GdtLdt: u16,
pub GdtTss: u16,
pub Gdt64R3CmCode: u16,
pub Gdt64R3CmTeb: u16,
pub IopNumTriageDumpDataBlocks: u64,
pub IopTriageDumpDataBlocks: u64,
pub VfCrashDataBlock: u64,
pub MmBadPagesDetected: u64,
pub MmZeroedPageSingleBitErrorsDetected: u64,
pub EtwpDebuggerData: u64,
pub OffsetPrcbContext: u16,
pub OffsetPrcbMaxBreakpoints: u16,
pub OffsetPrcbMaxWatchpoints: u16,
pub OffsetKThreadStackLimit: u32,
pub OffsetKThreadStackBase: u32,
pub OffsetKThreadQueueListEntry: u32,
pub OffsetEThreadIrpList: u32,
pub OffsetPrcbIdleThread: u16,
pub OffsetPrcbNormalDpcState: u16,
pub OffsetPrcbDpcStack: u16,
pub OffsetPrcbIsrStack: u16,
pub SizeKDPC_STACK_FRAME: u16,
pub OffsetKPriQueueThreadListHead: u16,
pub OffsetKThreadWaitReason: u16,
pub Padding1: u16,
pub PteBase: u64,
pub RetpolineStubFunctionTable: u64,
pub RetpolineStubFunctionTableSize: u32,
pub RetpolineStubOffset: u32,
pub RetpolineStubSize: u32,
pub OffsetEProcessMmHotPatchContext: u16,
pub OffsetKThreadShadowStackLimit: u32,
pub OffsetKThreadShadowStackBase: u32,
pub ShadowStackEnabled: u64,
pub PointerAuthMask: u64,
pub OffsetPrcbExceptionStack: u16,
}import "golang.org/x/sys/windows"
type LIST_ENTRY64 struct {
Flink uint64
Blink uint64
}
type DBGKD_DEBUG_DATA_HEADER64 struct {
List LIST_ENTRY64
OwnerTag uint32
Size uint32
}
type KDDEBUGGER_DATA64 struct {
Header DBGKD_DEBUG_DATA_HEADER64
KernBase uint64
BreakpointWithStatus uint64
SavedContext uint64
ThCallbackStack uint16
NextCallback uint16
FramePointer uint16
_bitfield uint16
KiCallUserMode uint64
KeUserCallbackDispatcher uint64
PsLoadedModuleList uint64
PsActiveProcessHead uint64
PspCidTable uint64
ExpSystemResourcesList uint64
ExpPagedPoolDescriptor uint64
ExpNumberOfPagedPools uint64
KeTimeIncrement uint64
KeBugCheckCallbackListHead uint64
KiBugcheckData uint64
IopErrorLogListHead uint64
ObpRootDirectoryObject uint64
ObpTypeObjectType uint64
MmSystemCacheStart uint64
MmSystemCacheEnd uint64
MmSystemCacheWs uint64
MmPfnDatabase uint64
MmSystemPtesStart uint64
MmSystemPtesEnd uint64
MmSubsectionBase uint64
MmNumberOfPagingFiles uint64
MmLowestPhysicalPage uint64
MmHighestPhysicalPage uint64
MmNumberOfPhysicalPages uint64
MmMaximumNonPagedPoolInBytes uint64
MmNonPagedSystemStart uint64
MmNonPagedPoolStart uint64
MmNonPagedPoolEnd uint64
MmPagedPoolStart uint64
MmPagedPoolEnd uint64
MmPagedPoolInformation uint64
MmPageSize uint64
MmSizeOfPagedPoolInBytes uint64
MmTotalCommitLimit uint64
MmTotalCommittedPages uint64
MmSharedCommit uint64
MmDriverCommit uint64
MmProcessCommit uint64
MmPagedPoolCommit uint64
MmExtendedCommit uint64
MmZeroedPageListHead uint64
MmFreePageListHead uint64
MmStandbyPageListHead uint64
MmModifiedPageListHead uint64
MmModifiedNoWritePageListHead uint64
MmAvailablePages uint64
MmResidentAvailablePages uint64
PoolTrackTable uint64
NonPagedPoolDescriptor uint64
MmHighestUserAddress uint64
MmSystemRangeStart uint64
MmUserProbeAddress uint64
KdPrintCircularBuffer uint64
KdPrintCircularBufferEnd uint64
KdPrintWritePointer uint64
KdPrintRolloverCount uint64
MmLoadedUserImageList uint64
NtBuildLab uint64
KiNormalSystemCall uint64
KiProcessorBlock uint64
MmUnloadedDrivers uint64
MmLastUnloadedDriver uint64
MmTriageActionTaken uint64
MmSpecialPoolTag uint64
KernelVerifier uint64
MmVerifierData uint64
MmAllocatedNonPagedPool uint64
MmPeakCommitment uint64
MmTotalCommitLimitMaximum uint64
CmNtCSDVersion uint64
MmPhysicalMemoryBlock uint64
MmSessionBase uint64
MmSessionSize uint64
MmSystemParentTablePage uint64
MmVirtualTranslationBase uint64
OffsetKThreadNextProcessor uint16
OffsetKThreadTeb uint16
OffsetKThreadKernelStack uint16
OffsetKThreadInitialStack uint16
OffsetKThreadApcProcess uint16
OffsetKThreadState uint16
OffsetKThreadBStore uint16
OffsetKThreadBStoreLimit uint16
SizeEProcess uint16
OffsetEprocessPeb uint16
OffsetEprocessParentCID uint16
OffsetEprocessDirectoryTableBase uint16
SizePrcb uint16
OffsetPrcbDpcRoutine uint16
OffsetPrcbCurrentThread uint16
OffsetPrcbMhz uint16
OffsetPrcbCpuType uint16
OffsetPrcbVendorString uint16
OffsetPrcbProcStateContext uint16
OffsetPrcbNumber uint16
SizeEThread uint16
L1tfHighPhysicalBitIndex byte
L1tfSwizzleBitIndex byte
Padding0 uint32
KdPrintCircularBufferPtr uint64
KdPrintBufferSize uint64
KeLoaderBlock uint64
SizePcr uint16
OffsetPcrSelfPcr uint16
OffsetPcrCurrentPrcb uint16
OffsetPcrContainedPrcb uint16
OffsetPcrInitialBStore uint16
OffsetPcrBStoreLimit uint16
OffsetPcrInitialStack uint16
OffsetPcrStackLimit uint16
OffsetPrcbPcrPage uint16
OffsetPrcbProcStateSpecialReg uint16
GdtR0Code uint16
GdtR0Data uint16
GdtR0Pcr uint16
GdtR3Code uint16
GdtR3Data uint16
GdtR3Teb uint16
GdtLdt uint16
GdtTss uint16
Gdt64R3CmCode uint16
Gdt64R3CmTeb uint16
IopNumTriageDumpDataBlocks uint64
IopTriageDumpDataBlocks uint64
VfCrashDataBlock uint64
MmBadPagesDetected uint64
MmZeroedPageSingleBitErrorsDetected uint64
EtwpDebuggerData uint64
OffsetPrcbContext uint16
OffsetPrcbMaxBreakpoints uint16
OffsetPrcbMaxWatchpoints uint16
OffsetKThreadStackLimit uint32
OffsetKThreadStackBase uint32
OffsetKThreadQueueListEntry uint32
OffsetEThreadIrpList uint32
OffsetPrcbIdleThread uint16
OffsetPrcbNormalDpcState uint16
OffsetPrcbDpcStack uint16
OffsetPrcbIsrStack uint16
SizeKDPC_STACK_FRAME uint16
OffsetKPriQueueThreadListHead uint16
OffsetKThreadWaitReason uint16
Padding1 uint16
PteBase uint64
RetpolineStubFunctionTable uint64
RetpolineStubFunctionTableSize uint32
RetpolineStubOffset uint32
RetpolineStubSize uint32
OffsetEProcessMmHotPatchContext uint16
OffsetKThreadShadowStackLimit uint32
OffsetKThreadShadowStackBase uint32
ShadowStackEnabled uint64
PointerAuthMask uint64
OffsetPrcbExceptionStack uint16
}type
LIST_ENTRY64 = record
Flink: UInt64;
Blink: UInt64;
end;
DBGKD_DEBUG_DATA_HEADER64 = record
List: LIST_ENTRY64;
OwnerTag: DWORD;
Size: DWORD;
end;
KDDEBUGGER_DATA64 = record
Header: DBGKD_DEBUG_DATA_HEADER64;
KernBase: UInt64;
BreakpointWithStatus: UInt64;
SavedContext: UInt64;
ThCallbackStack: Word;
NextCallback: Word;
FramePointer: Word;
_bitfield: Word;
KiCallUserMode: UInt64;
KeUserCallbackDispatcher: UInt64;
PsLoadedModuleList: UInt64;
PsActiveProcessHead: UInt64;
PspCidTable: UInt64;
ExpSystemResourcesList: UInt64;
ExpPagedPoolDescriptor: UInt64;
ExpNumberOfPagedPools: UInt64;
KeTimeIncrement: UInt64;
KeBugCheckCallbackListHead: UInt64;
KiBugcheckData: UInt64;
IopErrorLogListHead: UInt64;
ObpRootDirectoryObject: UInt64;
ObpTypeObjectType: UInt64;
MmSystemCacheStart: UInt64;
MmSystemCacheEnd: UInt64;
MmSystemCacheWs: UInt64;
MmPfnDatabase: UInt64;
MmSystemPtesStart: UInt64;
MmSystemPtesEnd: UInt64;
MmSubsectionBase: UInt64;
MmNumberOfPagingFiles: UInt64;
MmLowestPhysicalPage: UInt64;
MmHighestPhysicalPage: UInt64;
MmNumberOfPhysicalPages: UInt64;
MmMaximumNonPagedPoolInBytes: UInt64;
MmNonPagedSystemStart: UInt64;
MmNonPagedPoolStart: UInt64;
MmNonPagedPoolEnd: UInt64;
MmPagedPoolStart: UInt64;
MmPagedPoolEnd: UInt64;
MmPagedPoolInformation: UInt64;
MmPageSize: UInt64;
MmSizeOfPagedPoolInBytes: UInt64;
MmTotalCommitLimit: UInt64;
MmTotalCommittedPages: UInt64;
MmSharedCommit: UInt64;
MmDriverCommit: UInt64;
MmProcessCommit: UInt64;
MmPagedPoolCommit: UInt64;
MmExtendedCommit: UInt64;
MmZeroedPageListHead: UInt64;
MmFreePageListHead: UInt64;
MmStandbyPageListHead: UInt64;
MmModifiedPageListHead: UInt64;
MmModifiedNoWritePageListHead: UInt64;
MmAvailablePages: UInt64;
MmResidentAvailablePages: UInt64;
PoolTrackTable: UInt64;
NonPagedPoolDescriptor: UInt64;
MmHighestUserAddress: UInt64;
MmSystemRangeStart: UInt64;
MmUserProbeAddress: UInt64;
KdPrintCircularBuffer: UInt64;
KdPrintCircularBufferEnd: UInt64;
KdPrintWritePointer: UInt64;
KdPrintRolloverCount: UInt64;
MmLoadedUserImageList: UInt64;
NtBuildLab: UInt64;
KiNormalSystemCall: UInt64;
KiProcessorBlock: UInt64;
MmUnloadedDrivers: UInt64;
MmLastUnloadedDriver: UInt64;
MmTriageActionTaken: UInt64;
MmSpecialPoolTag: UInt64;
KernelVerifier: UInt64;
MmVerifierData: UInt64;
MmAllocatedNonPagedPool: UInt64;
MmPeakCommitment: UInt64;
MmTotalCommitLimitMaximum: UInt64;
CmNtCSDVersion: UInt64;
MmPhysicalMemoryBlock: UInt64;
MmSessionBase: UInt64;
MmSessionSize: UInt64;
MmSystemParentTablePage: UInt64;
MmVirtualTranslationBase: UInt64;
OffsetKThreadNextProcessor: Word;
OffsetKThreadTeb: Word;
OffsetKThreadKernelStack: Word;
OffsetKThreadInitialStack: Word;
OffsetKThreadApcProcess: Word;
OffsetKThreadState: Word;
OffsetKThreadBStore: Word;
OffsetKThreadBStoreLimit: Word;
SizeEProcess: Word;
OffsetEprocessPeb: Word;
OffsetEprocessParentCID: Word;
OffsetEprocessDirectoryTableBase: Word;
SizePrcb: Word;
OffsetPrcbDpcRoutine: Word;
OffsetPrcbCurrentThread: Word;
OffsetPrcbMhz: Word;
OffsetPrcbCpuType: Word;
OffsetPrcbVendorString: Word;
OffsetPrcbProcStateContext: Word;
OffsetPrcbNumber: Word;
SizeEThread: Word;
L1tfHighPhysicalBitIndex: Byte;
L1tfSwizzleBitIndex: Byte;
Padding0: DWORD;
KdPrintCircularBufferPtr: UInt64;
KdPrintBufferSize: UInt64;
KeLoaderBlock: UInt64;
SizePcr: Word;
OffsetPcrSelfPcr: Word;
OffsetPcrCurrentPrcb: Word;
OffsetPcrContainedPrcb: Word;
OffsetPcrInitialBStore: Word;
OffsetPcrBStoreLimit: Word;
OffsetPcrInitialStack: Word;
OffsetPcrStackLimit: Word;
OffsetPrcbPcrPage: Word;
OffsetPrcbProcStateSpecialReg: Word;
GdtR0Code: Word;
GdtR0Data: Word;
GdtR0Pcr: Word;
GdtR3Code: Word;
GdtR3Data: Word;
GdtR3Teb: Word;
GdtLdt: Word;
GdtTss: Word;
Gdt64R3CmCode: Word;
Gdt64R3CmTeb: Word;
IopNumTriageDumpDataBlocks: UInt64;
IopTriageDumpDataBlocks: UInt64;
VfCrashDataBlock: UInt64;
MmBadPagesDetected: UInt64;
MmZeroedPageSingleBitErrorsDetected: UInt64;
EtwpDebuggerData: UInt64;
OffsetPrcbContext: Word;
OffsetPrcbMaxBreakpoints: Word;
OffsetPrcbMaxWatchpoints: Word;
OffsetKThreadStackLimit: DWORD;
OffsetKThreadStackBase: DWORD;
OffsetKThreadQueueListEntry: DWORD;
OffsetEThreadIrpList: DWORD;
OffsetPrcbIdleThread: Word;
OffsetPrcbNormalDpcState: Word;
OffsetPrcbDpcStack: Word;
OffsetPrcbIsrStack: Word;
SizeKDPC_STACK_FRAME: Word;
OffsetKPriQueueThreadListHead: Word;
OffsetKThreadWaitReason: Word;
Padding1: Word;
PteBase: UInt64;
RetpolineStubFunctionTable: UInt64;
RetpolineStubFunctionTableSize: DWORD;
RetpolineStubOffset: DWORD;
RetpolineStubSize: DWORD;
OffsetEProcessMmHotPatchContext: Word;
OffsetKThreadShadowStackLimit: DWORD;
OffsetKThreadShadowStackBase: DWORD;
ShadowStackEnabled: UInt64;
PointerAuthMask: UInt64;
OffsetPrcbExceptionStack: Word;
end;const LIST_ENTRY64 = extern struct {
Flink: u64,
Blink: u64,
};
const DBGKD_DEBUG_DATA_HEADER64 = extern struct {
List: LIST_ENTRY64,
OwnerTag: u32,
Size: u32,
};
const KDDEBUGGER_DATA64 = extern struct {
Header: DBGKD_DEBUG_DATA_HEADER64,
KernBase: u64,
BreakpointWithStatus: u64,
SavedContext: u64,
ThCallbackStack: u16,
NextCallback: u16,
FramePointer: u16,
_bitfield: u16,
KiCallUserMode: u64,
KeUserCallbackDispatcher: u64,
PsLoadedModuleList: u64,
PsActiveProcessHead: u64,
PspCidTable: u64,
ExpSystemResourcesList: u64,
ExpPagedPoolDescriptor: u64,
ExpNumberOfPagedPools: u64,
KeTimeIncrement: u64,
KeBugCheckCallbackListHead: u64,
KiBugcheckData: u64,
IopErrorLogListHead: u64,
ObpRootDirectoryObject: u64,
ObpTypeObjectType: u64,
MmSystemCacheStart: u64,
MmSystemCacheEnd: u64,
MmSystemCacheWs: u64,
MmPfnDatabase: u64,
MmSystemPtesStart: u64,
MmSystemPtesEnd: u64,
MmSubsectionBase: u64,
MmNumberOfPagingFiles: u64,
MmLowestPhysicalPage: u64,
MmHighestPhysicalPage: u64,
MmNumberOfPhysicalPages: u64,
MmMaximumNonPagedPoolInBytes: u64,
MmNonPagedSystemStart: u64,
MmNonPagedPoolStart: u64,
MmNonPagedPoolEnd: u64,
MmPagedPoolStart: u64,
MmPagedPoolEnd: u64,
MmPagedPoolInformation: u64,
MmPageSize: u64,
MmSizeOfPagedPoolInBytes: u64,
MmTotalCommitLimit: u64,
MmTotalCommittedPages: u64,
MmSharedCommit: u64,
MmDriverCommit: u64,
MmProcessCommit: u64,
MmPagedPoolCommit: u64,
MmExtendedCommit: u64,
MmZeroedPageListHead: u64,
MmFreePageListHead: u64,
MmStandbyPageListHead: u64,
MmModifiedPageListHead: u64,
MmModifiedNoWritePageListHead: u64,
MmAvailablePages: u64,
MmResidentAvailablePages: u64,
PoolTrackTable: u64,
NonPagedPoolDescriptor: u64,
MmHighestUserAddress: u64,
MmSystemRangeStart: u64,
MmUserProbeAddress: u64,
KdPrintCircularBuffer: u64,
KdPrintCircularBufferEnd: u64,
KdPrintWritePointer: u64,
KdPrintRolloverCount: u64,
MmLoadedUserImageList: u64,
NtBuildLab: u64,
KiNormalSystemCall: u64,
KiProcessorBlock: u64,
MmUnloadedDrivers: u64,
MmLastUnloadedDriver: u64,
MmTriageActionTaken: u64,
MmSpecialPoolTag: u64,
KernelVerifier: u64,
MmVerifierData: u64,
MmAllocatedNonPagedPool: u64,
MmPeakCommitment: u64,
MmTotalCommitLimitMaximum: u64,
CmNtCSDVersion: u64,
MmPhysicalMemoryBlock: u64,
MmSessionBase: u64,
MmSessionSize: u64,
MmSystemParentTablePage: u64,
MmVirtualTranslationBase: u64,
OffsetKThreadNextProcessor: u16,
OffsetKThreadTeb: u16,
OffsetKThreadKernelStack: u16,
OffsetKThreadInitialStack: u16,
OffsetKThreadApcProcess: u16,
OffsetKThreadState: u16,
OffsetKThreadBStore: u16,
OffsetKThreadBStoreLimit: u16,
SizeEProcess: u16,
OffsetEprocessPeb: u16,
OffsetEprocessParentCID: u16,
OffsetEprocessDirectoryTableBase: u16,
SizePrcb: u16,
OffsetPrcbDpcRoutine: u16,
OffsetPrcbCurrentThread: u16,
OffsetPrcbMhz: u16,
OffsetPrcbCpuType: u16,
OffsetPrcbVendorString: u16,
OffsetPrcbProcStateContext: u16,
OffsetPrcbNumber: u16,
SizeEThread: u16,
L1tfHighPhysicalBitIndex: u8,
L1tfSwizzleBitIndex: u8,
Padding0: u32,
KdPrintCircularBufferPtr: u64,
KdPrintBufferSize: u64,
KeLoaderBlock: u64,
SizePcr: u16,
OffsetPcrSelfPcr: u16,
OffsetPcrCurrentPrcb: u16,
OffsetPcrContainedPrcb: u16,
OffsetPcrInitialBStore: u16,
OffsetPcrBStoreLimit: u16,
OffsetPcrInitialStack: u16,
OffsetPcrStackLimit: u16,
OffsetPrcbPcrPage: u16,
OffsetPrcbProcStateSpecialReg: u16,
GdtR0Code: u16,
GdtR0Data: u16,
GdtR0Pcr: u16,
GdtR3Code: u16,
GdtR3Data: u16,
GdtR3Teb: u16,
GdtLdt: u16,
GdtTss: u16,
Gdt64R3CmCode: u16,
Gdt64R3CmTeb: u16,
IopNumTriageDumpDataBlocks: u64,
IopTriageDumpDataBlocks: u64,
VfCrashDataBlock: u64,
MmBadPagesDetected: u64,
MmZeroedPageSingleBitErrorsDetected: u64,
EtwpDebuggerData: u64,
OffsetPrcbContext: u16,
OffsetPrcbMaxBreakpoints: u16,
OffsetPrcbMaxWatchpoints: u16,
OffsetKThreadStackLimit: u32,
OffsetKThreadStackBase: u32,
OffsetKThreadQueueListEntry: u32,
OffsetEThreadIrpList: u32,
OffsetPrcbIdleThread: u16,
OffsetPrcbNormalDpcState: u16,
OffsetPrcbDpcStack: u16,
OffsetPrcbIsrStack: u16,
SizeKDPC_STACK_FRAME: u16,
OffsetKPriQueueThreadListHead: u16,
OffsetKThreadWaitReason: u16,
Padding1: u16,
PteBase: u64,
RetpolineStubFunctionTable: u64,
RetpolineStubFunctionTableSize: u32,
RetpolineStubOffset: u32,
RetpolineStubSize: u32,
OffsetEProcessMmHotPatchContext: u16,
OffsetKThreadShadowStackLimit: u32,
OffsetKThreadShadowStackBase: u32,
ShadowStackEnabled: u64,
PointerAuthMask: u64,
OffsetPrcbExceptionStack: u16,
};type
LIST_ENTRY64 {.bycopy.} = object
Flink: uint64
Blink: uint64
DBGKD_DEBUG_DATA_HEADER64 {.bycopy.} = object
List: LIST_ENTRY64
OwnerTag: uint32
Size: uint32
KDDEBUGGER_DATA64 {.bycopy.} = object
Header: DBGKD_DEBUG_DATA_HEADER64
KernBase: uint64
BreakpointWithStatus: uint64
SavedContext: uint64
ThCallbackStack: uint16
NextCallback: uint16
FramePointer: uint16
_bitfield: uint16
KiCallUserMode: uint64
KeUserCallbackDispatcher: uint64
PsLoadedModuleList: uint64
PsActiveProcessHead: uint64
PspCidTable: uint64
ExpSystemResourcesList: uint64
ExpPagedPoolDescriptor: uint64
ExpNumberOfPagedPools: uint64
KeTimeIncrement: uint64
KeBugCheckCallbackListHead: uint64
KiBugcheckData: uint64
IopErrorLogListHead: uint64
ObpRootDirectoryObject: uint64
ObpTypeObjectType: uint64
MmSystemCacheStart: uint64
MmSystemCacheEnd: uint64
MmSystemCacheWs: uint64
MmPfnDatabase: uint64
MmSystemPtesStart: uint64
MmSystemPtesEnd: uint64
MmSubsectionBase: uint64
MmNumberOfPagingFiles: uint64
MmLowestPhysicalPage: uint64
MmHighestPhysicalPage: uint64
MmNumberOfPhysicalPages: uint64
MmMaximumNonPagedPoolInBytes: uint64
MmNonPagedSystemStart: uint64
MmNonPagedPoolStart: uint64
MmNonPagedPoolEnd: uint64
MmPagedPoolStart: uint64
MmPagedPoolEnd: uint64
MmPagedPoolInformation: uint64
MmPageSize: uint64
MmSizeOfPagedPoolInBytes: uint64
MmTotalCommitLimit: uint64
MmTotalCommittedPages: uint64
MmSharedCommit: uint64
MmDriverCommit: uint64
MmProcessCommit: uint64
MmPagedPoolCommit: uint64
MmExtendedCommit: uint64
MmZeroedPageListHead: uint64
MmFreePageListHead: uint64
MmStandbyPageListHead: uint64
MmModifiedPageListHead: uint64
MmModifiedNoWritePageListHead: uint64
MmAvailablePages: uint64
MmResidentAvailablePages: uint64
PoolTrackTable: uint64
NonPagedPoolDescriptor: uint64
MmHighestUserAddress: uint64
MmSystemRangeStart: uint64
MmUserProbeAddress: uint64
KdPrintCircularBuffer: uint64
KdPrintCircularBufferEnd: uint64
KdPrintWritePointer: uint64
KdPrintRolloverCount: uint64
MmLoadedUserImageList: uint64
NtBuildLab: uint64
KiNormalSystemCall: uint64
KiProcessorBlock: uint64
MmUnloadedDrivers: uint64
MmLastUnloadedDriver: uint64
MmTriageActionTaken: uint64
MmSpecialPoolTag: uint64
KernelVerifier: uint64
MmVerifierData: uint64
MmAllocatedNonPagedPool: uint64
MmPeakCommitment: uint64
MmTotalCommitLimitMaximum: uint64
CmNtCSDVersion: uint64
MmPhysicalMemoryBlock: uint64
MmSessionBase: uint64
MmSessionSize: uint64
MmSystemParentTablePage: uint64
MmVirtualTranslationBase: uint64
OffsetKThreadNextProcessor: uint16
OffsetKThreadTeb: uint16
OffsetKThreadKernelStack: uint16
OffsetKThreadInitialStack: uint16
OffsetKThreadApcProcess: uint16
OffsetKThreadState: uint16
OffsetKThreadBStore: uint16
OffsetKThreadBStoreLimit: uint16
SizeEProcess: uint16
OffsetEprocessPeb: uint16
OffsetEprocessParentCID: uint16
OffsetEprocessDirectoryTableBase: uint16
SizePrcb: uint16
OffsetPrcbDpcRoutine: uint16
OffsetPrcbCurrentThread: uint16
OffsetPrcbMhz: uint16
OffsetPrcbCpuType: uint16
OffsetPrcbVendorString: uint16
OffsetPrcbProcStateContext: uint16
OffsetPrcbNumber: uint16
SizeEThread: uint16
L1tfHighPhysicalBitIndex: uint8
L1tfSwizzleBitIndex: uint8
Padding0: uint32
KdPrintCircularBufferPtr: uint64
KdPrintBufferSize: uint64
KeLoaderBlock: uint64
SizePcr: uint16
OffsetPcrSelfPcr: uint16
OffsetPcrCurrentPrcb: uint16
OffsetPcrContainedPrcb: uint16
OffsetPcrInitialBStore: uint16
OffsetPcrBStoreLimit: uint16
OffsetPcrInitialStack: uint16
OffsetPcrStackLimit: uint16
OffsetPrcbPcrPage: uint16
OffsetPrcbProcStateSpecialReg: uint16
GdtR0Code: uint16
GdtR0Data: uint16
GdtR0Pcr: uint16
GdtR3Code: uint16
GdtR3Data: uint16
GdtR3Teb: uint16
GdtLdt: uint16
GdtTss: uint16
Gdt64R3CmCode: uint16
Gdt64R3CmTeb: uint16
IopNumTriageDumpDataBlocks: uint64
IopTriageDumpDataBlocks: uint64
VfCrashDataBlock: uint64
MmBadPagesDetected: uint64
MmZeroedPageSingleBitErrorsDetected: uint64
EtwpDebuggerData: uint64
OffsetPrcbContext: uint16
OffsetPrcbMaxBreakpoints: uint16
OffsetPrcbMaxWatchpoints: uint16
OffsetKThreadStackLimit: uint32
OffsetKThreadStackBase: uint32
OffsetKThreadQueueListEntry: uint32
OffsetEThreadIrpList: uint32
OffsetPrcbIdleThread: uint16
OffsetPrcbNormalDpcState: uint16
OffsetPrcbDpcStack: uint16
OffsetPrcbIsrStack: uint16
SizeKDPC_STACK_FRAME: uint16
OffsetKPriQueueThreadListHead: uint16
OffsetKThreadWaitReason: uint16
Padding1: uint16
PteBase: uint64
RetpolineStubFunctionTable: uint64
RetpolineStubFunctionTableSize: uint32
RetpolineStubOffset: uint32
RetpolineStubSize: uint32
OffsetEProcessMmHotPatchContext: uint16
OffsetKThreadShadowStackLimit: uint32
OffsetKThreadShadowStackBase: uint32
ShadowStackEnabled: uint64
PointerAuthMask: uint64
OffsetPrcbExceptionStack: uint16struct LIST_ENTRY64
{
ulong Flink;
ulong Blink;
}
struct DBGKD_DEBUG_DATA_HEADER64
{
LIST_ENTRY64 List;
uint OwnerTag;
uint Size;
}
struct KDDEBUGGER_DATA64
{
DBGKD_DEBUG_DATA_HEADER64 Header;
ulong KernBase;
ulong BreakpointWithStatus;
ulong SavedContext;
ushort ThCallbackStack;
ushort NextCallback;
ushort FramePointer;
ushort _bitfield;
ulong KiCallUserMode;
ulong KeUserCallbackDispatcher;
ulong PsLoadedModuleList;
ulong PsActiveProcessHead;
ulong PspCidTable;
ulong ExpSystemResourcesList;
ulong ExpPagedPoolDescriptor;
ulong ExpNumberOfPagedPools;
ulong KeTimeIncrement;
ulong KeBugCheckCallbackListHead;
ulong KiBugcheckData;
ulong IopErrorLogListHead;
ulong ObpRootDirectoryObject;
ulong ObpTypeObjectType;
ulong MmSystemCacheStart;
ulong MmSystemCacheEnd;
ulong MmSystemCacheWs;
ulong MmPfnDatabase;
ulong MmSystemPtesStart;
ulong MmSystemPtesEnd;
ulong MmSubsectionBase;
ulong MmNumberOfPagingFiles;
ulong MmLowestPhysicalPage;
ulong MmHighestPhysicalPage;
ulong MmNumberOfPhysicalPages;
ulong MmMaximumNonPagedPoolInBytes;
ulong MmNonPagedSystemStart;
ulong MmNonPagedPoolStart;
ulong MmNonPagedPoolEnd;
ulong MmPagedPoolStart;
ulong MmPagedPoolEnd;
ulong MmPagedPoolInformation;
ulong MmPageSize;
ulong MmSizeOfPagedPoolInBytes;
ulong MmTotalCommitLimit;
ulong MmTotalCommittedPages;
ulong MmSharedCommit;
ulong MmDriverCommit;
ulong MmProcessCommit;
ulong MmPagedPoolCommit;
ulong MmExtendedCommit;
ulong MmZeroedPageListHead;
ulong MmFreePageListHead;
ulong MmStandbyPageListHead;
ulong MmModifiedPageListHead;
ulong MmModifiedNoWritePageListHead;
ulong MmAvailablePages;
ulong MmResidentAvailablePages;
ulong PoolTrackTable;
ulong NonPagedPoolDescriptor;
ulong MmHighestUserAddress;
ulong MmSystemRangeStart;
ulong MmUserProbeAddress;
ulong KdPrintCircularBuffer;
ulong KdPrintCircularBufferEnd;
ulong KdPrintWritePointer;
ulong KdPrintRolloverCount;
ulong MmLoadedUserImageList;
ulong NtBuildLab;
ulong KiNormalSystemCall;
ulong KiProcessorBlock;
ulong MmUnloadedDrivers;
ulong MmLastUnloadedDriver;
ulong MmTriageActionTaken;
ulong MmSpecialPoolTag;
ulong KernelVerifier;
ulong MmVerifierData;
ulong MmAllocatedNonPagedPool;
ulong MmPeakCommitment;
ulong MmTotalCommitLimitMaximum;
ulong CmNtCSDVersion;
ulong MmPhysicalMemoryBlock;
ulong MmSessionBase;
ulong MmSessionSize;
ulong MmSystemParentTablePage;
ulong MmVirtualTranslationBase;
ushort OffsetKThreadNextProcessor;
ushort OffsetKThreadTeb;
ushort OffsetKThreadKernelStack;
ushort OffsetKThreadInitialStack;
ushort OffsetKThreadApcProcess;
ushort OffsetKThreadState;
ushort OffsetKThreadBStore;
ushort OffsetKThreadBStoreLimit;
ushort SizeEProcess;
ushort OffsetEprocessPeb;
ushort OffsetEprocessParentCID;
ushort OffsetEprocessDirectoryTableBase;
ushort SizePrcb;
ushort OffsetPrcbDpcRoutine;
ushort OffsetPrcbCurrentThread;
ushort OffsetPrcbMhz;
ushort OffsetPrcbCpuType;
ushort OffsetPrcbVendorString;
ushort OffsetPrcbProcStateContext;
ushort OffsetPrcbNumber;
ushort SizeEThread;
ubyte L1tfHighPhysicalBitIndex;
ubyte L1tfSwizzleBitIndex;
uint Padding0;
ulong KdPrintCircularBufferPtr;
ulong KdPrintBufferSize;
ulong KeLoaderBlock;
ushort SizePcr;
ushort OffsetPcrSelfPcr;
ushort OffsetPcrCurrentPrcb;
ushort OffsetPcrContainedPrcb;
ushort OffsetPcrInitialBStore;
ushort OffsetPcrBStoreLimit;
ushort OffsetPcrInitialStack;
ushort OffsetPcrStackLimit;
ushort OffsetPrcbPcrPage;
ushort OffsetPrcbProcStateSpecialReg;
ushort GdtR0Code;
ushort GdtR0Data;
ushort GdtR0Pcr;
ushort GdtR3Code;
ushort GdtR3Data;
ushort GdtR3Teb;
ushort GdtLdt;
ushort GdtTss;
ushort Gdt64R3CmCode;
ushort Gdt64R3CmTeb;
ulong IopNumTriageDumpDataBlocks;
ulong IopTriageDumpDataBlocks;
ulong VfCrashDataBlock;
ulong MmBadPagesDetected;
ulong MmZeroedPageSingleBitErrorsDetected;
ulong EtwpDebuggerData;
ushort OffsetPrcbContext;
ushort OffsetPrcbMaxBreakpoints;
ushort OffsetPrcbMaxWatchpoints;
uint OffsetKThreadStackLimit;
uint OffsetKThreadStackBase;
uint OffsetKThreadQueueListEntry;
uint OffsetEThreadIrpList;
ushort OffsetPrcbIdleThread;
ushort OffsetPrcbNormalDpcState;
ushort OffsetPrcbDpcStack;
ushort OffsetPrcbIsrStack;
ushort SizeKDPC_STACK_FRAME;
ushort OffsetKPriQueueThreadListHead;
ushort OffsetKThreadWaitReason;
ushort Padding1;
ulong PteBase;
ulong RetpolineStubFunctionTable;
uint RetpolineStubFunctionTableSize;
uint RetpolineStubOffset;
uint RetpolineStubSize;
ushort OffsetEProcessMmHotPatchContext;
uint OffsetKThreadShadowStackLimit;
uint OffsetKThreadShadowStackBase;
ulong ShadowStackEnabled;
ulong PointerAuthMask;
ushort OffsetPrcbExceptionStack;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; KDDEBUGGER_DATA64 サイズ: 928 バイト(x64)
dim st, 232 ; 4byte整数×232(構造体サイズ 928 / 4 切り上げ)
; Header : DBGKD_DEBUG_DATA_HEADER64 (+0, 24byte) varptr(st)+0 を基点に操作(24byte:入れ子/配列)
; KernBase : ULONGLONG (+24, 8byte) qpoke st,24,値 / qpeek(st,24) ※IronHSPのみ。3.7/3.8は lpoke st,24,下位 : lpoke st,28,上位
; BreakpointWithStatus : ULONGLONG (+32, 8byte) qpoke st,32,値 / qpeek(st,32) ※IronHSPのみ。3.7/3.8は lpoke st,32,下位 : lpoke st,36,上位
; SavedContext : ULONGLONG (+40, 8byte) qpoke st,40,値 / qpeek(st,40) ※IronHSPのみ。3.7/3.8は lpoke st,40,下位 : lpoke st,44,上位
; ThCallbackStack : WORD (+48, 2byte) wpoke st,48,値 / 値 = wpeek(st,48)
; NextCallback : WORD (+50, 2byte) wpoke st,50,値 / 値 = wpeek(st,50)
; FramePointer : WORD (+52, 2byte) wpoke st,52,値 / 値 = wpeek(st,52)
; _bitfield : WORD (+54, 2byte) wpoke st,54,値 / 値 = wpeek(st,54)
; KiCallUserMode : ULONGLONG (+56, 8byte) qpoke st,56,値 / qpeek(st,56) ※IronHSPのみ。3.7/3.8は lpoke st,56,下位 : lpoke st,60,上位
; KeUserCallbackDispatcher : ULONGLONG (+64, 8byte) qpoke st,64,値 / qpeek(st,64) ※IronHSPのみ。3.7/3.8は lpoke st,64,下位 : lpoke st,68,上位
; PsLoadedModuleList : ULONGLONG (+72, 8byte) qpoke st,72,値 / qpeek(st,72) ※IronHSPのみ。3.7/3.8は lpoke st,72,下位 : lpoke st,76,上位
; PsActiveProcessHead : ULONGLONG (+80, 8byte) qpoke st,80,値 / qpeek(st,80) ※IronHSPのみ。3.7/3.8は lpoke st,80,下位 : lpoke st,84,上位
; PspCidTable : ULONGLONG (+88, 8byte) qpoke st,88,値 / qpeek(st,88) ※IronHSPのみ。3.7/3.8は lpoke st,88,下位 : lpoke st,92,上位
; ExpSystemResourcesList : ULONGLONG (+96, 8byte) qpoke st,96,値 / qpeek(st,96) ※IronHSPのみ。3.7/3.8は lpoke st,96,下位 : lpoke st,100,上位
; ExpPagedPoolDescriptor : ULONGLONG (+104, 8byte) qpoke st,104,値 / qpeek(st,104) ※IronHSPのみ。3.7/3.8は lpoke st,104,下位 : lpoke st,108,上位
; ExpNumberOfPagedPools : ULONGLONG (+112, 8byte) qpoke st,112,値 / qpeek(st,112) ※IronHSPのみ。3.7/3.8は lpoke st,112,下位 : lpoke st,116,上位
; KeTimeIncrement : ULONGLONG (+120, 8byte) qpoke st,120,値 / qpeek(st,120) ※IronHSPのみ。3.7/3.8は lpoke st,120,下位 : lpoke st,124,上位
; KeBugCheckCallbackListHead : ULONGLONG (+128, 8byte) qpoke st,128,値 / qpeek(st,128) ※IronHSPのみ。3.7/3.8は lpoke st,128,下位 : lpoke st,132,上位
; KiBugcheckData : ULONGLONG (+136, 8byte) qpoke st,136,値 / qpeek(st,136) ※IronHSPのみ。3.7/3.8は lpoke st,136,下位 : lpoke st,140,上位
; IopErrorLogListHead : ULONGLONG (+144, 8byte) qpoke st,144,値 / qpeek(st,144) ※IronHSPのみ。3.7/3.8は lpoke st,144,下位 : lpoke st,148,上位
; ObpRootDirectoryObject : ULONGLONG (+152, 8byte) qpoke st,152,値 / qpeek(st,152) ※IronHSPのみ。3.7/3.8は lpoke st,152,下位 : lpoke st,156,上位
; ObpTypeObjectType : ULONGLONG (+160, 8byte) qpoke st,160,値 / qpeek(st,160) ※IronHSPのみ。3.7/3.8は lpoke st,160,下位 : lpoke st,164,上位
; MmSystemCacheStart : ULONGLONG (+168, 8byte) qpoke st,168,値 / qpeek(st,168) ※IronHSPのみ。3.7/3.8は lpoke st,168,下位 : lpoke st,172,上位
; MmSystemCacheEnd : ULONGLONG (+176, 8byte) qpoke st,176,値 / qpeek(st,176) ※IronHSPのみ。3.7/3.8は lpoke st,176,下位 : lpoke st,180,上位
; MmSystemCacheWs : ULONGLONG (+184, 8byte) qpoke st,184,値 / qpeek(st,184) ※IronHSPのみ。3.7/3.8は lpoke st,184,下位 : lpoke st,188,上位
; MmPfnDatabase : ULONGLONG (+192, 8byte) qpoke st,192,値 / qpeek(st,192) ※IronHSPのみ。3.7/3.8は lpoke st,192,下位 : lpoke st,196,上位
; MmSystemPtesStart : ULONGLONG (+200, 8byte) qpoke st,200,値 / qpeek(st,200) ※IronHSPのみ。3.7/3.8は lpoke st,200,下位 : lpoke st,204,上位
; MmSystemPtesEnd : ULONGLONG (+208, 8byte) qpoke st,208,値 / qpeek(st,208) ※IronHSPのみ。3.7/3.8は lpoke st,208,下位 : lpoke st,212,上位
; MmSubsectionBase : ULONGLONG (+216, 8byte) qpoke st,216,値 / qpeek(st,216) ※IronHSPのみ。3.7/3.8は lpoke st,216,下位 : lpoke st,220,上位
; MmNumberOfPagingFiles : ULONGLONG (+224, 8byte) qpoke st,224,値 / qpeek(st,224) ※IronHSPのみ。3.7/3.8は lpoke st,224,下位 : lpoke st,228,上位
; MmLowestPhysicalPage : ULONGLONG (+232, 8byte) qpoke st,232,値 / qpeek(st,232) ※IronHSPのみ。3.7/3.8は lpoke st,232,下位 : lpoke st,236,上位
; MmHighestPhysicalPage : ULONGLONG (+240, 8byte) qpoke st,240,値 / qpeek(st,240) ※IronHSPのみ。3.7/3.8は lpoke st,240,下位 : lpoke st,244,上位
; MmNumberOfPhysicalPages : ULONGLONG (+248, 8byte) qpoke st,248,値 / qpeek(st,248) ※IronHSPのみ。3.7/3.8は lpoke st,248,下位 : lpoke st,252,上位
; MmMaximumNonPagedPoolInBytes : ULONGLONG (+256, 8byte) qpoke st,256,値 / qpeek(st,256) ※IronHSPのみ。3.7/3.8は lpoke st,256,下位 : lpoke st,260,上位
; MmNonPagedSystemStart : ULONGLONG (+264, 8byte) qpoke st,264,値 / qpeek(st,264) ※IronHSPのみ。3.7/3.8は lpoke st,264,下位 : lpoke st,268,上位
; MmNonPagedPoolStart : ULONGLONG (+272, 8byte) qpoke st,272,値 / qpeek(st,272) ※IronHSPのみ。3.7/3.8は lpoke st,272,下位 : lpoke st,276,上位
; MmNonPagedPoolEnd : ULONGLONG (+280, 8byte) qpoke st,280,値 / qpeek(st,280) ※IronHSPのみ。3.7/3.8は lpoke st,280,下位 : lpoke st,284,上位
; MmPagedPoolStart : ULONGLONG (+288, 8byte) qpoke st,288,値 / qpeek(st,288) ※IronHSPのみ。3.7/3.8は lpoke st,288,下位 : lpoke st,292,上位
; MmPagedPoolEnd : ULONGLONG (+296, 8byte) qpoke st,296,値 / qpeek(st,296) ※IronHSPのみ。3.7/3.8は lpoke st,296,下位 : lpoke st,300,上位
; MmPagedPoolInformation : ULONGLONG (+304, 8byte) qpoke st,304,値 / qpeek(st,304) ※IronHSPのみ。3.7/3.8は lpoke st,304,下位 : lpoke st,308,上位
; MmPageSize : ULONGLONG (+312, 8byte) qpoke st,312,値 / qpeek(st,312) ※IronHSPのみ。3.7/3.8は lpoke st,312,下位 : lpoke st,316,上位
; MmSizeOfPagedPoolInBytes : ULONGLONG (+320, 8byte) qpoke st,320,値 / qpeek(st,320) ※IronHSPのみ。3.7/3.8は lpoke st,320,下位 : lpoke st,324,上位
; MmTotalCommitLimit : ULONGLONG (+328, 8byte) qpoke st,328,値 / qpeek(st,328) ※IronHSPのみ。3.7/3.8は lpoke st,328,下位 : lpoke st,332,上位
; MmTotalCommittedPages : ULONGLONG (+336, 8byte) qpoke st,336,値 / qpeek(st,336) ※IronHSPのみ。3.7/3.8は lpoke st,336,下位 : lpoke st,340,上位
; MmSharedCommit : ULONGLONG (+344, 8byte) qpoke st,344,値 / qpeek(st,344) ※IronHSPのみ。3.7/3.8は lpoke st,344,下位 : lpoke st,348,上位
; MmDriverCommit : ULONGLONG (+352, 8byte) qpoke st,352,値 / qpeek(st,352) ※IronHSPのみ。3.7/3.8は lpoke st,352,下位 : lpoke st,356,上位
; MmProcessCommit : ULONGLONG (+360, 8byte) qpoke st,360,値 / qpeek(st,360) ※IronHSPのみ。3.7/3.8は lpoke st,360,下位 : lpoke st,364,上位
; MmPagedPoolCommit : ULONGLONG (+368, 8byte) qpoke st,368,値 / qpeek(st,368) ※IronHSPのみ。3.7/3.8は lpoke st,368,下位 : lpoke st,372,上位
; MmExtendedCommit : ULONGLONG (+376, 8byte) qpoke st,376,値 / qpeek(st,376) ※IronHSPのみ。3.7/3.8は lpoke st,376,下位 : lpoke st,380,上位
; MmZeroedPageListHead : ULONGLONG (+384, 8byte) qpoke st,384,値 / qpeek(st,384) ※IronHSPのみ。3.7/3.8は lpoke st,384,下位 : lpoke st,388,上位
; MmFreePageListHead : ULONGLONG (+392, 8byte) qpoke st,392,値 / qpeek(st,392) ※IronHSPのみ。3.7/3.8は lpoke st,392,下位 : lpoke st,396,上位
; MmStandbyPageListHead : ULONGLONG (+400, 8byte) qpoke st,400,値 / qpeek(st,400) ※IronHSPのみ。3.7/3.8は lpoke st,400,下位 : lpoke st,404,上位
; MmModifiedPageListHead : ULONGLONG (+408, 8byte) qpoke st,408,値 / qpeek(st,408) ※IronHSPのみ。3.7/3.8は lpoke st,408,下位 : lpoke st,412,上位
; MmModifiedNoWritePageListHead : ULONGLONG (+416, 8byte) qpoke st,416,値 / qpeek(st,416) ※IronHSPのみ。3.7/3.8は lpoke st,416,下位 : lpoke st,420,上位
; MmAvailablePages : ULONGLONG (+424, 8byte) qpoke st,424,値 / qpeek(st,424) ※IronHSPのみ。3.7/3.8は lpoke st,424,下位 : lpoke st,428,上位
; MmResidentAvailablePages : ULONGLONG (+432, 8byte) qpoke st,432,値 / qpeek(st,432) ※IronHSPのみ。3.7/3.8は lpoke st,432,下位 : lpoke st,436,上位
; PoolTrackTable : ULONGLONG (+440, 8byte) qpoke st,440,値 / qpeek(st,440) ※IronHSPのみ。3.7/3.8は lpoke st,440,下位 : lpoke st,444,上位
; NonPagedPoolDescriptor : ULONGLONG (+448, 8byte) qpoke st,448,値 / qpeek(st,448) ※IronHSPのみ。3.7/3.8は lpoke st,448,下位 : lpoke st,452,上位
; MmHighestUserAddress : ULONGLONG (+456, 8byte) qpoke st,456,値 / qpeek(st,456) ※IronHSPのみ。3.7/3.8は lpoke st,456,下位 : lpoke st,460,上位
; MmSystemRangeStart : ULONGLONG (+464, 8byte) qpoke st,464,値 / qpeek(st,464) ※IronHSPのみ。3.7/3.8は lpoke st,464,下位 : lpoke st,468,上位
; MmUserProbeAddress : ULONGLONG (+472, 8byte) qpoke st,472,値 / qpeek(st,472) ※IronHSPのみ。3.7/3.8は lpoke st,472,下位 : lpoke st,476,上位
; KdPrintCircularBuffer : ULONGLONG (+480, 8byte) qpoke st,480,値 / qpeek(st,480) ※IronHSPのみ。3.7/3.8は lpoke st,480,下位 : lpoke st,484,上位
; KdPrintCircularBufferEnd : ULONGLONG (+488, 8byte) qpoke st,488,値 / qpeek(st,488) ※IronHSPのみ。3.7/3.8は lpoke st,488,下位 : lpoke st,492,上位
; KdPrintWritePointer : ULONGLONG (+496, 8byte) qpoke st,496,値 / qpeek(st,496) ※IronHSPのみ。3.7/3.8は lpoke st,496,下位 : lpoke st,500,上位
; KdPrintRolloverCount : ULONGLONG (+504, 8byte) qpoke st,504,値 / qpeek(st,504) ※IronHSPのみ。3.7/3.8は lpoke st,504,下位 : lpoke st,508,上位
; MmLoadedUserImageList : ULONGLONG (+512, 8byte) qpoke st,512,値 / qpeek(st,512) ※IronHSPのみ。3.7/3.8は lpoke st,512,下位 : lpoke st,516,上位
; NtBuildLab : ULONGLONG (+520, 8byte) qpoke st,520,値 / qpeek(st,520) ※IronHSPのみ。3.7/3.8は lpoke st,520,下位 : lpoke st,524,上位
; KiNormalSystemCall : ULONGLONG (+528, 8byte) qpoke st,528,値 / qpeek(st,528) ※IronHSPのみ。3.7/3.8は lpoke st,528,下位 : lpoke st,532,上位
; KiProcessorBlock : ULONGLONG (+536, 8byte) qpoke st,536,値 / qpeek(st,536) ※IronHSPのみ。3.7/3.8は lpoke st,536,下位 : lpoke st,540,上位
; MmUnloadedDrivers : ULONGLONG (+544, 8byte) qpoke st,544,値 / qpeek(st,544) ※IronHSPのみ。3.7/3.8は lpoke st,544,下位 : lpoke st,548,上位
; MmLastUnloadedDriver : ULONGLONG (+552, 8byte) qpoke st,552,値 / qpeek(st,552) ※IronHSPのみ。3.7/3.8は lpoke st,552,下位 : lpoke st,556,上位
; MmTriageActionTaken : ULONGLONG (+560, 8byte) qpoke st,560,値 / qpeek(st,560) ※IronHSPのみ。3.7/3.8は lpoke st,560,下位 : lpoke st,564,上位
; MmSpecialPoolTag : ULONGLONG (+568, 8byte) qpoke st,568,値 / qpeek(st,568) ※IronHSPのみ。3.7/3.8は lpoke st,568,下位 : lpoke st,572,上位
; KernelVerifier : ULONGLONG (+576, 8byte) qpoke st,576,値 / qpeek(st,576) ※IronHSPのみ。3.7/3.8は lpoke st,576,下位 : lpoke st,580,上位
; MmVerifierData : ULONGLONG (+584, 8byte) qpoke st,584,値 / qpeek(st,584) ※IronHSPのみ。3.7/3.8は lpoke st,584,下位 : lpoke st,588,上位
; MmAllocatedNonPagedPool : ULONGLONG (+592, 8byte) qpoke st,592,値 / qpeek(st,592) ※IronHSPのみ。3.7/3.8は lpoke st,592,下位 : lpoke st,596,上位
; MmPeakCommitment : ULONGLONG (+600, 8byte) qpoke st,600,値 / qpeek(st,600) ※IronHSPのみ。3.7/3.8は lpoke st,600,下位 : lpoke st,604,上位
; MmTotalCommitLimitMaximum : ULONGLONG (+608, 8byte) qpoke st,608,値 / qpeek(st,608) ※IronHSPのみ。3.7/3.8は lpoke st,608,下位 : lpoke st,612,上位
; CmNtCSDVersion : ULONGLONG (+616, 8byte) qpoke st,616,値 / qpeek(st,616) ※IronHSPのみ。3.7/3.8は lpoke st,616,下位 : lpoke st,620,上位
; MmPhysicalMemoryBlock : ULONGLONG (+624, 8byte) qpoke st,624,値 / qpeek(st,624) ※IronHSPのみ。3.7/3.8は lpoke st,624,下位 : lpoke st,628,上位
; MmSessionBase : ULONGLONG (+632, 8byte) qpoke st,632,値 / qpeek(st,632) ※IronHSPのみ。3.7/3.8は lpoke st,632,下位 : lpoke st,636,上位
; MmSessionSize : ULONGLONG (+640, 8byte) qpoke st,640,値 / qpeek(st,640) ※IronHSPのみ。3.7/3.8は lpoke st,640,下位 : lpoke st,644,上位
; MmSystemParentTablePage : ULONGLONG (+648, 8byte) qpoke st,648,値 / qpeek(st,648) ※IronHSPのみ。3.7/3.8は lpoke st,648,下位 : lpoke st,652,上位
; MmVirtualTranslationBase : ULONGLONG (+656, 8byte) qpoke st,656,値 / qpeek(st,656) ※IronHSPのみ。3.7/3.8は lpoke st,656,下位 : lpoke st,660,上位
; OffsetKThreadNextProcessor : WORD (+664, 2byte) wpoke st,664,値 / 値 = wpeek(st,664)
; OffsetKThreadTeb : WORD (+666, 2byte) wpoke st,666,値 / 値 = wpeek(st,666)
; OffsetKThreadKernelStack : WORD (+668, 2byte) wpoke st,668,値 / 値 = wpeek(st,668)
; OffsetKThreadInitialStack : WORD (+670, 2byte) wpoke st,670,値 / 値 = wpeek(st,670)
; OffsetKThreadApcProcess : WORD (+672, 2byte) wpoke st,672,値 / 値 = wpeek(st,672)
; OffsetKThreadState : WORD (+674, 2byte) wpoke st,674,値 / 値 = wpeek(st,674)
; OffsetKThreadBStore : WORD (+676, 2byte) wpoke st,676,値 / 値 = wpeek(st,676)
; OffsetKThreadBStoreLimit : WORD (+678, 2byte) wpoke st,678,値 / 値 = wpeek(st,678)
; SizeEProcess : WORD (+680, 2byte) wpoke st,680,値 / 値 = wpeek(st,680)
; OffsetEprocessPeb : WORD (+682, 2byte) wpoke st,682,値 / 値 = wpeek(st,682)
; OffsetEprocessParentCID : WORD (+684, 2byte) wpoke st,684,値 / 値 = wpeek(st,684)
; OffsetEprocessDirectoryTableBase : WORD (+686, 2byte) wpoke st,686,値 / 値 = wpeek(st,686)
; SizePrcb : WORD (+688, 2byte) wpoke st,688,値 / 値 = wpeek(st,688)
; OffsetPrcbDpcRoutine : WORD (+690, 2byte) wpoke st,690,値 / 値 = wpeek(st,690)
; OffsetPrcbCurrentThread : WORD (+692, 2byte) wpoke st,692,値 / 値 = wpeek(st,692)
; OffsetPrcbMhz : WORD (+694, 2byte) wpoke st,694,値 / 値 = wpeek(st,694)
; OffsetPrcbCpuType : WORD (+696, 2byte) wpoke st,696,値 / 値 = wpeek(st,696)
; OffsetPrcbVendorString : WORD (+698, 2byte) wpoke st,698,値 / 値 = wpeek(st,698)
; OffsetPrcbProcStateContext : WORD (+700, 2byte) wpoke st,700,値 / 値 = wpeek(st,700)
; OffsetPrcbNumber : WORD (+702, 2byte) wpoke st,702,値 / 値 = wpeek(st,702)
; SizeEThread : WORD (+704, 2byte) wpoke st,704,値 / 値 = wpeek(st,704)
; L1tfHighPhysicalBitIndex : BYTE (+706, 1byte) poke st,706,値 / 値 = peek(st,706)
; L1tfSwizzleBitIndex : BYTE (+707, 1byte) poke st,707,値 / 値 = peek(st,707)
; Padding0 : DWORD (+708, 4byte) st.177 = 値 / 値 = st.177 (lpoke/lpeek も可)
; KdPrintCircularBufferPtr : ULONGLONG (+712, 8byte) qpoke st,712,値 / qpeek(st,712) ※IronHSPのみ。3.7/3.8は lpoke st,712,下位 : lpoke st,716,上位
; KdPrintBufferSize : ULONGLONG (+720, 8byte) qpoke st,720,値 / qpeek(st,720) ※IronHSPのみ。3.7/3.8は lpoke st,720,下位 : lpoke st,724,上位
; KeLoaderBlock : ULONGLONG (+728, 8byte) qpoke st,728,値 / qpeek(st,728) ※IronHSPのみ。3.7/3.8は lpoke st,728,下位 : lpoke st,732,上位
; SizePcr : WORD (+736, 2byte) wpoke st,736,値 / 値 = wpeek(st,736)
; OffsetPcrSelfPcr : WORD (+738, 2byte) wpoke st,738,値 / 値 = wpeek(st,738)
; OffsetPcrCurrentPrcb : WORD (+740, 2byte) wpoke st,740,値 / 値 = wpeek(st,740)
; OffsetPcrContainedPrcb : WORD (+742, 2byte) wpoke st,742,値 / 値 = wpeek(st,742)
; OffsetPcrInitialBStore : WORD (+744, 2byte) wpoke st,744,値 / 値 = wpeek(st,744)
; OffsetPcrBStoreLimit : WORD (+746, 2byte) wpoke st,746,値 / 値 = wpeek(st,746)
; OffsetPcrInitialStack : WORD (+748, 2byte) wpoke st,748,値 / 値 = wpeek(st,748)
; OffsetPcrStackLimit : WORD (+750, 2byte) wpoke st,750,値 / 値 = wpeek(st,750)
; OffsetPrcbPcrPage : WORD (+752, 2byte) wpoke st,752,値 / 値 = wpeek(st,752)
; OffsetPrcbProcStateSpecialReg : WORD (+754, 2byte) wpoke st,754,値 / 値 = wpeek(st,754)
; GdtR0Code : WORD (+756, 2byte) wpoke st,756,値 / 値 = wpeek(st,756)
; GdtR0Data : WORD (+758, 2byte) wpoke st,758,値 / 値 = wpeek(st,758)
; GdtR0Pcr : WORD (+760, 2byte) wpoke st,760,値 / 値 = wpeek(st,760)
; GdtR3Code : WORD (+762, 2byte) wpoke st,762,値 / 値 = wpeek(st,762)
; GdtR3Data : WORD (+764, 2byte) wpoke st,764,値 / 値 = wpeek(st,764)
; GdtR3Teb : WORD (+766, 2byte) wpoke st,766,値 / 値 = wpeek(st,766)
; GdtLdt : WORD (+768, 2byte) wpoke st,768,値 / 値 = wpeek(st,768)
; GdtTss : WORD (+770, 2byte) wpoke st,770,値 / 値 = wpeek(st,770)
; Gdt64R3CmCode : WORD (+772, 2byte) wpoke st,772,値 / 値 = wpeek(st,772)
; Gdt64R3CmTeb : WORD (+774, 2byte) wpoke st,774,値 / 値 = wpeek(st,774)
; IopNumTriageDumpDataBlocks : ULONGLONG (+776, 8byte) qpoke st,776,値 / qpeek(st,776) ※IronHSPのみ。3.7/3.8は lpoke st,776,下位 : lpoke st,780,上位
; IopTriageDumpDataBlocks : ULONGLONG (+784, 8byte) qpoke st,784,値 / qpeek(st,784) ※IronHSPのみ。3.7/3.8は lpoke st,784,下位 : lpoke st,788,上位
; VfCrashDataBlock : ULONGLONG (+792, 8byte) qpoke st,792,値 / qpeek(st,792) ※IronHSPのみ。3.7/3.8は lpoke st,792,下位 : lpoke st,796,上位
; MmBadPagesDetected : ULONGLONG (+800, 8byte) qpoke st,800,値 / qpeek(st,800) ※IronHSPのみ。3.7/3.8は lpoke st,800,下位 : lpoke st,804,上位
; MmZeroedPageSingleBitErrorsDetected : ULONGLONG (+808, 8byte) qpoke st,808,値 / qpeek(st,808) ※IronHSPのみ。3.7/3.8は lpoke st,808,下位 : lpoke st,812,上位
; EtwpDebuggerData : ULONGLONG (+816, 8byte) qpoke st,816,値 / qpeek(st,816) ※IronHSPのみ。3.7/3.8は lpoke st,816,下位 : lpoke st,820,上位
; OffsetPrcbContext : WORD (+824, 2byte) wpoke st,824,値 / 値 = wpeek(st,824)
; OffsetPrcbMaxBreakpoints : WORD (+826, 2byte) wpoke st,826,値 / 値 = wpeek(st,826)
; OffsetPrcbMaxWatchpoints : WORD (+828, 2byte) wpoke st,828,値 / 値 = wpeek(st,828)
; OffsetKThreadStackLimit : DWORD (+832, 4byte) st.208 = 値 / 値 = st.208 (lpoke/lpeek も可)
; OffsetKThreadStackBase : DWORD (+836, 4byte) st.209 = 値 / 値 = st.209 (lpoke/lpeek も可)
; OffsetKThreadQueueListEntry : DWORD (+840, 4byte) st.210 = 値 / 値 = st.210 (lpoke/lpeek も可)
; OffsetEThreadIrpList : DWORD (+844, 4byte) st.211 = 値 / 値 = st.211 (lpoke/lpeek も可)
; OffsetPrcbIdleThread : WORD (+848, 2byte) wpoke st,848,値 / 値 = wpeek(st,848)
; OffsetPrcbNormalDpcState : WORD (+850, 2byte) wpoke st,850,値 / 値 = wpeek(st,850)
; OffsetPrcbDpcStack : WORD (+852, 2byte) wpoke st,852,値 / 値 = wpeek(st,852)
; OffsetPrcbIsrStack : WORD (+854, 2byte) wpoke st,854,値 / 値 = wpeek(st,854)
; SizeKDPC_STACK_FRAME : WORD (+856, 2byte) wpoke st,856,値 / 値 = wpeek(st,856)
; OffsetKPriQueueThreadListHead : WORD (+858, 2byte) wpoke st,858,値 / 値 = wpeek(st,858)
; OffsetKThreadWaitReason : WORD (+860, 2byte) wpoke st,860,値 / 値 = wpeek(st,860)
; Padding1 : WORD (+862, 2byte) wpoke st,862,値 / 値 = wpeek(st,862)
; PteBase : ULONGLONG (+864, 8byte) qpoke st,864,値 / qpeek(st,864) ※IronHSPのみ。3.7/3.8は lpoke st,864,下位 : lpoke st,868,上位
; RetpolineStubFunctionTable : ULONGLONG (+872, 8byte) qpoke st,872,値 / qpeek(st,872) ※IronHSPのみ。3.7/3.8は lpoke st,872,下位 : lpoke st,876,上位
; RetpolineStubFunctionTableSize : DWORD (+880, 4byte) st.220 = 値 / 値 = st.220 (lpoke/lpeek も可)
; RetpolineStubOffset : DWORD (+884, 4byte) st.221 = 値 / 値 = st.221 (lpoke/lpeek も可)
; RetpolineStubSize : DWORD (+888, 4byte) st.222 = 値 / 値 = st.222 (lpoke/lpeek も可)
; OffsetEProcessMmHotPatchContext : WORD (+892, 2byte) wpoke st,892,値 / 値 = wpeek(st,892)
; OffsetKThreadShadowStackLimit : DWORD (+896, 4byte) st.224 = 値 / 値 = st.224 (lpoke/lpeek も可)
; OffsetKThreadShadowStackBase : DWORD (+900, 4byte) st.225 = 値 / 値 = st.225 (lpoke/lpeek も可)
; ShadowStackEnabled : ULONGLONG (+904, 8byte) qpoke st,904,値 / qpeek(st,904) ※IronHSPのみ。3.7/3.8は lpoke st,904,下位 : lpoke st,908,上位
; PointerAuthMask : ULONGLONG (+912, 8byte) qpoke st,912,値 / qpeek(st,912) ※IronHSPのみ。3.7/3.8は lpoke st,912,下位 : lpoke st,916,上位
; OffsetPrcbExceptionStack : WORD (+920, 2byte) wpoke st,920,値 / 値 = wpeek(st,920)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
; ※GUID・入れ子構造体はデフォルト型でないため、依存する #defstruct を先に定義(下記に同梱)。
#defstruct global LIST_ENTRY64
#field int64 Flink
#field int64 Blink
#endstruct
#defstruct global DBGKD_DEBUG_DATA_HEADER64
#field LIST_ENTRY64 List
#field int OwnerTag
#field int Size
#endstruct
#defstruct global KDDEBUGGER_DATA64
#field DBGKD_DEBUG_DATA_HEADER64 Header
#field int64 KernBase
#field int64 BreakpointWithStatus
#field int64 SavedContext
#field short ThCallbackStack
#field short NextCallback
#field short FramePointer
#field short _bitfield
#field int64 KiCallUserMode
#field int64 KeUserCallbackDispatcher
#field int64 PsLoadedModuleList
#field int64 PsActiveProcessHead
#field int64 PspCidTable
#field int64 ExpSystemResourcesList
#field int64 ExpPagedPoolDescriptor
#field int64 ExpNumberOfPagedPools
#field int64 KeTimeIncrement
#field int64 KeBugCheckCallbackListHead
#field int64 KiBugcheckData
#field int64 IopErrorLogListHead
#field int64 ObpRootDirectoryObject
#field int64 ObpTypeObjectType
#field int64 MmSystemCacheStart
#field int64 MmSystemCacheEnd
#field int64 MmSystemCacheWs
#field int64 MmPfnDatabase
#field int64 MmSystemPtesStart
#field int64 MmSystemPtesEnd
#field int64 MmSubsectionBase
#field int64 MmNumberOfPagingFiles
#field int64 MmLowestPhysicalPage
#field int64 MmHighestPhysicalPage
#field int64 MmNumberOfPhysicalPages
#field int64 MmMaximumNonPagedPoolInBytes
#field int64 MmNonPagedSystemStart
#field int64 MmNonPagedPoolStart
#field int64 MmNonPagedPoolEnd
#field int64 MmPagedPoolStart
#field int64 MmPagedPoolEnd
#field int64 MmPagedPoolInformation
#field int64 MmPageSize
#field int64 MmSizeOfPagedPoolInBytes
#field int64 MmTotalCommitLimit
#field int64 MmTotalCommittedPages
#field int64 MmSharedCommit
#field int64 MmDriverCommit
#field int64 MmProcessCommit
#field int64 MmPagedPoolCommit
#field int64 MmExtendedCommit
#field int64 MmZeroedPageListHead
#field int64 MmFreePageListHead
#field int64 MmStandbyPageListHead
#field int64 MmModifiedPageListHead
#field int64 MmModifiedNoWritePageListHead
#field int64 MmAvailablePages
#field int64 MmResidentAvailablePages
#field int64 PoolTrackTable
#field int64 NonPagedPoolDescriptor
#field int64 MmHighestUserAddress
#field int64 MmSystemRangeStart
#field int64 MmUserProbeAddress
#field int64 KdPrintCircularBuffer
#field int64 KdPrintCircularBufferEnd
#field int64 KdPrintWritePointer
#field int64 KdPrintRolloverCount
#field int64 MmLoadedUserImageList
#field int64 NtBuildLab
#field int64 KiNormalSystemCall
#field int64 KiProcessorBlock
#field int64 MmUnloadedDrivers
#field int64 MmLastUnloadedDriver
#field int64 MmTriageActionTaken
#field int64 MmSpecialPoolTag
#field int64 KernelVerifier
#field int64 MmVerifierData
#field int64 MmAllocatedNonPagedPool
#field int64 MmPeakCommitment
#field int64 MmTotalCommitLimitMaximum
#field int64 CmNtCSDVersion
#field int64 MmPhysicalMemoryBlock
#field int64 MmSessionBase
#field int64 MmSessionSize
#field int64 MmSystemParentTablePage
#field int64 MmVirtualTranslationBase
#field short OffsetKThreadNextProcessor
#field short OffsetKThreadTeb
#field short OffsetKThreadKernelStack
#field short OffsetKThreadInitialStack
#field short OffsetKThreadApcProcess
#field short OffsetKThreadState
#field short OffsetKThreadBStore
#field short OffsetKThreadBStoreLimit
#field short SizeEProcess
#field short OffsetEprocessPeb
#field short OffsetEprocessParentCID
#field short OffsetEprocessDirectoryTableBase
#field short SizePrcb
#field short OffsetPrcbDpcRoutine
#field short OffsetPrcbCurrentThread
#field short OffsetPrcbMhz
#field short OffsetPrcbCpuType
#field short OffsetPrcbVendorString
#field short OffsetPrcbProcStateContext
#field short OffsetPrcbNumber
#field short SizeEThread
#field byte L1tfHighPhysicalBitIndex
#field byte L1tfSwizzleBitIndex
#field int Padding0
#field int64 KdPrintCircularBufferPtr
#field int64 KdPrintBufferSize
#field int64 KeLoaderBlock
#field short SizePcr
#field short OffsetPcrSelfPcr
#field short OffsetPcrCurrentPrcb
#field short OffsetPcrContainedPrcb
#field short OffsetPcrInitialBStore
#field short OffsetPcrBStoreLimit
#field short OffsetPcrInitialStack
#field short OffsetPcrStackLimit
#field short OffsetPrcbPcrPage
#field short OffsetPrcbProcStateSpecialReg
#field short GdtR0Code
#field short GdtR0Data
#field short GdtR0Pcr
#field short GdtR3Code
#field short GdtR3Data
#field short GdtR3Teb
#field short GdtLdt
#field short GdtTss
#field short Gdt64R3CmCode
#field short Gdt64R3CmTeb
#field int64 IopNumTriageDumpDataBlocks
#field int64 IopTriageDumpDataBlocks
#field int64 VfCrashDataBlock
#field int64 MmBadPagesDetected
#field int64 MmZeroedPageSingleBitErrorsDetected
#field int64 EtwpDebuggerData
#field short OffsetPrcbContext
#field short OffsetPrcbMaxBreakpoints
#field short OffsetPrcbMaxWatchpoints
#field int OffsetKThreadStackLimit
#field int OffsetKThreadStackBase
#field int OffsetKThreadQueueListEntry
#field int OffsetEThreadIrpList
#field short OffsetPrcbIdleThread
#field short OffsetPrcbNormalDpcState
#field short OffsetPrcbDpcStack
#field short OffsetPrcbIsrStack
#field short SizeKDPC_STACK_FRAME
#field short OffsetKPriQueueThreadListHead
#field short OffsetKThreadWaitReason
#field short Padding1
#field int64 PteBase
#field int64 RetpolineStubFunctionTable
#field int RetpolineStubFunctionTableSize
#field int RetpolineStubOffset
#field int RetpolineStubSize
#field short OffsetEProcessMmHotPatchContext
#field int OffsetKThreadShadowStackLimit
#field int OffsetKThreadShadowStackBase
#field int64 ShadowStackEnabled
#field int64 PointerAuthMask
#field short OffsetPrcbExceptionStack
#endstruct
stdim st, KDDEBUGGER_DATA64 ; NSTRUCT 変数を確保
st->KernBase = 100
mes "KernBase=" + st->KernBase