Re[10]: Создание поведенческого блокиратора
От: qweas  
Дата: 02.08.11 14:39
Оценка:
Здравствуйте, Геннадий Майко, Вы писали:
обратить внимание на fuzzy logic (нечеткую логику)

да-да, помниться контрольную по инт системам решал)))
Re[12]: Создание поведенческого блокиратора
От: qweas  
Дата: 02.08.11 14:40
Оценка:
Понял, спасибо. Опять же повторюсь, вы тут все очень отзывчивые)
Re[13]: Создание поведенческого блокиратора
От: Аноним  
Дата: 04.08.11 08:25
Оценка:
А>>Это мощный механизм, позволяющий безгеморно обслуживать множество клиентов.
1>Да. Но недокументированость ставит его использование под сомнение.

Это всё опенсурсное, врк официально открытый код.

1>Кстати, вы наверное правы по отношению к LPC в данной ситуации. Если человек делает под хр — то недокументированость становиться делом десятым. Вот в отношении скорости передачи, я с вами не согласен — через общею память (проэцируемые файлы) оно быстрей будет.


Готов поспорить на ящик пива что в W8 LPC не изменится.
Re[14]: Создание поведенческого блокиратора
От: x64 Россия  
Дата: 04.08.11 18:33
Оценка:
А>Готов поспорить на ящик пива что в W8 LPC не изменится.

Да, подобные технологии типа LPC/APC, которые тесно интегрированы в ядро, вряд ли когда-нибудь будут переписаны.
Re[15]: Создание поведенческого блокиратора
От: Аноним  
Дата: 04.08.11 19:40
Оценка:
Здравствуйте, x64, Вы писали:

А>>Готов поспорить на ящик пива что в W8 LPC не изменится.


x64>Да, подобные технологии типа LPC/APC, которые тесно интегрированы в ядро, вряд ли когда-нибудь будут переписаны.


Тогда что значит "не документировано", если механизмы не изменяются, ядро опенсурсное официально(рку) ?
Re[16]: Создание поведенческого блокиратора
От: x64 Россия  
Дата: 04.08.11 20:44
Оценка:
А>Тогда что значит "не документировано", если механизмы не изменяются, ядро опенсурсное официально(рку) ?

Слова "не документировано" значат ровно то, что они значат, ничего более. Нет гарантий, вот и всё, это очевидно. А исходники открыты только для Windows Server 2003 SP1, но даже если бы они были открыты и для всех последующих систем, один хрен — нет гарантий. Но если это кого-то устраивает, т.е. на будущие версии закладываться не требуется, — то разумеется, почему нет? Да, и "рку" это Rootkit Unhooker (RkU), а исходники Windows называются WRK, не путаем.
Re[17]: Создание поведенческого блокиратора
От: Аноним  
Дата: 05.08.11 07:06
Оценка:
Здравствуйте, x64, Вы писали:

А>>Тогда что значит "не документировано", если механизмы не изменяются, ядро опенсурсное официально(рку) ?


x64>Слова "не документировано" значат ровно то, что они значат, ничего более. Нет гарантий, вот и всё, это очевидно. А исходники открыты только для Windows Server 2003 SP1, но даже если бы они были открыты и для всех последующих систем, один хрен — нет гарантий. Но если это кого-то устраивает, т.е. на будущие версии закладываться не требуется, — то разумеется, почему нет? Да, и "рку" это Rootkit Unhooker (RkU), а исходники Windows называются WRK, не путаем.


Да вы правы. Это опечатка была(думал про одно, писал другое).
Re: Создание поведенческого блокиратора
От: qweas  
Дата: 02.10.11 20:40
Оценка:
И снова здравствуйте! Я ленив и мечтателен, посему за это время толком ничего не сделал. Ладно, терь к делу. Я читал о драйверах режима ядра, васм читал, шрайбера читал, по боьшей части по верхам. Созрели вопросы...
1. Касательно варианта замены таблицы сервисов. Шрайбер описал способ перехвата API с подтасовкой SDT, которая круто всё делает. Но тут же пишет, что не работает эта тема для некоторых функций того же ntdll и ntoskrnl.
2. Касательно варианта с отловом IRP. К какому устройству я должен подключаться? Какую инфу я могу извлечь таким способом? Обращение на зап/чт/пер/уд?
3. Я так понял, это максимум того, что можно выжать? Я понимамаю, что далеко не познал дзен, почитав пару статеек и книжку 10летней давности...
4. Если п.3==труе, на чем все-таки остановиться?(в контексте повед анализатора). Мне кажется, 1ый вар привлекателен тем, что можно будет легко обучить его, скормив строчку на овер 600 бит.

Оч жду ответов. Спс.
Re: Создание поведенческого блокиратора
От: Аноним  
Дата: 02.10.11 21:39
Оценка:
Здравствуйте, qweas.

На мой взляд хуки не совсем то, что нужно. Я бы на вашем месте писал драйвер уровня ядра, который поставил бы jmp с начала каждой API функции (конечно же native API, поскольку обычные API — лишь оболочка для native). Драйверу уровня ядра невозможно помешать работать, у него абсолютная власть в системе.
И в дополнение, Ваш драйвер может следить, чтобы никакая другая программа не устанавливала jmp на начало системной функции. Если устанавливает — 95% гарантия, что это руткит.
Re[2]: Создание поведенческого блокиратора
От: Аноним  
Дата: 03.10.11 03:53
Оценка:
> Ваш драйвер может следить, чтобы никакая другая программа не устанавливала jmp на начало системной функции. Если устанавливает — 95% гарантия, что это руткит.

Как бы руткитом не может называться прога, которая разрушает целостность системных модулей. Руткит скрытно действует по определению, если патчит то это не руткит.
Re[2]: Создание поведенческого блокиратора
От: 11molniev  
Дата: 03.10.11 16:15
Оценка:
Здравствуйте, qweas, Вы писали:

Q>И снова здравствуйте! Я ленив и мечтателен, посему за это время толком ничего не сделал. Ладно, терь к делу. Я читал о драйверах режима ядра, васм читал, шрайбера читал, по боьшей части по верхам. Созрели вопросы...

Q> 1. Касательно варианта замены таблицы сервисов. Шрайбер описал способ перехвата API с подтасовкой SDT, которая круто всё делает. Но тут же пишет, что не работает эта тема для некоторых функций того же ntdll и ntoskrnl.
Этот вариант работает для абсолютно всех функций вызываемых всеми программами, кроме драйверов. Не помню/нечитал этот фрагмент, но подразумеваеться, что заменой в этой таблице можно перехватывать ограничены перечень из нескольких сотен api функций, через которые все приложения общаются с ядром и дровами. Для поведенческого блокиратора способ самый простой (+ не задеваете работу kernel mode и имеете меньший геморой связанный с перехватом вызовов идущих от драйверов).

Q> 2. Касательно варианта с отловом IRP. К какому устройству я должен подключаться? Какую инфу я могу извлечь таким способом? Обращение на зап/чт/пер/уд?

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

Q> 3. Я так понял, это максимум того, что можно выжать? Я понимамаю, что далеко не познал дзен, почитав пару статеек и книжку 10летней давности...

Для чего выжать? можно делать нелегальные перехваты через смену обработчика 2eh/sysenter, правку sdt, спайсинг функций, переопределение irp обработчиков, патчинг образа ядра/дров на диске...
Можно выжимать легальные возможности через драйверы фильтры всех калибров + стандартное api для антивирей и файверловов..
Можно полулегально взять исходники ядра из WRK, дописать все что нужно и просто "обновить" его на целевой машине...
И это навскидку — вспомнил пока писал.

Q> 4. Если п.3==труе, на чем все-таки остановиться?(в контексте повед анализатора). Мне кажется, 1ый вар привлекателен тем, что можно будет легко обучить его, скормив строчку на овер 600 бит.

1. Если целевая ос WinXP и переноса на более новые версии не планируется — пользуйтесь sdt. Для хрюшки чуть ли не документированый метод реализации проактивок — версии каспера тех времен к примеру именно так и работали.
2. Если пункт 1 и хорошо понимаете что да как — допишите свой код в исходники ядра из WRK и откомпилируйте))
3. Если есть планы когда нибудь перенести дальше хп — драйверы фильтры очевидный выбор. А уж на какое именно устройство — когда изучите достаточно для написания такого драйвера без сильных глюков поймете.

Q>В голове мешанина и + к этому не совсем понимаю токостей переключения контектов процессов, связи этого с IRQL и взаимных блокировок. Вроде во всех 3 источниках есть по немногу, но блин всеравно непонятно)

Рекомендую ознакомиться с работой защитного режима процессора для понимания тонкостей переключения контекстов (хорошая книга "Защищенный режим процессоров Intel 80286/80386/80486"). Там расписано более чем подробно.
О irql вам в принципе достаточно знать — что оно есть и если текущий уровень выше PASIV (или как он там) — то можно использовать ограниченный перечень апи и как можно скорей возвращать управление.
Взаимные блокировки — это взаимные блокировки, что в обычных программах, что в ядре разницы особо нет.
О каждом из этих трех аспектов можно лекции читать)) Поэтому сформулируйте более конкретные вопросы.

Q>Сейчас буду WDKшный FileSpy потрошить

В сети есть ещё исходники filemon — с неплохими комментариями.

И самое главное. Ваши вопросы и "по боьшей части по верхам" говорит о поверхностном ознакомлении с предметом. По отношению к низкоуровневому программированию такой подход неприменим. Лучше один раз внимательно прочесть имеющеюся литературу и разобраться с тем, что в ней написано, чем потом днями напролет пытаться отладит программный код низкого качества. Это сэкономит время.
Re: Создание поведенческого блокиратора
От: qweas  
Дата: 08.10.11 13:07
Оценка:
Курил ассемблерную реализацию Шрайбера, решил еще поискать, нашел утилиту Strace http://wasm.ru/baixado.php?mode=tool&amp;id=241. Принцип понял, не пойму как устанавливаются хуки в структурах syscall_map(поля fn и hook). Кто знает — хелп плз, нужно понять и <s>простить</s>...пожалуй еще раз понять)) Что за адовые нагромождения из MagicFoo??
Re[2]: Создание поведенческого блокиратора
От: qweas  
Дата: 08.10.11 13:27
Оценка:
Пожалуй главный вопрос — как заполняются карты вызовов???
Re[3]: Создание поведенческого блокиратора
От: qweas  
Дата: 08.10.11 14:09
Оценка:
Здравствуйте, qweas, Вы писали:

Q>Пожалуй главный вопрос — как заполняются карты вызовов???


Ура, разобрался. Но если у вас есть комменты по этой утилите, запостите плз.
Re: Создание поведенческого блокиратора
От: qweas  
Дата: 12.10.11 22:18
Оценка:
И снова здравствуйте! На данном этапе у меня получилось успешно поменять адреса в SDT. Сам факт перехвата обнаруживаю пока DbgPrint'ом и сладострастным наблюдением сего в DebugView. Теперь мне эти данные нужно собирать, вот вопрос как это делать. DeviceIOControl'ом? Или сделать какой-нибудь Tracelist?

Заранее спс.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.