typedef struct _WINDBG_EXTENSION_APIS { ULONG nSize; PWINDBG_OUTPUT_ROUTINE lpOutputRoutine; PWINDBG_GET_EXPRESSION lpGetExpressionRoutine; PWINDBG_GET_SYMBOL lpGetSymbolRoutine; PWINDBG_DISASM lpDisasmRoutine; PWINDBG_CHECK_CONTROL_C lpCheckControlCRoutine; PWINDBG_READ_PROCESS_MEMORY_ROUTINE lpReadProcessMemoryRoutine; PWINDBG_WRITE_PROCESS_MEMORY_ROUTINE lpWriteProcessMemoryRoutine; PWINDBG_GET_THREAD_CONTEXT_ROUTINE lpGetThreadContextRoutine; PWINDBG_SET_THREAD_CONTEXT_ROUTINE lpSetThreadContextRoutine; PWINDBG_IOCTL_ROUTINE lpIoctlRoutine; PWINDBG_STACKTRACE_ROUTINE lpStackTraceRoutine; } WINDBG_EXTENSION_APIS, *PWINDBG_EXTENSION_APIS; .text:0009BFAB sub_9BFAB proc near ; CODE XREF: sub_9CA46+13p .text:0009BFAB .text:0009BFAB arg_0 = dword ptr 4 .text:0009BFAB .text:0009BFAB 000 push esi .text:0009BFAC 004 push offset aWindbgextens_0 ; "WinDbgExtensionDllInit" .text:0009BFB1 008 push [esp+8+arg_0] ; int .text:0009BFB5 00C call get_function .text:0009BFB5 .text:0009BFBA 004 mov esi, eax .text:0009BFBC 004 test esi, esi .text:0009BFBE 004 jz short loc_9BFF0 .text:0009BFBE .text:0009BFC0 004 push esi .text:0009BFC1 008 push offset aNticeFoundWind ; "NTICE: Found WinDbgExtensionDllInit at "... .text:0009BFC6 00C call sub_7470E .text:0009BFC6 .text:0009BFCB 00C movzx eax, word ptr ds:NtBuildNumber .text:0009BFD2 00C pop ecx .text:0009BFD3 008 pop ecx .text:0009BFD4 004 push eax .text:0009BFD5 008 mov ax, word_176E90 .text:0009BFDB 008 neg ax .text:0009BFDE 008 sbb eax, eax .text:0009BFE0 008 and eax, 0FFFFFFFDh .text:0009BFE3 008 add eax, 0Fh .text:0009BFE6 008 push eax .text:0009BFE7 00C push offset ExtensionApis .text:0009BFEC 010 call esi ; WinDbgExtensionDllInit .data:0016B08C ExtensionApis WINDBG_EXTENSION_APIS <30h, offset sprintf_dumb_canary_check, \ .data:0016B08C ; DATA XREF: sub_9BFAB+3Co .data:0016B08C offset sub_A023E, offset sub_A031A, \ .data:0016B08C offset sub_A03B2, offset sub_A0456, \ .data:0016B08C offset sub_A045C, offset sub_A049C, \ .data:0016B08C offset sub_A0A09, offset sub_A0B89, \ .data:0016B08C offset sub_A0E5C, offset sub_A050A>