Сейчас на форуме: -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 |
|
Создано: 02 августа 2013 16:45 · Личное сообщение · #2 |
|
Создано: 02 августа 2013 17:09 · Поправил: albatros · Личное сообщение · #3 |
|
Создано: 02 августа 2013 17:41 · Личное сообщение · #4 |
|
Создано: 02 августа 2013 17:55 · Поправил: plutos · Личное сообщение · #5 albatros: или же под 2000 и хр их уже нет на сервере Да есть они там. Я, смеху ради, час назад свои стер, перезагрузил и все на месте. Выставь _NT_SYMBOL_PATH = SRV*d:\DebugSymbols*http://msdl.microsoft.com/download/symbols где d:\DebugSymbols - это путь к твоему местному хранилищу и все будет работать. ----- Give me a HANDLE and I will move the Earth. |
|
Создано: 02 августа 2013 18:08 · Личное сообщение · #6 |
|
Создано: 02 августа 2013 18:21 · Личное сообщение · #7 |
|
Создано: 02 августа 2013 19:19 · Поправил: ARCHANGEL · Личное сообщение · #8 |
|
Создано: 02 августа 2013 22:42 · Поправил: DenCoder · Личное сообщение · #9 Иногда есть смысл использовать символы, которые скачивает ида при анализе модуля. Почему-то они отличаются иногда, более полнее. Их можно найти в директории %temp%\ida\ тогда, когда в исследуемом модуле присутствует строка <имя модуля>.pdb и в Output window иды присутствуют две строки типа таких Code:
----- IZ.RU |
|
Создано: 30 апреля 2014 09:27 · Личное сообщение · #10 Тутор для начинающих по WinDbg: http://blog.opensecurityresearch.com/2013/12/getting-started-with-windbg-part-1.html http://blog.opensecurityresearch.com/2013/12/getting-started-with-windbg-part-2.html http://blog.opensecurityresearch.com/2013/12/getting-started-with-windbg-part-3.html ----- [nice coder and reverser] | Сообщение посчитали полезным: sivorog, SReg, v00doo |
|
Создано: 30 апреля 2014 09:46 · Поправил: sivorog · Личное сообщение · #11 Hellspawn доступ ограничен не могли бы вы перезалить? 616a_30.04.2014_EXELAB.rU.tgz - 11.png ога, тор рулит спасибо, буду изучать |
|
Создано: 30 апреля 2014 09:55 · Личное сообщение · #12 |
|
Создано: 07 мая 2014 17:30 · Личное сообщение · #13 ОК, тогда и я полезную ссылочку здесь оставлю, которая помогла мне в некоторых вопросах (там кое-что по тонкой настройке Windbg и особенностям использования): http://sww-it.ru/windbg-tricks ----- Харе курить веники и нюхать клей, к вам едет из Америки бог Шива, и он еврей. | Сообщение посчитали полезным: sivorog |
|
Создано: 03 марта 2015 18:35 · Поправил: volopas · Личное сообщение · #14 LiveKD.exe ( https://technet.microsoft.com/en-us/sysinternals/bb897415.aspx ) , помещенный в папку "I:\Program Files\Debugging Tools for Windows (x86)" (http://www.microsoft.com/en-us/download/details.aspx?id=8442 >>> GRMSDK_EN_DVD.iso) запущенный с параметром -w стартует windbg.exe с такими параметрами: 0012EFD0 00405E4D /CALL to CreateProcessA from livekd.00405E47 0012EFD4 0012F264 |ModuleFileName = "I:\Program Files\Debugging Tools for Windows (x86)\windbg.exe" 0012EFD8 0012F368 |CommandLine = "windbg.exe -z C:\WINDOWS\livekd.dmp" 0012EFDC 00000000 |pProcessSecurity = NULL 0012EFE0 00000000 |pThreadSecurity = NULL 0012EFE4 00000001 |InheritHandles = TRUE 0012EFE8 00000000 |CreationFlags = 0 0012EFEC 001571E8 |pEnvironment = 001571E8 0012EFF0 00000000 |CurrentDir = NULL 0012EFF4 0012F0DC |pStartupInfo = 0012F0DC 0012EFF8 0012F02C \pProcessInfo = 0012F02C То есть по сути дает команду windbg.exe запустить под отладкой еще один windbg.exe. Нафиг это делать? |
|
Создано: 03 марта 2015 20:23 · Личное сообщение · #15 |
|
Создано: 03 марта 2015 20:49 · Личное сообщение · #16 Так почему просто не запустить windbg.exe? Livekd его же не просто запускает, а еще передает какие-то параметры. А если запускать приложение (через параметр -i, который согласно описалову https://technet.microsoft.com/en-us/sysinternals/bb897415.aspx должен передаться дебагеру) , то мое приложение кричит, что ему неправильные параметры передаются. То есть этот livekd накидывает лишние параметры. Нагуя? Если я запускаю livekd.exe - w , то должен запускаться windbg.exe БЕЗ параметров. |
|
Создано: 03 марта 2015 21:56 · Личное сообщение · #17 |
|
Создано: 03 марта 2015 22:07 · Личное сообщение · #18 ModuleFileName = "I:\Program Files\Debugging Tools for Windows (x86)\windbg.exe" Это и есть запуск. CommandLine = "windbg.exe -z C:\WINDOWS\livekd.dmp" Это параметры. WinDBG запускается как будто что-то отлаживает (в меню File неактивны Open executable... и т.д.) Добавлено спустя 4 минуты Что вообще этот livekd дает? Якобы он позволяет отлаживать ядро Windows не прибегая к использованию еще одного компьютера. Но во-первых, в windbg есть опция File - Kernel Debug... - Local . Во-вторых, windbg всё равно работает в user mode. Как он может отлаживать ядро? |
|
Создано: 03 марта 2015 22:21 · Личное сообщение · #19 volopas пишет: Во-вторых, windbg всё равно работает в user mode. Как он может отлаживать ядро? WinDbg is a multipurpose debugger for Microsoft Windows, distributed on the web by Microsoft. It can be used to debug user mode applications, drivers, and the operating system itself in kernel mode. ----- Give me a HANDLE and I will move the Earth. |
|
Создано: 03 марта 2015 22:34 · Личное сообщение · #20 |
|
Создано: 03 марта 2015 22:45 · Личное сообщение · #21 |
|
Создано: 03 марта 2015 23:03 · Личное сообщение · #22 |
|
Создано: 03 марта 2015 23:08 · Личное сообщение · #23 так это и страшно, что ты спрашиваешь то о чем там написано, но прочитать не можешь не надо сразу пытаться летать на самолете, почитай теорию, походи на курсы, пробуй практиковаться, а там видно будет и форум не для того что бы спрашивать почему солнце светит, есть основы и у тебя по ним огромный провал, причем не только в одну из сторон, а по всем фронтам сразу подтяни их для начала а там и вопросы пропадут |
|
Создано: 15 марта 2015 11:07 · Личное сообщение · #24 Пытаюсь отлаживать драйвер. Подключился к виртуальной машине через виртуальный COM1, как описано на стр.61,74-75 руководства http://goo.gl/N73ien Захожу в kernel32!_imp__NtDeviceIoControlFile ntdll!KiFastSystemCal sysenter А дальше не заходит. Почему? Толку от этого kernel-отладчика -- ноль. Тоже самое может ольга в user-mode. |
|
Создано: 15 марта 2015 14:26 · Личное сообщение · #25 |
|
Создано: 15 марта 2015 17:58 · Поправил: volopas · Личное сообщение · #26 С горем пополам удалось зайти в драйвер. При установке ba r1 <адрес внутри одной из секций драйвера> срабатывает где то в nt!MiLoadImageSection при загрузке драйвера в память. Но почему - то не срабатывает, когда драйвер начинает работать .И я знаю, что по опкодам по этим адресам процессор 100% проходит. Почему не срабатывает брейкпоинт при работе драйвера? Добавлено спустя 38 минут Делались попытки вписать в <адрес внутри одной из секций драйвера> опкод EB FE (прыжок на себя) , но тогда из windbg невозможно остановить систему командой Debug > Break . пишет Debuggee is running... и нифига не останавливается, а отлаживаемая система не отвечает. Что делать? Как споймать код в драйвере? Добавлено спустя 4 часа 14 минут Похоже , что проблема несрабатывания остановов и в ядре актуальна. Добавлено спустя 14 часов 44 минуты Открываю Диспетчер устройств mmc devmgmt.msc Вид - Показать скрытые устройства - Драйверы устройств не Plug and Play - двойной клик Virtual machine monitor - вкладка Драйвер - Остановить - Запустить. Срабатывает bu nt!MiLoadImageSection и bu nt!MiLoadImageSection+0x458 69cc29f2 805a4afd 805a4cda 69cc29f8 По второму bu можно понять адрес , куда копируется драйвер. Но когда делаю g (Go) и Break, lm t m , то в списке загруженных есть vmm.sys , но по старому адресу (до остановки в Диспетчере устройства). То ли команда lm t m не работает , то ли сам WinDBG кривой. Может есть команда для отображения актуального списка загруженных драйверов? |
|
Создано: 16 марта 2015 10:46 · Личное сообщение · #27 volopas пишет: По второму bu можно понять адрес , куда копируется драйвер. Но когда делаю g (Go) и Break, lm t m , то в списке загруженных есть vmm.sys , но по старому адресу (до остановки в Диспетчере устройства). Проверьте в Process Explorer'е, так ли это. Настройте его, чтоб показывал нужную информацию. Если будут расхождения, качайте новую версию WinDbg. Нет - ищите ошибку. ----- IZ.RU |
|
Создано: 16 марта 2015 14:34 · Поправил: volopas · Личное сообщение · #28 |
|
Создано: 21 марта 2015 11:09 · Поправил: volopas · Личное сообщение · #29 Использую Kernel Debug... через \.\pipe\taret0001. На отлаживаемой ОС запускаю напр. Ollydbg.exe . В Windbg делаю Break: Code:
перехожу в окне Memory на адрес 77c00050 и меняю байт $69 > $31. Далее делаю Go . В отлаживаемой ОС закрываю Ollydbg и открываю опять. Захожу в конекст процесса и вижу по адресу 77c00050 $31 . Почему? Должно же было подгрузиться из version.dll $69! |
|
Создано: 12 апреля 2015 17:12 · Личное сообщение · #30 А скажите как можно снять дамп с процесса при удаленной отладке? То есть на Хостовой машине получить дамп некоторого региона пользовательского процесса Гостевой? Чета гуглил, гуглил не выгуглил. Идея тока снять дамп целиком потом его анализировать, но мне это кажется крайностью И вообще кроме ядра там можно удаленно дебажить? |
|
Создано: 12 апреля 2015 18:52 · Личное сообщение · #31 |
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . >> |
eXeL@B —› Основной форум —› Использование WinDbg |