WDBGARK는 Windows 용 Microsoft 디버깅 도구를위한 확장 (동적 라이브러리)입니다. 주요 목적은 커널 디버거를 사용하여 Windows 커널에서 이상을보고 분석하는 것입니다. 다양한 시스템 콜백, 시스템 테이블, 객체 유형 등을 볼 수 있습니다. 보다 사용자 친화적 인 View Extension은 DML을 사용합니다. 대부분의 경우 커널 모드 연결이 필요합니다. 라이브 커널 모드 디버깅 또는 커널 모드 충돌 덤프 분석과 함께 확장을 사용하십시오 (일부 명령은 작동하지 않습니다). 공개 기호가 필요하므로이를 사용하고, 다시로드하고, 체크섬 문제를 무시하고, 분석하기 전에 준비하면 행복 할 것입니다.
여러 대상 디버깅이 지원되지 않습니다!
Windows Beta/RC는 디자인별로 지원되지만 몇 가지 메모를 읽으십시오. 첫째, 나는 점검 된 빌드에 신경 쓰지 않습니다. 둘째, 상징 (공개 또는 개인)이 없더라도 상관 없습니다. IA64/ARM은 지원되지 않습니다.
소스는 Visual Studio 2017 솔루션으로 구성됩니다.
빌드 후 이벤트는 디버그 빌드에 활성화되어 있습니다. 링크 된 Extension을 WINDBG의 플러그인 폴더에 자동으로 복사합니다 (예 : X64 Target :
"copy /B /Y "$(OutDir)$(TargetName)$(TargetExt)" "$(WindowsSdkDir)Debuggersx64winext$(TargetName)$(TargetExt)"
더 이상 사용되지 않았습니다.
예, 간단한 배치 스크립트를 사용하여 모든 물건을 만들 수 있습니다.
C:Program Files (x86)Windows Kits10Debuggersx64winextC:Program Files (x86)Windows Kits10Debuggersx86winext 0: kd> .load wdbgark
0: kd> .chain
Extension DLL search Path:
<...>
Extension DLL chain:
wdbgark: image 2.5.0.0, API 2.5.0, built Fri Oct 20 17:54:03 2017
[path: C:Program Files (x86)Windows Kits10Debuggersx64winextwdbgark.dll]
dbghelp: image 10.0.16299.15, API 10.0.6,
[path: C:Program Files (x86)Windows Kits10Debuggersx64dbghelp.dll]
ext: image 10.0.16299.15, API 1.0.0,
[path: C:Program Files (x86)Windows Kits10Debuggersx64winextext.dll]
exts: image 10.0.16299.15, API 1.0.0,
[path: C:Program Files (x86)Windows Kits10Debuggersx64WINXPexts.dll]
kext: image 10.0.16299.15, API 1.0.0,
[path: C:Program Files (x86)Windows Kits10Debuggersx64winextkext.dll]
kdexts: image 10.0.16299.15, API 1.0.0,
[path: C:Program Files (x86)Windows Kits10Debuggersx64WINXPkdexts.dll]
0: kd> !wdbgark.help
Commands for C:Program Files (x86)Windows Kits10Debuggersx64winextwdbgark.dll:
!help - Displays information on available extension commands
!wa_apiset - Output user-mode and/or kernel-mode ApiSet map
!wa_callouts - Output kernel-mode win32k callouts
!wa_checkmsr - Output system MSRs (live debug only!)
!wa_chknirvana - Checks processes for Hooking Nirvana instrumentation
!wa_cicallbacks - Output kernel-mode nt!g_CiCallbacks or nt!SeCiCallbacks
!wa_ciinfo - Output Code Integrity information
!wa_colorize - Adjust WinDBG colors dynamically (prints info with no
parameters)
!wa_crashdmpcall - Output kernel-mode nt!CrashdmpCallTable
!wa_drvmajor - Output driver(s) major table
!wa_eop - Checks processes for Elevation of Privilege
!wa_gdt - Output processors GDT
!wa_haltables - Output kernel-mode HAL tables: nt!HalDispatchTable,
nt!HalPrivateDispatchTable, nt!HalIommuDispatchTable
!wa_idt - Output processors IDT
!wa_lxsdt - Output the Linux Subsystem Service Descriptor Table
!wa_objtype - Output kernel-mode object type(s)
!wa_objtypecb - Output kernel-mode callbacks registered with
ObRegisterCallbacks
!wa_objtypeidx - Output kernel-mode nt!ObTypeIndexTable
!wa_pnptable - Output kernel-mode nt!PlugPlayHandlerTable
!wa_process_anomaly - Checks processes for various anomalies
!wa_psppico - Output kernel-mode Pico tables
!wa_scan - Scan system (execute all commands)
!wa_ssdt - Output the System Service Descriptor Table
!wa_systables - Output various kernel-mode system tables
!wa_systemcb - Output kernel-mode registered callback(s)
!wa_ver - Shows extension version number
!wa_w32psdt - Output the Win32k Service Descriptor Table
!wa_w32psdtflt - Output the Win32k Service Descriptor Table Filter
!wdrce_copyfile - Copy file (live debug only!)
!wdrce_cpuid - Execute CPUID instruction (live debug only!)
!help <cmd> will give more information for a particular command
Q : 확장의 주요 목적은 무엇입니까?
A : 글쎄, 먼저 교육 일뿐입니다. 둘째, 재미와 이익을 위해.
Q : PYKD에 대해 알고 있습니까? 파이썬을 사용하여 전체 뿌리 방지를 스크립트 할 수 있습니다.
A : 네, 알고 있지만 C ++가 훨씬 낫습니다.
Q : 버전 1.0은 어디에 있습니까?
A : Google 코드의 공간에서 손실되었습니다.
Q : 프로젝트는 언제 시작 되었습니까?
A : 2013 년 2 월 Google 코드.
Q : 어떤 버전을 사용해야합니까?
A : X64 버전 만 사용하십시오. x64의 시대에는 왜 도대체 x86 버전을 사용해야하는지 모르겠습니다. X64 WINDBG는 X86과 X64를 모두 디버깅 할 수 있습니다. 호스트 OS 비트가 유일한 제한입니다.
Q : 어떻게 도와 드릴까요?
A : 단어를 전하십시오. 문제 및 기능 요청을보고합니다. 나는 어떤 제안이든 열려 있습니다. 감사해요!
Q : 확장자와 함께 사용하는 것이 어떤 종류의 메모리 덤프입니까?
A : 메모리 덤프를 완료하십시오.
Q : 문제를보고하는 방법?
A : Github 또는 이메일을 사용하여 직접 문제를보고 해 자유롭게보고하십시오. 그러나 완전한 메모리 충돌 덤프 파일을 첨부하십시오.
위키가 도울 수 있습니다.
이 소프트웨어는 GNU GPL V3 라이센스에 따라 해제됩니다. 전체 라이센스 텍스트 와이 작은 추가는 복사 파일을 참조하십시오.