WinDbg

WinDbg
WinDbg
개발자마이크로소프트
안정된 릴리스
10.0.20153.1000 / 2020년 4월 29일 (2020-04-29)
운영 체제Microsoft Windows
유형디버거
면허증.상업의
웹 사이트docs.microsoft.com의 디버깅툴

WinDbg는 Microsoft에서 [1]배포하는 Microsoft Windows 컴퓨터 운영 체제용 다목적 디버거입니다.디버깅시스템의 오류를 찾아 해결하는 과정입니다.컴퓨팅에서는 개발의 보조로서 소프트웨어의 내부 조작을 조사하는 것도 포함됩니다.사용자 모드 응용 프로그램, 장치 드라이버 및 운영 체제 자체를 커널 모드로 디버깅하기 위해 사용할 수 있습니다.

개요

더 잘 알려진 Visual Studio Debugger와 마찬가지로 WinDbg에는 그래픽 사용자 인터페이스(GUI)가 있지만 더 강력하며 다른 공통점이 거의 없습니다.WinDbg는 타깃 환경을 디버깅하기 위한 심볼 트리를 작성하는 데 시간이 걸리는 작업 대신 SymSrv(SymSrv.[2]dll)를 통해 다양한 기준(타임스탬프, CRC, 싱글 또는 멀티프로세서 버전 등)을 일치시킴으로써 서버에서 디버깅 심볼 파일(PDB 파일 등)을 자동으로 로드할 수 있습니다.개인 기호 서버가 구성된 경우 기호를 바이너리의 소스 코드와 연결할 수 있습니다.이렇게 하면 디버깅 호스트에 특정 심볼 버전을 찾아 설치할 필요가 없으므로 디버깅 대상에 다양한 버전의 바이너리가 설치되어 있는 디버깅 문제에 대한 부담을 덜 수 있습니다.Microsoft 에는 Windows 2000 이후의 Windows 버전(서비스 [3]팩 포함)에 대한 대부분의 공용 심볼이 있는 공용 심볼 서버가 있습니다.

WinDbg는 커널 모드 메모리 덤프 디버깅에도 사용할 수 있습니다.이 덤프는 버그체크가 [4]발행되었을 때 발생하는 블루스크린 오브 데스(Blue Screen of Death)라고 불리는 후에 생성됩니다.사용자 모드 크래시 덤프 디버깅에도 사용할 수 있습니다.이를 사후 [5]디버깅이라고 합니다.

WinDbg의 최신 버전은 Windows용 무료 디버깅툴 스위트의 일부로 배포되고 있습니다.이 스위트는 WinDbg와 명령줄 디버거 프론트 엔드(KD, CDB, NTSD 등) 간에 공통 디버깅 백엔드를 공유합니다.대부분의 명령어는 포함된 모든 디버거 프런트 엔드에서 그대로 사용할 수 있습니다.

2017년에 마이크로소프트는 WinDbg Preview(일명 WinDbgX)[6]라는 새로운 버전의 WinDbg를 발표했습니다.WinDbg Preview의 가장 주목할 만한 기능 중 하나는 TTD([7]Time-Travel-Debugging)라고 불리는 것입니다.여기서의 주요 아이디어는 실제 라이브프로세스를 (퍼포먼스 패널티로) 기록하고 나중에 시간을 넘나들면서 디버깅을 할 수 있다는 것입니다.이 기능은 리버스 엔지니어링 프로세스 중에 특히 유용합니다.또한 JavaScript [8]언어로 스크립트를 작성할 수도 있습니다.

내선번호

WinDbg를 사용하면 디버거가 지원하는 명령어를 증강하고 특정 시나리오 디버깅에 도움이 되는 확장[9] DLL을 로드할 수 있습니다.예를 들어 IXMLDOMDocument에서 MSXML 문서를 표시하거나 CLR([10]Common Language Runtime)을 디버깅할 수 있습니다.이러한 확장 기능은 WinDbg를 강력한 디버거로 만드는 것의 큰 부분입니다.WinDbg는 Microsoft Windows 제품팀이 Windows를 구축하는 데 사용되며 Windows 디버깅에 필요한 모든 것이 이러한 확장 DLL에 포함되어 있습니다.

확장 명령어 앞에는 항상 !가 붙습니다.

일부 확장은 Microsoft 내부에서만 사용되지만 대부분은 공용 Debugging Tools for Windows 패키지의 일부입니다.

확장 모델은 Windows용 디버깅툴에 포함된 도움말파일에 기재되어 있습니다.

Ext.dll

Ext는 WinDBG와 함께 제공되는 표준 Windows 디버거 확장으로 기본적으로 로드됩니다.

!syslog 명령어

가장 일반적으로 사용되는 명령어는 !analyze -v [11]입니다.이 명령어는 크래시 또는 행업 시 디버깅되는 프로그램의 현재 상태와 머신/프로세스 상태를 분석합니다.이 명령어는 현재 문제를 완전히 자동화된 방법으로 디버깅할 수 있는 경우가 많습니다.

스위치를 사용하지 않고 사용하면 !analyze는 분석 결과를 반환합니다.-v-vv는 해당 분석에 대한 자세한 내용을 제공합니다.

Wow6432exts.dll

Wow6432exts는 WinDBG와 함께 제공되는 표준 Windows 디버거 확장입니다.WoW64 에서 실행되는 프로세스([12]64비트 Windows에서 실행되는 32비트 프로세스)를 디버깅하기 위해 사용됩니다.

SOS.dll

SOS(Son of Strike)[13] 디버깅 확장(SOS.dll)은 내부 공용 언어 런타임(CLR) 환경에 대한 정보를 제공함으로써 Visual Studio 및 WinDbg에서 관리되는 프로그램의 디버깅을 지원합니다.이 도구를 사용하려면 프로젝트가 관리되지 않는 디버깅을 사용하도록 설정해야 합니다.SOS.dll은 에 자동으로 설치됩니다.NET 프레임워크Visual Studio에서 SOS.dll을 사용하려면 Windows 드라이버 키트(WDK)[14]를 설치합니다.프로세스 또는 메모리 덤프를 디버깅하려면 sos.dll 버전이 일치해야 합니다.NET Framework 버전Psscor2 및 Psscor4는 SOS의 슈퍼셋입니다.

Psscor 2.dll

Psscor2는 디버깅에 사용되는 Windows 디버거 확장입니다.를 사용하는 NET Framework어플리케이션NET CLR 버전 2.0 (.NET Framework 버전2 ~ 3.5 ) 。Psscor2는 제품 지원 서비스 [15]툴의 일부로 Microsoft에서 내부적으로 사용하기 위해 개발되었습니다.Microsoft는 2010년에 Psscor2를 출시했을 뿐이지만, Microsoft는 몇 [17]년 전부터 확장 명령어를 퍼블리싱하고 있었기 때문에 프로세스를 따르려는 사용자에게 어려움을 주고 있습니다.

Psscor4.dll

Psscor4는 디버깅에 사용되는 Windows 디버거 확장입니다.NET Framework 4 어플리케이션

가상 머신과의 결합

WinDbg를 사용하면 VMware, VPC 또는 Parallels에서 가상 머신에서 실행되는 Microsoft Windows 커널을 이름 있는 파이프를 사용하여 디버깅할 수 있습니다.이것은, 가상 COM 포토를 사용해 실현할 수 있습니다.VMware 및 VirtualBox의 경우 VirtualKD 확장에 의해 VM 디버깅에 대한 네이티브 지원이 Windows 커널에 추가되어 디버깅 속도가 최대 [18]45배 향상됩니다.Windows 8 이후에서는 네트워크를 통한 커널 디버깅이 [19]허용되므로 특별한 구성 없이 고속 커널 디버깅이 가능합니다.

프로토콜

WinDbg 프로토콜은 문서화되어 있지 않지만 IDA Proradare2 디스어셈블러에서 지원됩니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ EliotSeattle. "Download the Windows Driver Kit (WDK)". Msdn.microsoft.com. Retrieved 23 April 2018.
  2. ^ "Debugging with Symbols (Windows)". Support.microsoft.com. Retrieved 23 April 2018.
  3. ^ DOMARS. "Microsoft public symbol server". Msdn.microsoft.com. Retrieved 23 April 2018.
  4. ^ "How do I use WinDBG Debugger to troubleshoot a Blue Screen of Death?". TechRepublic. Retrieved 23 April 2018.
  5. ^ "Post-mortem debugging of .NET applications using WinDbg". Tewarid.github.io. 10 September 2010. Retrieved 23 April 2018.
  6. ^ "New WinDbg available in preview! – Debugging Tools for Windows". blogs.msdn.microsoft.com. Retrieved 2019-08-13.
  7. ^ "Leveraging the new WinDbgX and Time-Travel-Trace –Script to list all access to files – Rodney Viana's (MSFT) Blog". blogs.msdn.microsoft.com. Retrieved 2019-08-13.
  8. ^ "Easier WinDbg scripting with Javascript for malware research – Avar 2018". Retrieved 2019-08-13.
  9. ^ DOMARS. ".load, .loadby (Load Extension DLL)". Msdn.microsoft.com. Retrieved 23 April 2018.
  10. ^ "MSDN Magazine Issues". Msdn.microsoft.com. Retrieved 23 April 2018.
  11. ^ DOMARS. "analyze". Msdn.microsoft.com. Retrieved 23 April 2018.
  12. ^ "Debugging WOW64 (Windows)". Msdn.microsoft.com. Retrieved 23 April 2018.
  13. ^ "SOS Debugging of the CLR, Part 1". Blogs.msdn.com. Archived from the original on 28 July 2010. Retrieved 23 April 2018.
  14. ^ mairaw. "SOS.dll (SOS Debugging Extension)". Msdn.microsoft.com. Retrieved 23 April 2018.
  15. ^ "New debugger extension for .NET (PSSCOR2)". Blogs.msdn.com. Retrieved 23 April 2018.
  16. ^ "New debugger extension for .NET, Psscor2, released". Blogs.msdn.com. Retrieved 23 April 2018.
  17. ^ "MSDN Magazine Issues". Msdn.microsoft.com. Retrieved 23 April 2018.
  18. ^ "VirtualKD - Windows Kernel Debugger Booster for Virtual Machines". Virtualkd.sysprogs.org. Retrieved 23 April 2018.
  19. ^ DOMARS. "Setting Up Kernel-Mode Debugging over a Network Cable Manually". Msdn.microsoft.com. Retrieved 23 April 2018.

외부 링크