WinDbg: Microsoft Windows жүйесі үшін қуатты түзету құралы
WinDbg
WinDbg – Microsoft Windows жүйесі үшін қуатты дебаггер. Қателерді табу, түзету, жүйені зерделеуге көмектеседі. User mode, драйверлерді, ядроны дебагтауға арналған.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
WinDbg – Microsoft Windows компьютерлік операциялық жүйесі үшін көп мақсатты жөндеу құралы, Microsoft тарапынан таратылады. Жөндеу – жүйедегі қателерді анықтап, жою процесі; компьютерлік технологияда бұл бағдарламалық қамтамасының ішкі жұмысын зерттеуді де қамтиды, бұл дамуға көмектеседі. Оны пайдаланушы режиміндегі бағдарламаларды, құрылғы драйверлерін және ядролық режимдегі операциялық жүйенің өзін жөндеу үшін қолдануға болады.
WinDbg is a multipurpose debugger for the Microsoft Windows computer operating system, distributed by Microsoft. Debugging is the process of finding and resolving errors in a system; in computing it also includes exploring the internal operation of software as a help to development. It can be used to debug user mode applications, device drivers, and the operating system itself in kernel mode.
Шолу
Visual Studio Debugger сияқты WinDbg графикалық пайдаланушы интерфейсіне (GUI) ие, бірақ ол одан да қуаттырақ және көп ортақ ештеңесі жоқ. WinDbg серверден жөндеу символ файлдарын (мысалы, PDB файлдары) автоматты түрде жүктей алады, орындалатын файлға енгізілген бірегей идентификаторды (RSDS Guid-ты пайдаланып) SymSrv (SymSrv.dll) арқылы қолданады, бұл пайдаланушылардан файлдарды қолмен іздеуді қажет етпейді. Егер жеке символ сервері конфигурацияланған болса, символдар бинарлық кодтың бастапқы кодымен сәйкестендіріледі. Бұл жөндеу нысанына орнатылған бинарлық файлдардың әртүрлі нұсқалары бар мәселелерді жеңілдетеді, себебі жөндеу хостында нақты символ нұсқасын табу және орнату қажеттілігін жояды. Microsoft-тың Windows 2000 және одан кейінгі Windows нұсқалары үшін (сервис-пакеттерді қоса алғанда) көптеген қоғамдық символдары бар ашық символ сервері бар. WinDbg ядролық режимдегі жад құймаларын жөндеу үшін де қолданылуы мүмкін, олар әдетте «өлімнің көк экраны» деп аталатын қателіктерді тексеру кезінде туындайды. Одан әрі, ол пайдаланушы режиміндегі апатты құтқару құймаларын жөндеу үшін де қолданылады, бұл өлімнен кейінгі жөндеу деп аталады. WinDbg-дің соңғы нұсқалары Windows-қа арналған тегін жөндеу құралдары жиынтығының бөлігі ретінде таратылады және таратылуда, ол WinDbg және KD, CDB және NTSD сияқты командалық жол жөндеушілерінің алдыңғы бөліктері арасында ортақ жөндеу ядросын бөліседі. Көптеген командаларды барлық қосылған жөндеуші алдыңғы бөліктерімен өзгеріссіз пайдалануға болады. 2017 жылы Microsoft WinDbg-дің жаңа нұсқасын – WinDbg Preview (немесе WinDbgX) деп жариялады. WinDbg Preview-дің ең маңызды мүмкіндіктерінің бірі – уақыт саяхатымен жөндеу (TTD). Бұл идеяның мәні – пайдаланушы нақты тірі процесті (тиімділіктің төмендеуімен) кейіннен уақыт бойынша алға-артқа жылжу арқылы жөндеу үшін жаза алады. Бұл мүмкіндік кері инженерия процесінде ерекше пайдалы. Сонымен қатар, ол JavaScript тілінде сценарийлерді жазуға мүмкіндік береді.
Like the better known Visual Studio Debugger WinDbg has a graphical user interface (GUI), but is more powerful and has little else in common. WinDbg can automatically load debugging symbol files (e. g., PDB files) from a server by using a unique ID embedded in the executable (using the "RSDS Guid") via SymSrv (SymSrv. dll), instead of requiring users to manually find the files. If a private symbol server is configured, the symbols can be correlated with the source code for the binary. This eases the burden of debugging problems that have various versions of binaries installed on the debugging target by eliminating the need for finding and installing specific symbols version on the debug host. Microsoft has a public symbol server that has most of the public symbols for Windows 2000 and later versions of Windows (including service packs). WinDbg can also be used for debugging kernel mode memory dumps, created after what is commonly called the Blue Screen of Death which occurs when a bug check is issued. It can also be used to debug user mode crash dumps. This is known as post mortem debugging. Recent versions of WinDbg have been and are being distributed as part of the free Debugging Tools for Windows suite, which shares a common debugging back end between WinDbg and command line debugger front ends like KD, CDB, and NTSD. Most commands can be used as is with all the included debugger front ends. In 2017 Microsoft announced new version of WinDbg called WinDbg Preview (aka WinDbgX). One of the most notable features of WinDbg Preview is so called Time Travel Debugging (TTD). The main idea here is that the user can record an actual live process (at a performance penalty) to later debug going back and forth in time. This feature is especially useful during reverse engineering process. It also allows writing scripts in JavaScript language.
Ұзартулар
WinDbg кеңейтім DLL-дерін жүктеуге мүмкіндік береді, олар жөндеу құралының қолдау көрсетілетін командаларын кеңейтеді және нақты жағдайларды жөндеуге көмектеседі: мысалы, IXMLDOMDocument арқылы MSXML құжатын көрсету немесе Common Language Runtime (CLR) жөндеу. Осы кеңейтімдер WinDbg-ді осыншалықты қуатты жөндеу құралы ететін маңызды бөліктердің бірі болып табылады. Microsoft Windows өнімдері тобы Windows-ты құру үшін WinDbg-ді пайдаланады, ал Windows-ты жөндеу үшін қажеттінің бәрі осы кеңейтім DLL-дерінде қамтылған. Кеңейтім командалары әрқашан ! белгісімен басталады. Кейбір кеңейтімдер тек Microsoft ішінде қолданылса, көпшілігі Windows үшін арналған Debugging Tools жинатымының құрамында болады. Кеңейтім моделі Windows үшін арналған жөндеу құралдарымен бірге келген анықтамалық файлында сипатталған.
WinDbg allows the loading of extension DLLs that can augment the debugger's supported commands and allow for help in debugging specific scenarios: for example, displaying an MSXML document given an IXMLDOMDocument, or debugging the Common Language Runtime (CLR). These extensions are a large part of what makes WinDbg such a powerful debugger. WinDbg is used by the Microsoft Windows product team to build Windows, and everything needed to debug Windows is included in these extension DLLs. Extension commands are always prefixed with !. While some extensions are used only inside Microsoft, most of them are part of the public Debugging Tools for Windows package. The extension model is documented in the help file included with the Debugging Tools for Windows.
Ext.dll
Ext — WinDBG құрамына енгізілген және автоматты түрде жүктелетін стандартты Windows отладкашысының кеңейтімдері.
Ext is a standard Windows Debugger extension that ships with WinDBG and is loaded by default.
! команданы талдау
Ең көп қолданылатын команда — !analyze v, ол қатесіз жұмыс істемейтін бағдарламаның ағымдағы күйін және құлау немесе тоқтау кезіндегі машинаның/процестің күйін талдайды. Бұл команда көбінесе ағымдағы мәселені толық автоматты түрде шеше алады. Ешқандай параметрлерсіз қолданылғанда !analyze талдау нәтижелерін ғана қайтарады. v және vv осы талдау туралы толықрақ мәлімет береді.
The most commonly used command is !analyze v, which analyzes the current state of the program being debugged and the machine/process state at the moment of crash or hang. This command is often able to debug the current problem in a completely automated fashion. When used without any switches, !analyze simply returns the results of its analysis. The v and vv give further details about that analysis.
Wow6432exts.dll файлы
Wow6432exts – WinDBG құралымен бірге келетін стандартты Windows отладчик кеңейтімі. Ол WoW64-те (64-бит Windows жүйесінде іске қосылған 32-бит процестерде) жұмыс істейтін процестерді отладкалау үшін пайдаланылады.
Wow6432exts is a standard Windows Debugger extension that ships with WinDBG. It is used to debug processes running inside WoW64 (32 bit processes running in 64 bit Windows).
SOS.dll
SOS (Страйк ұлы) қателерді жою кеңейтуі (SOS.dll) Visual Studio және WinDbg-да басқарылатын бағдарламаларды жөндеуге көмектеседі, ортақ тілдің (CLR) орындалу уақытының ішкі құрылымы туралы ақпарат ұсынады. Бұл құрал жобада басқарылмаған қателерді жою мүмкіндігі қосулы болуын қажет етеді. SOS.dll .NET Framework-пен бірге автоматты түрде орнатылады. Visual Studio-да SOS.dll пайдалану үшін Windows драйверлер жиынтығын (WDK) орнатыңыз. Процесті немесе жад төгілімін жөндеу үшін sos.dll нұсқасы .NET Framework нұсқасына сәйкес болуы керек. Psscor2 және Psscor4 – SOS-тің кеңейтілген нұсқалары.
The SOS (Son of Strike) Debugging Extension (SOS. dll) assists in debugging managed programs in Visual Studio and WinDbg by providing information about the internal common language runtime (CLR) environment. This tool requires a project to have unmanaged debugging enabled. SOS. dll is automatically installed with the NET Framework. To use SOS. dll in Visual Studio, install the Windows Driver Kit (WDK). To debug a process or memory dump, the sos. dll version must match the NET Framework version. Psscor2 and Psscor4 are a superset of SOS.
Psscor2.dll
Psscor2 – NET CLR 2.0 нұсқасын пайдаланатын .NET Framework бағдарламаларын жөндеуге арналған Windows Debugger Extension. Бұл .NET Framework 2-ден 3.5 нұсқаларына қатысты. Psscor2 Microsoft компаниясының Өнімді қолдау қызметтерінің құралы ретінде ішкі пайдалану үшін әзірленген. Microsoft Psscor2-ні 2010 жылы ғана жарияласа да, оған дейін бірнеше жыл бойы кеңейтуден командаларды жариялап, осы процестерді орындауға тырысқандарға қиындық туғызды.
Psscor2 is the Windows Debugger Extension used to debug NET Framework applications that use the NET CLR version 2.0 (. NET Framework versions 2 through 3.5). Psscor2 was developed for internal use at Microsoft as part of their Product Support Services tools. While Microsoft only released Psscor2 in 2010 Microsoft had been publishing commands from the extension several years before, causing difficulty for those who were trying to follow their processes.
Psscor4.dll
Psscor4 — NET Framework 4 қолданбаларын түзетуге арналған Windows Debugger кеңейтімi.
Psscor4 is a Windows Debugger extension used to debug NET Framework 4 applications.
Виртуалды машиналармен біріктіру
WinDbg VMware, VPC немесе Parallels-те іске қосылған Microsoft Windows ядросын атаулы түтік арқылы қателерді жоюға мүмкіндік береді. Бұл виртуалды COM портын пайдалану арқылы іске асырылады. VMware және VirtualBox жағдайында VirtualKD кеңейтім Windows ядросына VM қателерді жоюға арналған түпкілікті қолдауды қосады, бұл қателерді жою жылдамдығын 45 есеге дейін арттыруға мүмкіндік береді. Windows 8 және одан кейінгі нұсқаларында желі арқылы ядроны қателерді жоюға рұқсат етіледі, бұл ерекше конфигурациясыз жылдам ядроны қателерді жоюға мүмкіндік береді.
WinDbg allows debugging a Microsoft Windows kernel running on a virtual machine by VMware, VPC or Parallels using a named pipe. This can be achieved by using a virtual COM port. In the case of VMware and VirtualBox, the VirtualKD extension adds native support for VM debugging to the Windows kernel, claiming to speed debugging by a factor of up to 45. For Windows 8 and later, kernel debugging over network is allowed, allowing fast kernel debugging without special configuration.
Хаттама
WinDbg протоколы құжатталмаған, бірақ IDA Pro және radare2 декомпиляторлары қолдайды.
The WinDbg protocol is not documented, but is supported by the IDA Pro and radare2 disassemblers.