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

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


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

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

Сейчас на форуме: (+1 невидимый пользователь)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · 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



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

Создано: 26 октября 2017 19:11 New!
Цитата · Личное сообщение · #2

VOLKOFF
Так в Олли такое было сразу. Минус на клаве жмём и радуемся. Обратная трассировка (BackTrace) или как-то так называлось.

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

Создано: 26 октября 2017 21:22 New!
Цитата · Личное сообщение · #3

Минус в Олли - ето пойди назад по истории навигации...... ето совсем не BackTrace.
такое помнится токо SoftIce (RIP) умел

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

Создано: 26 октября 2017 21:45 · Поправил: difexacaw New!
Цитата · Личное сообщение · #4

ARCHANGEL

Виндебаг это мощный инструмент, у него коммандный интерфейс и он нужен для решения сложных задач. Олли это юзер отладчик, в нём кнопки жать может любой ньюби, для использования сабжа нужно глубокое знание архитектуры. Виндебаг нужен для решения особых задач, обычно он не нужен. Я например не помню когда последний раз было необходимо использовать столь мощный инструмент.
На счёт лога - не пойму что в этом такого, что можно обсуждать.

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

Создано: 26 октября 2017 22:22 New!
Цитата · Личное сообщение · #5

ARCHANGEL пишет:
было сразу

Ни разу не "сразу" Вообще разные вещи.

Кстати сам TTD в дебагере был реализован еще десяток лет назад и использовался инженерами микрософт внутри компании и даже сейчас они его не опенсурсят.
Также обещали его завезти и в апдейте VS 2017.


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

Создано: 26 октября 2017 23:12 New!
Цитата · Личное сообщение · #6

sendersu
Ну как не бэктрейс когда бэктрейс. Только чтобы был backtrace, нужно вначале trace запустить. Попробуйте запустить трассировку, а потом обратную трассировку и смотрите на значения регистров - вот удивитесь.

difexacaw
Виндебаг это мощный инструмент, у него коммандный интерфейс и он нужен для решения сложных задач.

Всё относительно. Сложный он и мощный, если его нужно написать. А команды в нём выполнять можно также особо ничего не зная, как и кнопки в Олли жать.

VOLKOFF
Кстати сам TTD

Что такое TTD?

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

Создано: 26 октября 2017 23:48 New!
Цитата · Личное сообщение · #7

ARCHANGEL пишет:
Что такое TTD?

Time Travel Debugging

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


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

Создано: 27 октября 2017 00:01 New!
Цитата · Личное сообщение · #8

ARCHANGEL пишет:
А команды в нём выполнять можно также особо ничего не зная, как и кнопки в Олли жать.


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


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

Создано: 27 октября 2017 00:21 New!
Цитата · Личное сообщение · #9

VOLKOFF

Да, просто запоминание. Но вот архитектура не даёт делать аппаратный бэктрейс. Или я чего-то не знаю? С удовольствием вас послушаю.


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

Создано: 27 октября 2017 12:16 · Поправил: mak New!
Цитата · Личное сообщение · #10

ARCHANGEL пишет:

VOLKOFF

Да, просто запоминание. Но вот архитектура не даёт делать аппаратный бэктрейс. Или я чего-то не знаю? С удовольствием вас послушаю.


Эту тему ещё давно обсуждали, Replay Debug создаёт копию процесса типа Fork команда, если использовать Виртуализацию, то можно даже ядро отлаживать в таком виде. Архитектура не даёт, но это и не нужно. Обратная трасировка записанного контекста - это один из видов обратной трасировки. Есть ещё Dynamic Slicing, когда используют конкретные участки, т.е. обратная трасировка имеет разные техники. Что конкретно предоставили МС можно посмотреть ведь внутри, т.к. не ясно, используют ли они полный слепок программы или же только нарезку блоков.

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


Ранг: 488.4 (мудрец)
Статус: Участник

Создано: 27 октября 2017 12:38 New!
Цитата · Личное сообщение · #11

mak касательно ядра хз.. а вот бек трейс алго, вполне реально.. это банально построение трассы и потом читать ее на оборот.. тут ниче секретного нету.. примерно тоже самое что и взлом через покрытие кода.. "по касперскому"

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

Создано: 28 октября 2017 18:26 · Поправил: difexacaw New!
Цитата · Личное сообщение · #12

VodoleY

Покрытие кода" - эта муть работает просто, апп выполняется под визором/гпв и можно накопить любую трассу, любую выборку данных и вообще любое событие. В таком виде теряет смысл юзер дебаг. Не используйте понятие покрытия в обычном обсуждении, это не уместно.


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

Создано: 28 октября 2017 22:19 New!
Цитата · Личное сообщение · #13

difexacaw
Я хочу повторить такое:
апп выполняется под визором/гпв и можно накопить любую трассу

Можете посоветовать что-то почитать на эту тему?

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

Создано: 28 октября 2017 23:49 · Поправил: VOLKOFF New!
Цитата · Личное сообщение · #14

difexacaw пишет:
апп выполняется под визором/гпв и можно накопить любую трассу

Ну для простоты жизни (и в простых случаях) можно накопить и с Code Coverage Tool (или пин), которым обычно собираем трассу для того же --> Lighthouse <--.
Тотальная виртуализация часто бывает излишней и только добавляет работы, хотя некоторые шпроты можно только так и потрейсить...

Чисто для сисколов иногда удобно System Call Tracer поюзать, или аналоги, хотя это уже больше из разряда "удобняшек".


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

Создано: 29 октября 2017 00:33 New!
Цитата · Личное сообщение · #15

VOLKOFF пишет:
Чисто для сисколов иногда удобно System Call Tracer поюзать


Хочу уточнинить, это вот этот:
http://drmemory.org/strace_for_windows.html
от Dr. Memory?

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

Создано: 29 октября 2017 00:47 · Поправил: VOLKOFF New!
Цитата · Личное сообщение · #16

Ога, этот.
Можно еще fibratus потыкать, такие штуки как NtTrace и иже с ним, уже по другому работают, там не оч интересно.
Другие тулзы которые событийные подписки используют тоже есть годные, да и де-факто работают в кернелмоде. Только все это оффтоп однако...

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

Создано: 29 октября 2017 01:51 · Поправил: difexacaw New!
Цитата · Личное сообщение · #17

ARCHANGEL

Нет матчасти, техника предельно проста - выборка(instruction/data fetch) - трансляция - эмуляция. Нужен полноценный декодер инструкций, тот же пин например. Я не считаю такой подход годным, если не используется гпв, те полная виртуализация, то лишь прямое исполнение(dye(dynamic emulation)) актуально, как по причине профайла, так и совместимости. При этом выполняется лишь частичная эмуляция - только ветвлений, поток инструкций выполняется напрямую.

Добавлено спустя 32 минуты
ARCHANGEL

Наверно нужно добавить что dye в отличие от обычного локального гпв даёт гарантию стабильности, так для многих задач вероятный анстаб(ошибки эмуляции) просто не допустим фундаментально --> Link <--


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

Создано: 29 октября 2017 02:46 · Поправил: plutos New!
Цитата · Личное сообщение · #18

indy пишет:
Опишу вам ключевые принципы. Но вы должны понимать что данная тема оверхед, она не может быть раскрыта в виде текущего обсуждения, она слишком сложна. Эта тема - следующая публикация.

Почему вы думаете что где то можно почитать ?

Вы про это всё нигде не почитаете.



где именно можно найти "следующую публикацию"?

Или даже искать бесполезно?

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

Создано: 29 октября 2017 02:59 New!
Цитата · Личное сообщение · #19

plutos

Была мысль публикации к нг как обычно в inception-zine, но я сомневаюсь на счёт актуальности, так как всё обосрут как обычно. В планах закончить разработки и отписать Intel для реализации в железо.

| Сообщение посчитали полезным: ClockMan, plutos, VOLKOFF



Ранг: 523.6 (!)
Статус: Участник
оптимист

Создано: 29 октября 2017 03:12 New!
Цитата · Личное сообщение · #20

difexacaw
У тебя идеи хорошие но выражать их ты не умеешь и некоторым людям тебя вообще не понять

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



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

Создано: 29 октября 2017 03:19 · Поправил: plutos New!
Цитата · Личное сообщение · #21

difexacaw пишет:
но я сомневаюсь на счёт актуальности, так как всё обосрут как обычно


отчего же?
Как раз напротив, было бы очень интересно ознакомиться и поучиться.
Если будет (или есть уже) что-то систематезированое, то пожалуйста выкладывайте!
Даже если оно сырое, то это уже что-то.
Люди будут задавать вопросы, что-то будет добалено, что-то уйдет, а там рукой подать и до серьезной публикации или даже книги.
Тема нужная, интересная, материалов крайне мало, так что - ждем!

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

Создано: 29 октября 2017 03:52 New!
Цитата · Личное сообщение · #22

difexacaw пишет:
В планах закончить разработки и отписать Intel для реализации в железо


Внести свой вклад - бесценно, поддерживаю в начинаниях!

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


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

Создано: 29 октября 2017 04:01 · Поправил: difexacaw New!
Цитата · Личное сообщение · #23

VOLKOFF

Не вижу никакого юмора, это механизм защиты, который может быть реализован. И это выпилит всё OP дерьмо на уровне архитектуры.

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

Создано: 29 октября 2017 15:30 New!
Цитата · Личное сообщение · #24

difexacaw пишет: В планах закончить разработки и отписать Intel для реализации в железо.

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

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

Создано: 29 октября 2017 15:37 New!
Цитата · Личное сообщение · #25

shellstorm

Про код речи небыло. Впрочем не важно.)


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

Создано: 4 ноября 2017 20:08 · Поправил: DenCoder New!
Цитата · Личное сообщение · #26

DenCoder пишет:
Способен подвесить систему


Оказалось, что это сам ноут этим грешен и без WinDbg. В чём дело? - пока на это нет времени

P.S. Сносить что ли 10ку и ставить 7ку? Как-то жалко... Один раз уже так сделал...

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

Создано: 4 ноября 2017 20:22 New!
Цитата · Личное сообщение · #27

DenCoder пишет:
Сносить что ли 10ку и ставить 7ку?

С одной стороны безусловно да, с другой - новый WinDbg работать на 7-ке не будет... возможно никогда

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

Создано: 4 ноября 2017 21:24 New!
Цитата · Личное сообщение · #28

VOLKOFF пишет: с другой - новый WinDbg работать на 7-ке не будет

Грозились выпустить и для семерки, ибо жива и помирать пока что не собирается. Сейчас и для десятки не особо рабочие, поддерживает только юм32


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

Создано: 6 ноября 2017 10:38 New!
Цитата · Личное сообщение · #29

shellstorm пишет:
поддерживает только юм32

км32 тоже

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

Создано: 6 ноября 2017 13:10 New!
Цитата · Личное сообщение · #30

Сам отладчик да, но без некоторых фич, тот же TTD только ЮМ


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

Создано: 7 ноября 2017 01:35 New!
Цитата · Личное сообщение · #31

pegasus - Windbg extension DLL for emulation

Кто-нибудь использовал эту штуку? Что она реально дает?
<< . 1 . 2 . 3 . 4 . 5 . >>
 eXeL@B —› Софт, инструменты —› Использование WinDbg

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

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