Сейчас на форуме: -Sanchez- (+8 невидимых) |
eXeL@B —› Основной форум —› Использование WinDbg |
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . >> |
Посл.ответ | Сообщение |
|
Создано: 02 марта 2011 12:29 · Поправил: DenCoder · Личное сообщение · #1 Странно - топики с вопросами по использованию Ida, Syser есть, а по использованию WinDbg нет. Понимаю, что он более менее документирован, но в его документации черт ногу сломит и в его статьях нередко нет перекрестных ссылок. Хотя сами вопросы были в других темах... Предлагаю здесь задавать вопросы по использованию отладчика WinDbg. Собственно, я первый вопрос задам: Возникла задача, суть которой проверить предположение, что р0-файловый монитор(драйвер) отлавливает все обращения к файлу, выполняет некоторые проверки, и если условия выполняются, то передает команду (возможных схем много) р3-службе(процессу), в следствие которой эта служба открывает тот же файл. Многочисленные поиски по chm-файлу и переносы ссылок во вкладки ie, bp <адрес инструкции обращения к сервису ZwCreateFile> "dd /c 1 @esp + 8 L1; dt nt!_OBJECT_ATTRIBUTES ObjectName @@masm($p); bp /1 /p <EPROCESS службы> nt!ZwCreateFile \"dd /c 1 @esp + 0xC L1; dt nt!_OBJECT_ATTRIBUTES ObjectName @@masm($p)\"; g" Команда установки точек останова еще будет улучшаться, суть не в этом! Использование псевдорегистра $p, который дает последний вывод команд d*- тормозит весь процесс на секунду-две. В итоге составная команда dd /c 1 @esp + 8 L1; dt nt!_OBJECT_ATTRIBUTES ObjectName @@masm($p); - не лучший способ достижения описанной цели. Вопрос: можно ли заменить более быстрым аналогом в WinDbg ? ----- IZ.RU | Сообщение посчитали полезным: stereo2013 |
|
Создано: 12 апреля 2015 20:35 · Личное сообщение · #2 artkar Т.к. не было дополнительных сведений о том, в чем конкретно проблема(команды, вывод), предположу, что поможет | Сообщение посчитали полезным: artkar |
|
Создано: 07 июля 2015 20:39 · Личное сообщение · #3 Кто-нибудь пробовал отлаживать Windows 2000 using WinDbg on VMWare? vmware workstation - 8.0.0 build-471780 windbg - 6.12.2.633 Host: Windows 7 Professional, 64-bit 6.1.7601, Service Pack 1 Guest: Windows 5.0 Build 2195 SP4 "C:\Program Files (x86)\Debugging Tools for Windows\windbg" -b -k com:pipe,port=\.\pipe\com_1,resets=0 Результат: Microsoft (R) Windows Debugger Version 6.12.0002.633 X86 Copyright (c) Microsoft Corporation. All rights reserved. Opened \.\pipe\com_1 Waiting to reconnect... В то же время к Windows 2003 Server windbg присоединяется без проблем на той же машине (физической и виртуальной). Так что вопрос: возможно ли это даже теоретически? Заранее спасибо! ----- Give me a HANDLE and I will move the Earth. |
|
Создано: 08 июля 2015 08:26 · Поправил: DenCoder · Личное сообщение · #4 plutos А Local Kernel Debugging воркает? (для теста) plutos пишет: Так что вопрос: возможно ли это даже теоретически? Многие утверждают, что да. Но сам не пробовал. plutos пишет: windbg - 6.12.2.633 Попробуй Проверь В помощь по 2000 Ну, кажется, Code:
Что-то подобное у меня с XP было, 7 часов подряд не могло до меня дойти, что надо порт переименовать )) P.S. В 2007 году некие "программисты" 1С, обучавшие своему искусству(установка/обновление), готовящих преемников, бредили, что винды лучше 2000 нет ----- IZ.RU | Сообщение посчитали полезным: plutos |
|
Создано: 08 июля 2015 18:08 · Поправил: plutos · Личное сообщение · #5 |
|
Создано: 05 августа 2015 18:51 · Поправил: plutos · Личное сообщение · #6 Пытаюсь вникнуть в детали Windows XP's and 2003's NTLDR startup процесса. На Hex Blog нашел описание сценария IDA + Bochs plugin. А вот для связки VMware + WinDbg как-то ничего толкового не удалось накопать. Вот здесь: http://reboot.pro/topic/13188-debugging-ntldr/ описывается ситуация с использованием WinDbg + QEmu virtual machine. Есть также статья про недокументированый /DEBUGBREAK flag (breaks into the debugger immediately after it is initialized, allowing you to single-step through the rest of the boot process.) Но мне как-то не очень хочется устанавливать еще одну виртуальную машину (QEmu), а вариант с /DEBUGBREAK пока оставил про запас. Bопрос: кто-нибудь пробовал отлаживать NTLDR startup процесс используя именно VMware + WinDbg? ----- Give me a HANDLE and I will move the Earth. |
|
Создано: 05 августа 2015 19:04 · Поправил: reversecode · Личное сообщение · #7 imho оно не будет отлаживать ntldr потому что работает через ком порт который активирует сам ntldr, часть кода по активации потомоему была в нем самом, часть в ядре винды, поэтому максимум провалишься на загрузке драйверов в целом оно стартует только когда уже выбираешь из бутпромт меню загрузку самой оси нужно в cpu брякаться, а это windbg+wmware помоему не умеет, оно проваливается только в эмулированую систему где ком порт настроен Добавлено спустя 3 минуты да бош нормально должен сработать главное правильно понять что у него есть два режима 1) эмуляция x86 с любого места кода 2) виртуальная машина где управление идет прямо к cpu, тогда можно и ntldr отладить | Сообщение посчитали полезным: plutos |
|
Создано: 19 января 2016 01:12 · Поправил: plutos · Личное сообщение · #8 Исходные данные, хотя они наверное и не нужны в данном случае: vmware workstation - 8.0.0 build-471780 windbg - 6.12.2.633 Host: Windows 7 Professional, 64-bit 6.1.7601, Service Pack 1 Guest: Windows 2003 Server Boot into WRK и вижу, что единственный loaded module: start end module name 80800000 80a42000 nt (private pdb symbols) C:\...\WindowsResearchKernel-WRK\WRK-v1.2\base\ntos\BUILD\EXE\wrkx86.pdb CompanyName: Microsoft Corporation ProductName: Microsoft® Windows® Academic Operating System (WRK) InternalName: ntkrnlmp.exe OriginalFilename: ntkrnlmp.exe Если пытаюсь Open Executable или Attach To Process - эти опции недоступны (not active in the File manu) Собственно вопрос: при использовании WRK, debug никакие другие процессы user mode невозможно? А если возможно, то как именно? Хотя дело собственно не в user-mode process debugging. user-mode process мне нужен для того, чтобы из него вызвать DebugActiveProcess(IN DWORD dwProcessId), которая постепенно привела бы меня внутрь kernel'a. Поскольку Windows Research Kernel дает полный source code dbgkobj.c, dbgkport.c, dbgkproc.c, то я смог бы пройти через все вызовы и посмотреть изнутри на работу системы. Может быть в WinDbg есть способ как-нибудь иначе выходить на breakpoints внутри kernel'a, минуя систему вызовов? ----- Give me a HANDLE and I will move the Earth. |
|
Создано: 19 января 2016 12:39 · Личное сообщение · #9 Никогда не пользовался WRK. Мне думалось, что он больше подходит для изучения. О том, что из него ядро можно скомпилить, и что оно будет полноценно выполнять те же функции, и не предполагал даже... Но по идее принципы должны быть те же, как и при дебаге обычного ядра: в kernel mode debugging не будут доступны опции user mode debugging. Вместо этого по мере загрузки и инициализации винды, и после полной загрузки, к нужному процессу можно подцепиться командой .process. Первый пользовательский процесс - smss.exe, критичный, без gui. К нему тоже можно подцепиться. Но если у тебя только один единственный модуль ядра видно и при полной загрузке, то это странно... Такое видел только при старте загрузки винды(не WRK, конечно). Может, ты на этом этапе и находишься? )) Что даёт Code:
----- IZ.RU | Сообщение посчитали полезным: plutos |
|
Создано: 19 января 2016 20:13 · Личное сообщение · #10 Уважаемый DenCoder! Спасибо за ответ! В общем и целом Вы подтолкнули меня в нужном направлении. Я теперь понял куда копать. Если Вам интересно, то поделюсь результами "раскопок". А вообще WRK очень классная штука. Компеллируем свой kernel и получаем как бы самостоятельную ОС: Microsoft® Windows® Academic Operating System (WRK)! ----- Give me a HANDLE and I will move the Earth. |
|
Создано: 20 января 2016 14:32 · Поправил: DenCoder · Личное сообщение · #11 plutos А в общем и целом уже 11 лет назад вычитал фразу в книге Румянцева, которой ни разу не пользовался - RTFM У WinDbg есть своя chm-справка, где по Debuggers -> Debugger Reference -> Debugger Commands -> ... можно получить необходимую базу. Chm неудобен в навигации, нет дополнительных вкладок... Но есть старый ослик, который понимает chm-урлы. Ну а может есть и продвинутый chm-ридер ) Добавлено спустя 1 минуту И, кстати, да -кто поставил MSDN локально, у того он есть ) Добавлено спустя 7 минут plutos пишет: Если Вам интересно, то поделюсь результами "раскопок" Интересно может быть не только мне. Есть желание - делитесь. А то использовать WinDbg бывает геморно, какие-то секреты могли бы многим помочь. ) ----- IZ.RU |
|
Создано: 21 января 2016 00:43 · Личное сообщение · #12 DenCoder пишет: 11 лет назад вычитал фразу в книге Румянцева, которой ни разу не пользовался - RTFM У WinDbg есть своя chm-справка, где по Debuggers -> Debugger Reference -> Debugger Commands -> ... Не совсем понял при чем тут Read the Fucking (WinDbg ?) Manual (RTFM). Справку по WinDbg я могу пересказать "близко к тексту". Вопрос мой, хоть он и появился в ветке, посвященой WinDbg, вовсе не об этом debugger'e. Мой вопрос: почему WRK не грузит другие модули? Похоже, что я почти ответил на него, но хочу убедится, что мой ответ правильный и тогда помещу его здесь для тех, кому интересно. ----- Give me a HANDLE and I will move the Earth. |
|
Создано: 21 января 2016 15:19 · Личное сообщение · #13 plutos пишет: Не совсем понял при чем тут Read the Fucking (WinDbg ?) Manual (RTFM). Сорри! Вы не поясняете ход Ваших мыслей, потому подумалось... plutos пишет: Мой вопрос: почему WRK не грузит другие модули? То есть под WRK не грузится винда? Или WRK по каким-то причинам не выдаёт дебаггеру модули? ----- IZ.RU |
|
Создано: 22 января 2016 03:25 · Личное сообщение · #14 DenCoder пишет: То есть под WRK не грузится винда? Или WRK по каким-то причинам не выдаёт дебаггеру модули? Теперь моя очередь сказать "Sorry!". Все модули и процессы на месте как обычно, wrk тут ни при чем. Просто я тормозил процесс загрузки слишком рано из-за непонимания одного ньюанса. Сегодня помучался и кое-что прояснилось. Продолжение следует. ----- Give me a HANDLE and I will move the Earth. |
|
Создано: 12 февраля 2016 03:33 · Поправил: plutos · Личное сообщение · #15 Коротко говоря, сам запутался и запутал всех, кто читал мое сообщение номер #8. Я пытался debug user-mode process from kernel mode debugger in WinDbg. У меня не получалось и я думал, что вся загвоздка в WRK. Но WRK тут совершенно ни при чем. Все оказалось гораздо проще и подробно описано здесь: https://www.osronline.com/article.cfm?article=576. Так что, кому интересно, найдет там все, что нужно для моего сценария. ----- Give me a HANDLE and I will move the Earth. |
|
Создано: 15 марта 2016 03:08 · Личное сообщение · #16 Исходные данные: vmware workstation - 8.0.0 build-471780 windbg - 6.12.2.633 Host: Windows 7 Professional, 64-bit 6.1.7601, Service Pack 1 Guest: Windows 2003 Server Присоединяюсь к user-mode процессу на Windows 2003 Server (.process /i), все хорошо, пока я в своем коде, а когда из него хочу зайти в kernel32!DebugActiveProcess, то получаю No prior disassembly possible kernel32!DebugActiveProcess: 001b:7c82ade3 ?? ??? 001b:7c82ade4 ?? ??? 001b:7c82ade5 ?? ??? 001b:7c82ade6 ?? ??? 001b:7c82ade7 ?? ??? 001b:7c82ade8 ?? ??? 001b:7c82ade9 ?? ??? 001b:7c82adea ?? ??? Все символы загружены: kd> .reload /f @"kernel32.dll" DBGHELP: kernel32 - public symbols c:\websymbols\kernel32.pdb\488CB2D82D0144C8BA7E08E8EA2C19481\kernel32.pdb kd> ? $scopeip Evaluate expression: 2088938979 = 7c82ade3 Вот еще на всякий случай: kd> version Windows Server 2003 Kernel Version 3800 (Service Pack 1) MP (1 procs) Free x86 compatible Product: Server, suite: Enterprise TerminalServer SingleUserTS Built by: 3800.WRKP1.2(daveprobert) Machine Name: Kernel base = 0x80800000 PsLoadedModuleList = 0x808a0398 Debug session time: Mon Mar 14 15:32:57.701 2016 (UTC - 5:00) System Uptime: 0 days 0:12:18.656 Remote KD: KdSrv:Server=@{<Local>},Trans=@{COM:Port=\.\pipe\com_1,Baud=19200,Pipe,Timeout=4000} Microsoft (R) Windows Debugger Version 6.12.0002.633 X86 Copyright (c) Microsoft Corporation. All rights reserved. command line: '"C:\Program Files (x86)\Debugging Tools for Windows\windbg" -b -k com:pipe,port=\.\pipe\com_1,resets=0' Debugger Process 0x2F20 dbgeng: image 6.12.0002.633, built Mon Feb 01 14:08:31 2010 [path: C:\Program Files (x86)\Debugging Tools for Windows\dbgeng.dll] dbghelp: image 6.12.0002.633, built Mon Feb 01 14:08:26 2010 [path: C:\Program Files (x86)\Debugging Tools for Windows\dbghelp.dll] DIA version: 20921 Extension DLL search Path: C:\Program Files (x86)\Debugging Tools for Windows\WINXP; ............... Extension DLL chain: dbghelp: image 6.12.0002.633, API 6.1.6, built Mon Feb 01 14:08:26 2010 [path: C:\Program Files (x86)\Debugging Tools for Windows\dbghelp.dll] ext: image 6.12.0002.633, API 1.0.0, built Mon Feb 01 14:08:31 2010 [path: C:\Program Files (x86)\Debugging Tools for Windows\winext\ext.dll] exts: image 6.12.0002.633, API 1.0.0, built Mon Feb 01 14:08:24 2010 [path: C:\Program Files (x86)\Debugging Tools for Windows\WINXP\exts.dll] kext: image 6.12.0002.633, API 1.0.0, built Mon Feb 01 14:08:22 2010 [path: C:\Program Files (x86)\Debugging Tools for Windows\winext\kext.dll] kdexts: image 6.1.7650.0, API 1.0.0, built Mon Feb 01 14:08:19 2010 [path: C:\Program Files (x86)\Debugging Tools for Windows\WINXP\kdexts.dll] Кто-нибудь может подсказать в чем тут дело? ----- Give me a HANDLE and I will move the Earth. |
|
Создано: 17 марта 2016 01:32 · Поправил: plutos · Личное сообщение · #17 Похоже, что я тут сам с собою беседую, но если кому интересно, то решение проблемы описаной в моем посте номер 16 следующее: bp kernel32!DbgUiConnectToDbg (фунция может быть любая, просто DbgUiConnectToDbg меня интересует в данном случае). Когда execution reaches this breakpoint, kernel32.dll disassembly на месте, как и должно быть. ----- Give me a HANDLE and I will move the Earth. | Сообщение посчитали полезным: DenCoder |
|
Создано: 17 марта 2016 04:53 · Личное сообщение · #18 plutos пишет: Похоже, что я тут сам с собою беседую Да мне просто сейчас не до этого, некогда. Сам непрочь побеседовать в своём блоге. plutos пишет: No prior disassembly possible kernel32!DebugActiveProcess: 001b:7c82ade3 ?? ??? 001b:7c82ade4 ?? ??? 001b:7c82ade5 ?? ??? 001b:7c82ade6 ?? ??? 001b:7c82ade7 ?? ??? 001b:7c82ade8 ?? ??? 001b:7c82ade9 ?? ??? 001b:7c82adea ?? ??? Давно кернел-отладкой не маялся. Но помню, что не попадалась ещё такая версия виндбг, чтоб, присоединившись к процессу, можно б было не беспокоиться о слётах страниц. По крайне мере я это так тогда понял. Есть у .process опции кроме /i, из которых что-то может быть для решения этой проблемы, но сейчас уже не вспомню, что я пробовал. ----- IZ.RU |
|
Создано: 16 октября 2016 16:42 · Личное сообщение · #19 Существует несколько интересных плагинов для подсветки синтаксиса WinDBG по этому линку К сожалению у меня они не работают, как на ВМВаре, так и на реальной машине, плагины загружаются из директорий без ошибок, моя версия виндовс - Windows 10 Ent Version 14393 Остальное - Processor type - i7 - 4910mq, windbg - 10.0.14321.1024 AMD64 После долгих испытаний я написал автору плагина, он мне всегда отвечал, но и всегда очень смутно, по его словам на этой же версии виндовс с этой же версией WinDBG на его машине всё отлично работает, у меня команда hlcfg возвращает "No export hlcfg found", с этим вопросом автор плагинов сообщил мне, что исправит и протестирует ещё раз последние билды WinDBG, больше ответов от него я не получал. Мой вопрос - у кого-то есть опыт использования этого плагина?! Может кто-то уже устанавливал его себе на новые системы .. ----- RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube | Сообщение посчитали полезным: plutos |
|
Создано: 17 октября 2016 12:19 · Поправил: bizdon · Личное сообщение · #20 mak у меня работает только подсветка в окне "Command output" (версия 6.11.0001.404) С плагином в аттаче работает подсветка дизассемблергого листинга (файл ini - общий для х32/х64) Тоже есть вопрос по windbg/ida про этот плагин: как его подправить под версию IDA 6.8? 6cab_17.10.2016_EXELAB.rU.tgz - asm.rar |
|
Создано: 18 августа 2017 18:34 · Личное сообщение · #21 Всем доброго времени суток. Никто не подскажет есть ли в windbg возможность отладки DLL-ок? У IDA - это вроде бы без проблем, а вот как с этим делом в windbg - непонятно. Вроде бы считается самым сложным и "крутым" отладчиком. Видимо, я еще не дорос до его уровня крутизны? Может есть все же какие-нибудь команды? Подскажите куда "копать"? |
|
Создано: 18 августа 2017 21:33 · Личное сообщение · #22 dma Вы знаете почему менеджер памяти использует бинарные деревья или к примеру разницу между состоянием страниц ? Если нет, то закройте и удалите данный инструмент, он для разрабов ядра. Им можно решать примитивные задачи, но он для этого не предназначен. Им ядро дебажат. ----- vx | Сообщение посчитали полезным: plutos |
|
Создано: 18 августа 2017 22:17 · Личное сообщение · #23 |
|
Создано: 31 августа 2017 13:14 · Личное сообщение · #24 New WinDbg available in preview! We are excited to announce a preview version of a brand new WinDbg. We've updated WinDbg to have more modern visuals, faster windows, a full-fledged scripting experience, built with the easily extensible debugger data model front and center. I'll start this by saying that WinDbg Preview is using the same underlying engine as WinDbg today, so all the commands, extensions, and workflows you're used to will still work just as they did before. P.S. Синтаксис так и остался без подсветки. Видимо гуй только переделали под Апп Вопрос теперь как скачать это чудо без ВинСтор ----- RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube | Сообщение посчитали полезным: plutos |
|
Создано: 31 августа 2017 13:36 · Личное сообщение · #25 |
|
Создано: 31 августа 2017 15:40 · Личное сообщение · #26 |
|
Создано: 31 августа 2017 16:18 · Личное сообщение · #27 |
|
Создано: 25 октября 2017 09:54 · Поправил: DenCoder · Личное сообщение · #28 mak пишет: New WinDbg available in preview! Давно не дебажил ось, понадобилось... Слегка разочарован этой версией: 1) Наверное, все версии WinDbg объединяет одно: чудная математика, благодаря которой показываются странные смещения. Например, ставим бряк bp /p <EPROCESS> ntdll!LdrpInitializeProcess + 0x98b и bl(список бряков): показывает смещение от начала функции почему-то 0x10e5. Жмём g - остановилось на 0x98b, но показывает всё равно 0x10e5. 2) Также нередкость - такие чудеса, когда поставили бряк для процесса, а он не сработал. Обязательно надо сначала .process /i <EPROCESS>; g, иначе не сработает. 3) Контекст треда иногда может долго обновляться 4) Бывают случаются такие странные вещи, когда в окошке Memory вместо содержимого памяти по адресу видишь надпись Query engine was cancelled 5) Способен подвесить систему, особенно когда долго с ним работаешь. Но самые терпеливые могут дождаться её отвисания ----- IZ.RU |
|
Создано: 25 октября 2017 13:03 · Личное сообщение · #29 25 сентября было выпущено обновление, добавляющее в новый WinDbg важную фичу — отладку с возможностью двигаться по ходу работы программы в обратном направлении (Time Travel Debugging) |
|
Создано: 25 октября 2017 16:48 · Личное сообщение · #30 |
|
Создано: 25 октября 2017 17:06 · Личное сообщение · #31 Я бы вообще не возлагал больших надежд на прямую реализацию этой фичи. Просто сама идея хорошая, иногда не хватает такой кнопки, но полноценно внедрить подобный механизм, чтобы он работал в 100% случаев в принципе малореально. Было бы неплохо увидеть нечто такое Так что пост не стоит воспринимать как восторг от "киллерфичи", лишь интересное наблюдение, майки сделали перспективную функцию, притом штатно, что на них не похоже, но запилили ее как обычно криво, что вполне в их репертуаре... хотя о чем это я, главное же в отладчике это "more modern visuals" |
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . >> |
eXeL@B —› Основной форум —› Использование WinDbg |