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

 eXeL@B —› Оффтоп —› DebugAPI vs Ring0
<< . 1 . 2 .
Посл.ответ Сообщение


Ранг: 136.0 (ветеран), 360thx
Активность: 0.270.14
Статус: Участник
Qt Developer

Создано: 29 января 2014 16:09 · Поправил: hors
· Личное сообщение · #1

Интересная тема для оффтопа.

С разрешения автора привожу текст (все ники, какие возможно, убраны):

<здесь был ник> пишет:

Нет смысла делать отладчик без хвостов в нулевом уровне. DEBUG API винды это архитектурный понос. Поделок на базе него сделано уже овер 1000 и <здесь был ник> при все моем уважении к нему делает очередную поделку. О вкусах не спорят, но какие могут быть вкусы, если я за 5 минут могу наваять программу, которая выбросит OllyDbg или в вылет или в синий экран (при наличии фантома). Никто просто качественный софт в мире реверс-инженерии не видел, а все кто хотел не справились с задачей морально, отсюда и все холивары. А идея в том (не только у меня, а вообще у всех кто имеет представление об отладке и о внутреннем устройстве DEBUG API) чтобы обойти DEBUG API и делать все на прямую - где перехватом IDT (например, захват pagefault'ов в обход механизма свопа, чтобы тот не испоганил наши хак-методы бряков на память и абсолютно невидимых точек останова), где через KiDispatchException (куда летят все исключения всех программ, дабы обработать их через SEH/VEH или вызовом AeDebug). Еще отладка ускоряется тем, что API выглядят НЕ так:

BOOL WINAPI WaitForDebugEvent(
_Out_ LPDEBUG_EVENT lpDebugEvent,
_In_ DWORD dwMilliseconds
);
BOOL WINAPI ContinueDebugEvent(
_In_ DWORD dwProcessId,
_In_ DWORD dwThreadId,
_In_ DWORD dwContinueStatus
);

А вот так:

DBGAPI_API
int CALLING_CONVENTION dbg_continue_event(
PVOID remote_id,
HANDLE proc_id,
u32 status,
PEXCEPTION_RECORD new_record
);

На хуя две API??? Каким наркотиком надо было колоться, чтобы это придумать??? Индуссо-китайский код мелкософта, работникам которого важней получить премию в конце года против написать хороший код и концепт. В итоге имеем два системных вызова, которая идут следом друг за другом. В NIX'ах вообще всю отладку делает одна функция - ptrace(). Там у них на это хватило ума.

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

Вы почему-то путаете ядерный отладчик и концепцию <здесь было название отладчика>. Все говорят, на кой хрен GUI к ядерному отладчику (типа намек на удаленную отладку). Ну так вот. <здесь было название отладчика> никогда не планировался быть ядерным отладчиком, а драйвер нужен чтобы сделать его невидимым. Абсолютно невидимым, если у защиты нет драйвера. А от драйверов большинство "защитников" отказались. Вот и все. И поэтому немного смешно наблюдать за поделиями вроде умершего уже EDB, умирающей OllyDbg (а она умрет) и "рожденного мертвым" отладчика <здесь был ник>. GUI там вроде годный намечается, но я боюсь, они его сильно испортят жестким натягиванием на x86_64/x86 архитектуру и Windows DEBUG API.


Давайте обсудим:

1) Концепцию идеального отладчика.
2) DebugAPI vs Ring0.
3) Умрет ли OllyDbg.
4) Нужно ли, если задача только скрытие отладки, писать новый отладчик. (Возможно для этого достаточно написания плагинов к уже существующим?)

-----
http://ntinfo.biz





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

Создано: 30 января 2014 18:39
· Личное сообщение · #2

олли дебг для ring3
если писать идеальный дебаггер который будет захватывать и ring0, то почему бы нет




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

Создано: 30 января 2014 20:44 · Поправил: Dr0p
· Личное сообщение · #3

Полная виртуализация к сабжу отношения вообще не имеет. Трассировка должна выполняться через виртуализацию, но частичную - копируем инстрнукцию в буфер и исполняем; так VMBE мотор робит.

В остальном всё уже реализовано, повторяюсь; почему то мой пост проигнорили. Сайд это по сути монитор сисколов и фолтов(исключений). Был добавден бэкдор специально для расшаривания функционала. Тоесть надо нам добавить какой то код в ядро - не нужно свои записи ставить в сст, это же нубство, мы вызываем сайд и передаём ему код, он будет загружен в невыгружаемый пул и далее вызывается. Фактически это можно назвать оверлеем. К сожалению никто не осилил, хотя я выложил полный пак для билда. Два человека взялись за него, int и с виксов один. Но пока продвижений не видно.




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

Создано: 30 января 2014 20:53
· Личное сообщение · #4

На счёт цитаты скажу однозначно:

> На хуя две API??? Каким наркотиком надо было колоться, чтобы это придумать???

Написавший это чувак не осознаёт механизм в целом, он его понимает на уровне прототипов винапишных. Базовый нэйтивный функционал очень прост. Это как обычно винапи толстые. Но суть не в этом. Зачем цитировать не шарящих людей ?

Вот есчо, весь бред мне напряжно читать:

> А плохо тем, что каждое отладочное событие обрабатывается в два раз медленнее, т.к. процессор выполняет огромное число операций по переходу из ring3 в ring0 и обратно.

Межкольцевые переключения неизбежны, это единственный путь в ядро, фундаметально - два разных мода. Но реальная задержка не в самом механизме свичей, она в синхронизации и в пользовательском коде. Например под олькой фолты примерно 100%200k/s. Это сугубо олли тормоза, не порта.

Скажу тс - вы процитировали какого то нуба, который для вас является авторитетом. Это инвалидное восприятие.




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

Создано: 30 января 2014 21:29
· Личное сообщение · #5

reversecode

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

Эмуляция апи могла только аверу на ум придти

Моё не оспоримое мнение:

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




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

Создано: 30 января 2014 21:35 · Поправил: reversecode
· Личное сообщение · #6

клерк уже урожай грыбов приехал?)) где тебе умуляция апи привиделась?
а до боша еще дорости, ты ничего никогда не отлаживал дальше x86 ))
так что суши и кури дальше




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

Создано: 30 января 2014 21:47 · Поправил: Dr0p
· Личное сообщение · #7

reversecode

Хороший, годный спам. Как всегда. Я бы на месте модеров тебя выпилил нахер.

Грибов нет, снег везде. И я предпочитаю чтоб меня Инде называли, клерк это старый ник(deprec.) и ассоциируется с лабом.



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

Создано: 30 января 2014 21:51
· Личное сообщение · #8

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


Я понял, о чем вы говорите, только вопрос, для чего эмулить тот же MessageBox?
Понимаю, что это все круто, только дожить бы, но вы явно нацелились в долгожители.

Nimnul пишет: А звидец настанет от чего угодно, помните что в программе нет ни единого лишнего байта.

Не настанет.
То что вы описываете сопоставимо с бошем и половиной оси в придачу.




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

Создано: 30 января 2014 21:59
· Личное сообщение · #9

F_a_u_s_t

Как говорил мой покойный учитель - можно слушать, но не слышать..

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


Ранг: 136.0 (ветеран), 360thx
Активность: 0.270.14
Статус: Участник
Qt Developer

Создано: 30 января 2014 22:47 · Поправил: hors
· Личное сообщение · #10

Dr0p пишет:
Скажу тс - вы процитировали какого то нуба, который для вас является авторитетом. Это инвалидное восприятие.


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

Dr0p пишет:
Зачем цитировать не шарящих людей ?


Каждый человек имеет право на своё мнение. Его текст мне показался интересным и я его опубликовал(с его разрешения). Это имело смысл хотя бы потому, что Вы(ровно как я и остальные) сейчас здесь пишите.

-----
http://ntinfo.biz





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

Создано: 30 января 2014 23:17
· Личное сообщение · #11

Dr0p
под твоим главнокомандованием уже умер и ушел в небытие не один форум , так что кого кого а твой акк я бы удалял вместе с твоими постами))




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

Создано: 31 января 2014 18:19
· Личное сообщение · #12

reversecode

> под твоим главнокомандованием уже умер и ушел в небытие не один форум

Они не из за меня закрылись. Сейчас один по виксам в сети норм и не собирается закрываться.



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

Создано: 03 февраля 2014 09:32
· Личное сообщение · #13

Dr0p пишет:
один по виксам в сети норм

Это не http://vxforum.net/b/ ? Где за год 2000 постов, из них 90% за авторством самого клерка, из которых половина посвящена говнометанию в адрес тех, кого клерк в силу определенной умственной ограниченности не понимает и понять не пытается, а вторая половина - неведомой херне (VMBE сайд мотор и пр), которая даже на компе клерка запускается через раз




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

Создано: 03 февраля 2014 09:52
· Личное сообщение · #14

spinz

> клерк в силу определенной умственной ограниченности не понимает и понять не пытается

Маглы и прочие умственно отсталые(христанутые етц). Что там понимать то

> которая даже на компе клерка запускается через раз

Тоесть ты даже не запуская ничего сделал такой вывод ?



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

Создано: 03 февраля 2014 10:26
· Личное сообщение · #15

Чтобы определить дерьмо не обязательно его пробовать на вкус.




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

Создано: 03 февраля 2014 11:15
· Личное сообщение · #16

spinz

Конкретный пример приведите.



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

Создано: 03 февраля 2014 11:35
· Личное сообщение · #17

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




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

Создано: 03 февраля 2014 11:47
· Личное сообщение · #18

spinz

Ты ошибаешся.




Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 03 февраля 2014 13:15
· Личное сообщение · #19

Dr0p пишет:
Эта задача тривиальна и на реализацию нужно не много времени.


side у тебя есть, ольга (вторая) тоже. Времени надо не много. Так почему не запилишь?




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

Создано: 03 февраля 2014 13:34
· Личное сообщение · #20

Gideon Vi

Так пока мне большего не нужно




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

Создано: 09 февраля 2014 17:25
· Личное сообщение · #21

spinz пишет:
Я не слышал ни одного положительного отзыва в адрес всех твоих хваленых мегадвигов.

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

spinz пишет:
Выводов можно сделать несколько: либо они действительно дерьмо...

Я могу сделать только один вывод - так судят только примАтивные люди, жаждующие выразить свою неприязнь и прошлые обиды кажущимися им умными словами!

spinz пишет:
Не исключено, что я ошибаюсь конечно.

Если допускаете вероятность ошибки, а следовательно не уверены в своих словах, то странно всё это писать, зная что человеку будет неприятно!

-----
IZ.RU





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

Создано: 09 февраля 2014 17:31 · Поправил: Dr0p
· Личное сообщение · #22

DenCoder

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



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

Создано: 09 февраля 2014 19:17
· Личное сообщение · #23

2DenCoder
С инде все понятно, его повышенная активность сегодня вполне объяснима - походу он все же отыскал свою старую заначку грибов с прошлого лета. А с тобой что? Опять крепко засинячил?




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

Создано: 09 февраля 2014 22:49
· Личное сообщение · #24

spinz
spinz пишет:
А с тобой что? Опять крепко засинячил?

А я уж было думал, что ты сам был под синькой. Я не пророк, но всё очевидно - не следишь за языком, судишь от обид... при даже самом наилучшем раскладе тебе это частенько боком выходит даже без синьки. И ещё раз и ещё боком выйдет!
Ты не знаешь меня! И берёшься обо мне говорить? Опрометчиво! Для такого рейтинга это уже обо многом говорит

Dr0p
Ну мне хватает DebugAPI. Для себя пока интуитивно отметил будущую пользу в предлагаемых тобой методах. Не сталкивался пока с задачами, где бы пришлось сменить арсенал. Было дело - думал уже, но где проигрывает Фантом и OllyExt, СтронгОдд всё прекрасно разрулил. Возможно надо уже сейчас думать о будущем, но время попробовать что-то новое надо ещё найти. Лучше всего - это столкнуться с такой задачей и чтобы она была попутна. А это маловероятно на ближайшие полгода. )

-----
IZ.RU



<< . 1 . 2 .
 eXeL@B —› Оффтоп —› DebugAPI vs Ring0

У вас должно быть 20 пунктов ранга, чтобы оставлять сообщения в этом подфоруме, но у вас только 0

   Для печати Для печати