eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 28 января!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: (+3 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Софт, инструменты —› Использование WinDbg
<< . 1 . 2 . 3 . 4 . 5 . >>
Посл.ответ Сообщение


Ранг: 282.5 (наставник)
Статус: Участник

Создано: 2 марта 2011 12:29 · Поправил: DenCoder New!
Цитата · Личное сообщение · #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 ?

| Сообщение посчитали полезным: stereo2013



Ранг: 1972.5 (!!!!)
Статус: Модератор
retired

Создано: 2 августа 2013 16:45 New!
Цитата · Личное сообщение · #2

Под 2000 хз, под хр ставил буквально месяц назад, сливая с мелкомягких. Так что всё там есть. А тут http://msdn.microsoft.com/en-us/windows/hardware/gg463028 можно сразу пак символов слить, включая 2000. Но это для релизных ОС.

Ранг: 19.4 (новичок)
Статус: Участник

Создано: 2 августа 2013 17:09 · Поправил: albatros New!
Цитата · Личное сообщение · #3

Archer В том то и незадача, что при установке с пакована они как-то криво становятся, хотя версию сп и язык подбираю строго... может надо дополнительный пакет установить, но его попробуй скачай - кнопки на загрузку у мелкомягких не фурычат

Ранг: 19.4 (новичок)
Статус: Участник

Создано: 2 августа 2013 17:41 New!
Цитата · Личное сообщение · #4

заглянул только что в соседнюю тему "Поиск: WinXP x86 Checked Build ". Получается если поставить себе checked версию, неважно с спаками или без, то с ними автоматически идут отладочные символы и особого геморроя быть не должно. Так или не так?


Ранг: 401.4 (мудрец)
Статус: Участник
_Вечный_Студент_

Создано: 2 августа 2013 17:55 · Поправил: plutos New!
Цитата · Личное сообщение · #5

albatros:
или же под 2000 и хр их уже нет на сервере

Да есть они там. Я, смеху ради, час назад свои стер, перезагрузил и все на месте.
Выставь _NT_SYMBOL_PATH = SRV*d:\DebugSymbols*http://msdl.microsoft.com/download/symbols
где d:\DebugSymbols - это путь к твоему местному хранилищу и все будет работать.


Ранг: 1972.5 (!!!!)
Статус: Модератор
retired

Создано: 2 августа 2013 18:08 New!
Цитата · Личное сообщение · #6

Забери напрямую символы, что ли symchk /r c:\windows\system32 /s SRV*c:\symbols\*http://msdl.microsoft.com/download/symbols Все слить могут, один ты не можешь.


Ранг: 69.5 (постоянный)
Статус: Участник

Создано: 2 августа 2013 18:21 New!
Цитата · Личное сообщение · #7

albatros

Нет смысла юзать отладочный билд, он слишком сильно отличается от не дбг версии.


Ранг: 646.0 (!)
Статус: Участник
ALIEN Hack Team

Создано: 2 августа 2013 19:19 · Поправил: ARCHANGEL New!
Цитата · Личное сообщение · #8

Dr0p
Раз вы так говорите, значит отладочный билд у вас есть. Может, выложите его для людей, а они уже сами разберутся, что надо, а что - нет.


Ранг: 282.5 (наставник)
Статус: Участник

Создано: 2 августа 2013 22:42 · Поправил: DenCoder New!
Цитата · Личное сообщение · #9

Иногда есть смысл использовать символы, которые скачивает ида при анализе модуля. Почему-то они отличаются иногда, более полнее. Их можно найти в директории %temp%\ida\ тогда, когда в исследуемом модуле присутствует строка <имя модуля>.pdb и в Output window иды присутствуют две строки типа таких

Code:
  1. PDB: loaded 0 types
  2. PDB: total 171 symbols loaded for <полный путь к модулю>


Ранг: 990.3 (! ! !)
Статус: Модератор
Author of DiE

Создано: 30 апреля 2014 09:27 New!
Цитата · Личное сообщение · #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

| Сообщение посчитали полезным: sivorog, SReg, v00doo


Ранг: 49.7 (посетитель)
Статус: Участник

Создано: 30 апреля 2014 09:46 · Поправил: sivorog New!
Цитата · Личное сообщение · #11

Hellspawn доступ ограничен
не могли бы вы перезалить?

{ Атач доступен только для участников форума } - 11.png

ога, тор рулит
спасибо, буду изучать


Ранг: 990.3 (! ! !)
Статус: Модератор
Author of DiE

Создано: 30 апреля 2014 09:55 New!
Цитата · Личное сообщение · #12

sivorog меняйте провайдера или юзайте тор.


Ранг: 210.0 (наставник)
Статус: Участник
X-Literator

Создано: 7 мая 2014 17:30 New!
Цитата · Личное сообщение · #13

ОК, тогда и я полезную ссылочку здесь оставлю, которая помогла мне в некоторых вопросах (там кое-что по тонкой настройке Windbg и особенностям использования):

http://sww-it.ru/windbg-tricks

| Сообщение посчитали полезным: sivorog


Ранг: 6.8 (гость)
Статус: Участник

Создано: 3 марта 2015 18:35 · Поправил: volopas New!
Цитата · Личное сообщение · #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. Нафиг это делать?


Ранг: 282.5 (наставник)
Статус: Участник

Создано: 3 марта 2015 20:23 New!
Цитата · Личное сообщение · #15

-w Runs windbg instead of kd.

Ранг: 6.8 (гость)
Статус: Участник

Создано: 3 марта 2015 20:49 New!
Цитата · Личное сообщение · #16

Так почему просто не запустить windbg.exe? Livekd его же не просто запускает, а еще передает какие-то параметры. А если запускать приложение (через параметр -i, который согласно описалову https://technet.microsoft.com/en-us/sysinternals/bb897415.aspx должен передаться дебагеру) , то мое приложение кричит, что ему неправильные параметры передаются. То есть этот livekd накидывает лишние параметры. Нагуя?

Если я запускаю livekd.exe - w
, то должен запускаться windbg.exe БЕЗ параметров.


Ранг: 1972.5 (!!!!)
Статус: Модератор
retired

Создано: 3 марта 2015 21:56 New!
Цитата · Личное сообщение · #17

Я вижу, что livekd запускает windbg.exe.
Откуда берётся дает команду windbg.exe запустить под отладкой еще один windbg.exe ?

Ранг: 6.8 (гость)
Статус: Участник

Создано: 3 марта 2015 22:07 New!
Цитата · Личное сообщение · #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. Как он может отлаживать ядро?


Ранг: 401.4 (мудрец)
Статус: Участник
_Вечный_Студент_

Создано: 3 марта 2015 22:21 New!
Цитата · Личное сообщение · #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.


Ранг: 1972.5 (!!!!)
Статус: Модератор
retired

Создано: 3 марта 2015 22:34 New!
Цитата · Личное сообщение · #20

Execute all the debugger commands that work on crash dump files to look deep inside the system
-z DumpFile. Specifies the name of a crash dump file to debug.
Не устал ещё постить 1 за другим вопросы, порой в отдельном топике, не в кассу вместо того, чтобы хоть немного почитать и подумать самому?


Ранг: 996.3 (! ! !)
Статус: Участник

Создано: 3 марта 2015 22:45 New!
Цитата · Личное сообщение · #21

да бросте, ну не дано человеку ни старфорс поломать ни прогу скомпилить, ни мануал прочитать, ну не его это

Ранг: 6.8 (гость)
Статус: Участник

Создано: 3 марта 2015 23:03 New!
Цитата · Личное сообщение · #22

Не вижу ничего страшного в своих постах. А вот шуточки и оскорбления, которые приходится выслушивать. - это конечно недопустимо. Вы тут для того и сидите, чтобы отвечать на вопросы.


Ранг: 996.3 (! ! !)
Статус: Участник

Создано: 3 марта 2015 23:08 New!
Цитата · Личное сообщение · #23

так это и страшно, что ты спрашиваешь то о чем там написано, но прочитать не можешь
не надо сразу пытаться летать на самолете, почитай теорию, походи на курсы, пробуй практиковаться, а там видно будет
и форум не для того что бы спрашивать почему солнце светит, есть основы и у тебя по ним огромный провал, причем не только в одну из сторон, а по всем фронтам сразу
подтяни их для начала
а там и вопросы пропадут

Ранг: 6.8 (гость)
Статус: Участник

Создано: 15 марта 2015 11:07 New!
Цитата · Личное сообщение · #24

Пытаюсь отлаживать драйвер. Подключился к виртуальной машине через виртуальный COM1, как описано на стр.61,74-75 руководства http://goo.gl/N73ien

Захожу в kernel32!_imp__NtDeviceIoControlFile
ntdll!KiFastSystemCal
sysenter

А дальше не заходит. Почему?

Толку от этого kernel-отладчика -- ноль. Тоже самое может ольга в user-mode.


Ранг: 282.5 (наставник)
Статус: Участник

Создано: 15 марта 2015 14:26 New!
Цитата · Личное сообщение · #25

В sysenter не входит. Поставь бряк в nt!NtDeviceIoControlFile

Ранг: 6.8 (гость)
Статус: Участник

Создано: 15 марта 2015 17:58 · Поправил: volopas New!
Цитата · Личное сообщение · #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 кривой.
Может есть команда для отображения актуального списка загруженных драйверов?


Ранг: 282.5 (наставник)
Статус: Участник

Создано: 16 марта 2015 10:46 New!
Цитата · Личное сообщение · #27

volopas пишет:
По второму bu можно понять адрес , куда копируется драйвер. Но когда делаю g (Go) и Break, lm t m , то в списке загруженных есть vmm.sys , но по старому адресу (до остановки в Диспетчере устройства).

Проверьте в Process Explorer'е, так ли это. Настройте его, чтоб показывал нужную информацию. Если будут расхождения, качайте новую версию WinDbg. Нет - ищите ошибку.

Ранг: 6.8 (гость)
Статус: Участник

Создано: 16 марта 2015 14:34 · Поправил: volopas New!
Цитата · Личное сообщение · #28

Всё нормально с WinDBG. Не туда посмотр.

Добавлено спустя 8 часов 46 минут
Как в WinDBG поставить на диапазон Memory breakpoint on access (который через NtProtectVirtualMemory)?

Ранг: 6.8 (гость)
Статус: Участник

Создано: 21 марта 2015 11:09 · Поправил: volopas New!
Цитата · Личное сообщение · #29

Использую Kernel Debug... через \.\pipe\taret0001. На отлаживаемой ОС запускаю напр. Ollydbg.exe . В Windbg делаю Break:
Code:
  1. kd> !process 0 0 
  2. ...
  3. PROCESS 81f56598  SessionId: 0  Cid: 072c    Peb: 7ffd7000  ParentCid: 05f8
  4.     DirBase: 175aa000  ObjectTable: e10520e0  HandleCount:  32.
  5.     Image: OLLYDBG.EXE
  6. kd> .process /81f56598  
  7. You need to continue execution (press 'g' <enter>) for the context
  8. to be switched. When the debugger breaks in again, you will be in
  9. the new process context.
  10. kd> g
  11. Break instruction exception - code 80000003 (first chance)
  12. nt!RtlpBreakWithStatusInstruction:
  13. 804e350a cc              int     3
  14. kd> lm u
  15. start    end        module name
  16. ...   
  17. 77c00000 77c08000   version    (deferred)             
  18. 77c10000 77c68000   msvcrt     (deferred)             
  19. 77dd0000 77e6b000   advapi32   (deferred)             
  20. 77e70000 77f03000   RPCRT4     (deferred)             
  21. 77f10000 77f59000   GDI32      (deferred)             
  22. 77f60000 77fd6000   SHLWAPI    (deferred)             
  23. 77fe0000 77ff1000   Secur32    (deferred)             
  24. 7c800000 7c8f6000   kernel32   (deferred)             
  25. 7c900000 7c9b2000   ntdll      (pdb symbols)          I:\Program Files\Debugging Tools for Windows (x86)\sym\ntdll.pdb\CEFC0863B1F84130A11E0F54180CD21A2\ntdll.pdb
  26. 7c9c0000 7d1d7000   shell32    (deferred)             
  27. 7e290000 7e403000   shdocvw    (deferred)             
  28. 7e410000 7e4a1000   user32     (deferred)             
  29. 7e4b0000 7e539000   hhctrl     (deferred)             
  30.  

перехожу в окне Memory на адрес 77c00050 и меняю байт $69 > $31.
Далее делаю Go . В отлаживаемой ОС закрываю Ollydbg и открываю опять. Захожу в конекст процесса и вижу по адресу 77c00050 $31 . Почему? Должно же было подгрузиться из version.dll $69!

Ранг: 14.3 (новичок)
Статус: Участник

Создано: 12 апреля 2015 17:12 New!
Цитата · Личное сообщение · #30

А скажите как можно снять дамп с процесса при удаленной отладке?

То есть на Хостовой машине получить дамп некоторого региона пользовательского процесса Гостевой?

Чета гуглил, гуглил не выгуглил.
Идея тока снять дамп целиком потом его анализировать, но мне это кажется крайностью

И вообще кроме ядра там можно удаленно дебажить?


Ранг: 996.3 (! ! !)
Статус: Участник

Создано: 12 апреля 2015 18:52 New!
Цитата · Личное сообщение · #31

ну так на васме есть охренительные спецы по windbg, чего там не спросить?
<< . 1 . 2 . 3 . 4 . 5 . >>
 eXeL@B —› Софт, инструменты —› Использование WinDbg

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS