-
Привет всем.
Подскажите как это реализорвать?
------------------------------
Приложение должно прерывать любые
попытки внедрения в определённый процесс.
И не довать влезть туда...
-------------------------------
Заранее спасибо.
-
Никак.
Для этого нужно иметь привелегии 0-го кольца, а приложение работает на 3-м.
А логику и код руткита, эффективно мешающего работе других потенциально живущих в системе руткитов, ни один идиот тебе здесь за здорово живешь не будет)
-
Пожалуй, если у тебя в системе есть другое приложение, которое будет проверять создало ли все же твое приложение Mutex если оно запущено и не создало, то значит запущено инжектом. Это самый простой способ.
Сергей М.Приложение должно прерывать любые
попытки внедрения в определённый процесс.
Зачем же так, ринг 0. Ринг 3 api hook примеры ms_rem в инете.
Еще можно проверять по свойствам и привилегиям на процессе, тс допустим если process_xp скачай и посмотри до инжекта и как после смотрится, по этим свойствам будет видно, что например добавились другие длл в загрузку этого процесса, карта памяти изменилась.
Советую почитать у того же мсрема статью про внедрение, реализованы несколько методов, по ним и можно сделать детектер.
-
Я так думаю ответ на данный вопрос ищут все современные разработчики AV продуктов. Технически это конечно возможно, но возможность эту должна обеспечивать ОС.
-
-
> tri3 (24.03.10 00:57) [2]
> Ринг 3 api hook
Внедрение с помощью документированых API-функций польз.режима - это далеко не "любая попытка".
Это всего лишь частный и вовсе не единственный способ технологии и методики внедрения)
-
все равно влезут
-
Сергей М.
Зачастую делают креатпроцесс или инжект длл. Это 70% точно. 3-им можно обойтись, как сервис себя прописать. Все.
-
> tri3 (24.03.10 13:04) [7]
Да мало ли чего еще "делают зачастую" !
Под это самое "зачастую" тогда и задачу нужно формулировать)
А задача сформулирована "вселенского" масштаба - пресечь любые (!) попытки, а не только те которы якобы "зачастую")
-
Вобщем понятно, тёмный лес:)
Спасибо за ответы.
-
Есть другая идея.
Вобщем нужно сделать так:
Если пользователь запустил у себя какое либо окно,
то программа сверяет его название со списком окон исключений,
и если такого не находит, то закрывает его.
-
> Есть другая идея.
вообще в отдельной ветке бы а?)
-
> Если пользователь запустил у себя какое либо окно,
> то программа сверяет его название со списком окон исключений,
> и если такого не находит, то закрывает его.
Бить будут. Ногами.
-
> Если пользователь запустил у себя какое либо окно,
> то программа сверяет его название со списком окон исключений,
>
> и если такого не находит, то закрывает его.
А Зачем? Есть же штатный механизм блокирующий запуск любых приложений кроме тех, которые находятся в доверенном списке.
-
Мне надо чтобы юзер не знал об этом:)
И не он будет заполнять список этих приложений
-
Ещё один маленький вопрос:
Как найти окно с помощью Findwindow не по полному заголовку, а по части
Например найти все окна которые содержат в названии 'Opera'.
-
> ZeTToG350 (24.03.10 14:56) [14]
> Мне надо чтобы юзер не знал об этом:)
Если ты администратор домена то "юзер" ничего и не узнает, а если ты пишешь очередной локер рабочей станции с SMS деактивацией, то это не к нам а в местное УВД.
-
причем тут домен, и причем тут локер?
Это небольшая защита для моего сервера, чтобы игрок вместе с клиентом игры не запустил что-то левое...
А это левое внедряется в процесс игры и чудит там много чего лишнего.
-
> ZeTToG350 (24.03.10 15:36) [17]
>
> причем тут домен
При том, что имея права деменного админа ты можешь без ведома пользователя создать список доверенных приложений.
По поводу защиты для твоего сервера - тут без шансов, это просто не реально, тем более из третьего кольца.
-
Я уже почти все сделал..осталось пару штрихов..
Вот один из них
Как найти все окна которые содержат в названии 'Opera'.
-
> ZeTToG350 (24.03.10 16:14) [19]
EnumWindows + WM_GETTEXT + проверка_названия
-
a:= pos('Opera', buff);
где buff это масив с названиями окон..
Все всем спасибо....
-
Для винлокера лучше отключить хард =))))) \\ дерзкий))