Сейчас на форуме: -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 |
|
Создано: 04 марта 2011 18:36 · Личное сообщение · #2 |
|
Создано: 15 марта 2011 16:43 · Поправил: Crawler · Личное сообщение · #3 Тогда и у меня вопрос есть. Пробовал настраивать систему отладки дров при помощи windbg, vmware дважды, в каждом случае использовалась одна физическая машина, ком-порт через пайп. 1-й случай - хостовая система - windows 7 домашняя x64, отлаживаемая - xp sp3 checked 2-й случай - то же самое, но хостовая система - windows xp sp3 так вот, вопрос следующий - почему во втором все идет отлично, а в первом - debuggee not connected ( по-моему, так звучит ), и не помогает не ресинхронизация, не посылка break-a? ----- Харе курить веники и нюхать клей, к вам едет из Америки бог Шива, и он еврей. |
|
Создано: 16 марта 2011 23:04 · Поправил: C/Kashmir · Личное сообщение · #4 Crawler пишет: 1-й случай - хостовая система - windows 7 домашняя x64, отлаживаемая - xp sp3 checked2-й случай - то же самое, но хостовая система - windows xp sp3так вот, вопрос следующий - почему во втором все идет отлично, а в первом - debuggee not connected ( по-моему, так звучит ), и не помогает не ресинхронизация, не посылка break-a? Версия VMware и WinDbg? Попробую у себя, если найду checked release. |
|
Создано: 17 марта 2011 12:59 · Личное сообщение · #5 |
|
Создано: 17 марта 2011 15:06 · Поправил: DenCoder · Личное сообщение · #6 Crawler, опиши подробнее действия, которые производил для коннекта через пайпу? Предполагаемые причины и решения: 1) ключи /debug и /debugport указал правильно? 2) Проблема из личного опыта: в первый раз 7 часов промучался, только из-за того, что com1 указал, надо было com2. Дошло все же потом в диспетчер задач глянуть У тебя на хостовой системе под XP может быть занят порт. Как еще вариант - можно порты поменять. 3) Варьку попробуй обновить до 7.1.3 build-324285. Возможно, в твоей какие-то недочеты, связанные именнно с исполнительной системой и аппаратным уровнем абстракций (ntoskrnl.exe и hal.dll соответственно) хостовой системы 4) Февральские обновления XP SP3 с офф. сайта также обновляют ntoskrnl.exe и hal.dll, может помочь. P.S. Упс! По-моему не там разместил топик. Модераторы перенесут куда надо? Сорри за рассеянность ----- IZ.RU | Сообщение посчитали полезным: Crawler |
|
Создано: 17 марта 2011 23:45 · Личное сообщение · #7 off не off - мож пригодится http://www.zezula.net/en/fstools/kdvmware.html | Сообщение посчитали полезным: Crawler |
|
Создано: 18 марта 2011 10:54 · Личное сообщение · #8 блин. наваял сообщение огромное. потом решил отметить сообщение как полезное...думал, что аяксом отправляется, и все пропало )) DenCoder, да я и раньше отлаживал под хр, проблем вроде не было. все правильно настроил - и хал с кернелом прописал, и другие ключики, и порты совпадают, и не занят он. попробую обновить. Ratinsh, спасибо за наводку ----- Харе курить веники и нюхать клей, к вам едет из Америки бог Шива, и он еврей. |
|
Создано: 18 марта 2011 16:59 · Личное сообщение · #9 |
|
Создано: 19 марта 2011 18:18 · Поправил: DenCoder · Личное сообщение · #10 Цель: поймать запуск процесса в explorer.exe. Получаю EPROCESS Code:
стрктура располагается по адресу 81231938 ставлю бряк Code:
Должен сработать останов когда с рабочего стола запускаю объект. Но вместо этого тишина, когда из проводника уже хотел диск открыть, бряк сработал, но возврат не в юзермод, а в win32k... В чем дело, непонятно... ________ ээээ ))) nt!ZwCreateSection и не должно вызываться в этом случае, сорри, переправил... но через debug-сервис должно nt!NtCreateSection по-любому, а этого не происходит.... Почему? ----- IZ.RU |
|
Создано: 06 апреля 2011 03:35 · Личное сообщение · #11 2 вопроса остаются еще открытыми. Пока уже некогда этим заниматься. Может все же кто-нибудь сможет ответить? Скоро вновь понадобится отладка. Не тащусь, конечно, от интерфейса, зато возможности команд этого творения... Нужно до этого времени решить один вопрос. Суть такова: Все виртуальные машины имеют потенциальную возможность отладки осей и всей системы в целом, в т.ч. и BIOS. Так непонятно, неужели это еще не реализовано и приходится пользоваться ключом /Debug для винды и испытывать прелести debug-сервиса, на которых строят антиотладку? Если б была отладка, тесно связанная с эмуляцией в вм, то, например, отпала бы необходимость заморачиваться на ловушках с TF и GS. ----- IZ.RU |
|
Создано: 21 мая 2011 23:12 · Поправил: _ruzmaz_ · Личное сообщение · #12 Пара вопросов есть: 1. Можно ли получить доступ к тому, что вывела в лог последняя выполненная команда, и как-то распарсить это? Чтобы, например, после !process получить EPROCESS в виде значения может какого-то псевдорегистра и использовать его в следующей команде. 2. Есть ли какие-то решения по автоматизации трассировки стека? В хелпе нашел только ручной способ. |
|
Создано: 01 июня 2011 21:05 · Поправил: _ruzmaz_ · Личное сообщение · #13 === Несколько полезных ссылок: Откуда взять сабж. Расширения для WinDbg для автоматизации работы с отладчик посредством питона. Сборник полезных ссылок на тему WinDbg. Портал, полностью посвященный WinDbg. Блоги, форум и множество документации. Раздел MSDN о применении WinDbg и других программ комплекта Debugging Tools for Windows. Блог "Debugging Toolbox" на MSDN. Блог Фолькера фон Эйнема (Volker von Einem) "Windbg by Volker von Einem", посвященный WinDbg. Блог "Speaking of which..." на MSDN, записи с тэгом "WinDbg": около десяти довольно полезных, особенно для начинающих пользователей WinDgb, записей. Блог Скотта Нуна (Scott Noone, MVP) "Analyze -v", записи из категории "WinDbg": баги и фичи отладчика, решения некоторых практических задач. Блог Вячеслава Русакова (ЛК) "Волчьи IT-мысли", записи с тэгом "WinDbg": несколько интересных записей, в частности, о трюках WinDbg и о мэппинге драйверов. Блог Джона Роббинса (John Robbins) на Wintellect, записи с тэгом "WinDbg": пара заметок про недокументированные фичи WinDbg. Блог "NO BUNKUM", записи с тэгом "WinDbg": применение WinDbg в обнаружении и анализе руткитов. Блог "Анализ Дампов Памяти", записи с тэгом "WinDbg": анализ дампов с помощью сабжа, для начинающих. Блог "Billy's Mess Of Information", записи из категории "Debugging". Блог "Windows Explored", записи с тэгом "WinDbg". Блог "Blogging on Citrix & Microsoft Technology", записи из категории "Debugging": есть несколько записей специально для новичков. Блог "rebl0g" (на русском), записи с тэгом "WinDbg". Блог "Lhc645's Blog" (на русском), записи из категории WinDbg. Блоги на wordpress.com, записи с тэгом "WinDbg". EreTIk's Box >> Заметки о WinDbg: полезные ссылки, советы, скрипты и прочее для сабжа. The Code Project, результы поиска в статьях, блогах и триксах по слову "WinDbg": множество полезных статей про использование WinDbg, как всегда, с исходниками. Статья Джолиона Райта (Jolyon Wright) "Remote Kernel Debugging with WinDbg" (рассматриваются физические машины, а не вм). Правда, старовата, но может пригодится. PenTestIT, ссылка на страницу с описанием статьи "Hunting Rootkits with Windbg" и ссылкой на скачивание (формат: PDF). Статья "How to solve Windows system crashes in minutes" на Network World про анализ крэш дампов с помощью сабжа. Статья Криса Касперски "Отладчик WinDbg как API- и RPC-шпион" на InsidePro. Статья "Отладка в WinDbg. Пособие для тестировщика" на сайте Александра Телятникова alter.org.ua про настройку сабжа под различные варианты отладки. Статья "WinDbg. The easy way" (часть 1 и 2) на DebugInfo. Описываются базовые приемы работы с сабжем. | Сообщение посчитали полезным: DenCoder, cosinus, plutos, egorovshura, Hugo Chaves |
|
Создано: 06 марта 2012 12:51 · Поправил: DenCoder · Личное сообщение · #14 DenCoder пишет: 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 ? Меняем Code:
на Code:
_ruzmaz_ пишет: 1. Можно ли получить доступ к тому, что вывела в лог последняя выполненная команда, и как-то распарсить это? Чтобы, например, после !process получить EPROCESS в виде значения может какого-то псевдорегистра и использовать его в следующей команде. Code:
----- IZ.RU | Сообщение посчитали полезным: _ruzmaz_ |
|
Создано: 06 марта 2012 13:28 · Поправил: DenCoder · Личное сообщение · #15 Не понимаю, почему Code:
но Code:
Оно не должно выполняться-то! UPD. Разобрался: Команды j и .if в качестве условия принимают всё, что угодно, но воспринимают только нуль или не-нуль. И false и true для этих команд будет как не-нуль. Значит, нужно выполнить преобразование типа: Code:
----- IZ.RU |
|
Создано: 08 апреля 2012 02:02 · Поправил: cosinus · Личное сообщение · #16 Доброго времени суток. На одном компьютере с Win7 крутится VMware. Другим компьютером хочу прицепиться к "семёрке", но эта венда настолько сурова, что требует логин и пароль. Подскажите как именно следует модифицировать батник (прописать имя_пользователя и пароль) для запуска WinDbg, чтобы он мог присоединиться к "семёрке" . Code:
(конечная цель XP установленная на VMware) UPD: Сам прочитал что написал и сам же запутался. Вообщем хоцца |
|
Создано: 08 апреля 2012 04:02 · Поправил: plutos · Личное сообщение · #17 Попробуй посмотреть по этим ссылкам. Я обычно использую BCDedit.exe (on the target) и IEEE 1394 cable и все работает. Но у меня target Vista, так что не уверен будет ли тот же результат. http://msdn.microsoft.com/en-us/library/windows/hardware/ff542187(v=vs.85).aspx http://technet.microsoft.com/en-us/library/cc731245(v=ws.10).aspx http://technet.microsoft.com/en-us/library/85cd5efe-c349-427c-b035-c2719d4af778 http://www.dslreports.com/forum/r21741595-Windows-7-boot-manager-editing-questions ----- Give me a HANDLE and I will move the Earth. |
|
Создано: 12 апреля 2012 21:59 · Поправил: cosinus · Личное сообщение · #18 Что-то весь поиск с водится к тому что подключение происходит через pipe, создаваемый виртуалкой. И только одно сообщение о Если кто сталкивался с такой проблемой, подскажите как забороли её. |
|
Создано: 17 апреля 2012 20:32 · Личное сообщение · #19 |
|
Создано: 03 июня 2012 20:25 · Личное сообщение · #20 Здравствуйте. Господа, интересует такой вопрос, как корректно загрузить в ВинДБГ символы? Я так понял что он должен утягивать их в реал тайме с майкрософтовского сервера, -- srv*D:\Symbols*http://msdl.microsoft.com/download/symbols ? Можно ли скачать пакет отсюда -- http://msdn.microsoft.com/en-us/windows/hardware/gg463028.aspx -- и прикрутить его к ВыньДБГ ? Еще вопрос -- я сделал через меню symbol file path -- srv*D:\Symbols*http://msdl.microsoft.com/download/symbols -- но ничего не скачивается, а само окно дебаггера в режиме локальной отладки ядра -- file -- kernel debug -- local -- ok -->> появляется и тут же сворачивается. |
|
Создано: 11 февраля 2013 16:35 · Личное сообщение · #21 Здравствуйте. Сейчас я исследую одну интересную программу. Защиты на ней 6,6 Мб. Сначала я испробовал на ней OllyDbg. Не получилось. Потом WinDbg. Вроде идет, но есть вопросы. Вопрос первый. Под OllyDbg при простом запуске отладка зависает и никуда не приходит. Под WinDbg при простом запуске доходит до первого экрана, что уже хорошо. Вопрос: как так может быть? Вопрос второй. Под OllyDbg начальная точка по адресу 7C812AFB модуль KERNEL32. Под WinDbg начальная точка по адресу 7C90120E модуль ntdll. Вопрос тот же: как так может быть? Вопрос третий. Под WinDbg ставить точки останова вроде получается, но при рестарте они слетают. Как в таком случае проводить трассировку. Где-нибудь это наверное есть, но вопрос времени. Надо быстро. Кто-нибудь может подсказать? Или посоветовать другой отладчик. SoftIce и IDA не справились. |
|
Создано: 24 февраля 2013 18:38 · Личное сообщение · #22 |
|
Создано: 03 июля 2013 02:16 · Личное сообщение · #23 VanHelsing Я скачивал символы и указывал путь к ним. Есть только одна проблема с символами - они часто слетают, и нужно их указывать заново. Возможно проблема версии. AndreyOl пишет: Под OllyDbg при простом запуске отладка зависает и никуда не приходит. Возможно дело в плагинах оли. Проверяли без плагинов? Если дело в этом, то перемещая по одному в папку plugins устанавливается сбойный. AndreyOl пишет: Под OllyDbg начальная точка по адресу 7C812AFB модуль KERNEL32. Под WinDbg начальная точка по адресу 7C90120E модуль ntdll. 7C812AFB - какой-то exception, возможно криво dll подгружается, возможно в отлаживаемой проге tls, ... что может быть связано с работой плагинов, а может просто требуется в папку с олей кинуть нужную версию dbghelp.dll 7C90120E - это и есть system breakpoint AndreyOl пишет: Под WinDbg ставить точки останова вроде получается, но при рестарте они слетают. Как в таком случае проводить трассировку. Писать скрипт vden пишет: Кто-нибудь знает, можно ли в WinDbg инжектировать свою DLL в процесс, желательно при его загрузке. Почему нет? Можно как подменить dll из папки, например, dbghelp.dll, не забыть только загрузить оригинальную. Так и простой плагин написать и подгрузить в нужный момент. P.S. При возникновении вопросов сообщайте версию WinDbg и операционной системы. ----- IZ.RU |
|
Создано: 07 июля 2013 15:31 · Личное сообщение · #24 Почти такая же проблема как и у Crawler: хостовая машина xp sp3; гостевая -win 2000 vmware 7.1.4 build-385536; ddk 3790.1830; через ключ /debug дамп запускается без всякого конекта к com-порту, но не хочет ни находить отладочные файлы (их я скачал с мелкософта и установил с прописью в переменных средах), ни подтягивать расширения отладчика. Все делаю как указано в шрайбере "Недокументированые возможности windows 2000". Мало того, в настройках указал полный дамп памяти, вызываю бсод и он мне почему-то делает minidump по 64к, на которые i386kd ругается и говорит типа с мелочью не работаю, давай мне полный дамп. Что творится - не пойму. Мучаюсь уже третий день. |
|
Создано: 07 июля 2013 19:42 · Поправил: plutos · Личное сообщение · #25 Может я не правильно понял, но "скачивать" symbol files не нужно. В kernel_debugging_tutorial ясно сказано: To explicitly set a location for symbols, use the .sympath command. Break (CTRL-BREAK) in the command window and type: .sympath SRV*<DownstreamStore>*http://msdl.microsoft.com/download/symbols to tell WinDbg to look for symbols on the Microsoft public symbols server. To get WinDbg to use that server and to keep a copy of downloaded symbols in a local store, for example, in D:\DebugSymbols, you would do: .sympath SRV*d:\DebugSymbols*http://msdl.microsoft.com/download/symbols Что касается книги Sven Schreiber, то это далеко не исчерпывающее руководство по WinDbg. Он обьясняет лишь самые основы, самый простой вариант. Лучше посмотрите по ссылкам, приведеным выше в этой теме. ----- Give me a HANDLE and I will move the Earth. |
|
Создано: 08 июля 2013 12:03 · Личное сообщение · #26 |
|
Создано: 08 июля 2013 12:17 · Личное сообщение · #27 albatros пишет: в настройках указал полный дамп памяти, вызываю бсод и он мне почему-то делает minidump по 64к Не знаю, в чём у тебя проблема. Проверь, так же у тебя ----- IZ.RU |
|
Создано: 08 июля 2013 12:37 · Личное сообщение · #28 |
|
Создано: 08 июля 2013 17:06 · Личное сообщение · #29 albatros: так а разница локально или через сервер обращаться к отладочной инфе Разница в том, что symbol files должны точно соответствовать версии Windows, включая service packs. Для того и был устроен symbol server, что с него грузится именно то, что нужно автоматически. Перед началом debug session полезно сделать .reload, чтобы убедиться, что все символы на месте. ----- Give me a HANDLE and I will move the Earth. |
|
Создано: 02 августа 2013 16:08 · Поправил: albatros · Личное сообщение · #30 |
. 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . >> |
eXeL@B —› Основной форум —› Использование WinDbg |