Сейчас на форуме: -Sanchez- (+8 невидимых)

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


Ранг: 324.3 (мудрец), 221thx
Активность: 0.480.37
Статус: Участник

Создано: 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


Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

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

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



Ранг: 19.4 (новичок), 1thx
Активность: 0.030
Статус: Участник

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

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



Ранг: 19.4 (новичок), 1thx
Активность: 0.030
Статус: Участник

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

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




Ранг: 622.6 (!), 521thx
Активность: 0.330.89
Статус: Участник
_Вечный_Студент_

Создано: 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.





Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

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

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




Ранг: 72.3 (постоянный), 133thx
Активность: 0.380
Статус: Участник

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

albatros

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




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

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

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

-----
Stuck to the plan, always think that we would stand up, never ran.





Ранг: 324.3 (мудрец), 221thx
Активность: 0.480.37
Статус: Участник

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

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

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


-----
IZ.RU





Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 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

Ранг: 49.7 (посетитель), 19thx
Активность: 0.050
Статус: Участник

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

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

616a_30.04.2014_EXELAB.rU.tgz - 11.png

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




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

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

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

-----
[nice coder and reverser]





Ранг: 216.9 (наставник), 85thx
Активность: 0.310.15
Статус: Участник
X-Literator

Создано: 07 мая 2014 17:30
· Личное сообщение · #13

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

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

-----
Харе курить веники и нюхать клей, к вам едет из Америки бог Шива, и он еврей.


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

Ранг: 6.8 (гость), 1thx
Активность: 0.020
Статус: Участник

Создано: 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. Нафиг это делать?




Ранг: 324.3 (мудрец), 221thx
Активность: 0.480.37
Статус: Участник

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

-w Runs windbg instead of kd.

-----
IZ.RU




Ранг: 6.8 (гость), 1thx
Активность: 0.020
Статус: Участник

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

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

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




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

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

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



Ранг: 6.8 (гость), 1thx
Активность: 0.020
Статус: Участник

Создано: 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. Как он может отлаживать ядро?




Ранг: 622.6 (!), 521thx
Активность: 0.330.89
Статус: Участник
_Вечный_Студент_

Создано: 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.





Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 03 марта 2015 22:34
· Личное сообщение · #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 за другим вопросы, порой в отдельном топике, не в кассу вместо того, чтобы хоть немного почитать и подумать самому?




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

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

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



Ранг: 6.8 (гость), 1thx
Активность: 0.020
Статус: Участник

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

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




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

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

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



Ранг: 6.8 (гость), 1thx
Активность: 0.020
Статус: Участник

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

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

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

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

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




Ранг: 324.3 (мудрец), 221thx
Активность: 0.480.37
Статус: Участник

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

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

-----
IZ.RU




Ранг: 6.8 (гость), 1thx
Активность: 0.020
Статус: Участник

Создано: 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 кривой.
Может есть команда для отображения актуального списка загруженных драйверов?




Ранг: 324.3 (мудрец), 221thx
Активность: 0.480.37
Статус: Участник

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

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

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

-----
IZ.RU




Ранг: 6.8 (гость), 1thx
Активность: 0.020
Статус: Участник

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

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

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



Ранг: 6.8 (гость), 1thx
Активность: 0.020
Статус: Участник

Создано: 21 марта 2015 11:09 · Поправил: volopas
· Личное сообщение · #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 (новичок), 2thx
Активность: 0.010
Статус: Участник

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

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

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

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

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




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

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

ну так на васме есть охренительные спецы по windbg, чего там не спросить?


<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . >>
 eXeL@B —› Основной форум —› Использование WinDbg
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати