Конференция "WinAPI" » Запрет внедрения в процесс [D7, WinXP]
 
  • ZeTToG350 (23.03.10 17:08) [0]
    Привет всем.
    Подскажите как это реализорвать?
    ------------------------------
    Приложение должно прерывать любые
    попытки внедрения в определённый процесс.
    И не довать влезть туда...
    -------------------------------
    Заранее спасибо.
  • Сергей М. © (23.03.10 21:38) [1]
    Никак.
    Для этого нужно иметь привелегии 0-го кольца, а приложение работает на 3-м.
    А логику и код руткита, эффективно мешающего работе других потенциально живущих в системе руткитов, ни один идиот тебе здесь за здорово живешь не будет)
  • tri3 (24.03.10 00:57) [2]
    Пожалуй, если у тебя в системе есть другое приложение, которое будет проверять создало ли все же твое приложение Mutex если оно запущено и не создало, то значит запущено инжектом. Это самый простой способ.

    Сергей М.
    Приложение должно прерывать любые
    попытки внедрения в определённый процесс.



    Зачем же так, ринг 0. Ринг 3 api hook примеры ms_rem в инете.
    Еще можно проверять по свойствам и привилегиям на процессе, тс допустим если process_xp скачай и посмотри до инжекта и как после смотрится, по этим свойствам будет видно, что например добавились другие длл в загрузку этого процесса, карта памяти изменилась.

    Советую почитать у того же мсрема статью про внедрение, реализованы несколько методов, по ним и можно сделать детектер.
  • Rouse_ © (24.03.10 01:04) [3]
    Я так думаю ответ на данный вопрос ищут все современные разработчики AV продуктов. Технически это конечно возможно, но возможность эту должна обеспечивать ОС.
  • Игорь © (24.03.10 06:43) [4]

    > ZeTToG350   (23.03.10 17:08)


    Перехват функций как это делают AV, например с помощью madCodeHook http://www.madshi.net/madCodeHookDescription.htm
  • Сергей М. © (24.03.10 08:12) [5]

    > tri3   (24.03.10 00:57) [2]


    > Ринг 3 api hook


    Внедрение с помощью документированых API-функций польз.режима - это далеко не "любая попытка".
    Это всего лишь частный и вовсе не единственный способ технологии и методики внедрения)
  • Игорь Шевченко © (24.03.10 12:35) [6]
    все равно влезут
  • tri3 (24.03.10 13:04) [7]
    Сергей М.

    Зачастую делают креатпроцесс или инжект длл. Это 70% точно. 3-им можно обойтись, как сервис себя прописать. Все.
  • Сергей М. © (24.03.10 13:38) [8]

    > tri3   (24.03.10 13:04) [7]


    Да мало ли чего еще "делают зачастую" !
    Под это самое "зачастую" тогда и задачу нужно формулировать)
    А задача сформулирована "вселенского" масштаба - пресечь любые (!) попытки, а не только те которы якобы "зачастую")
  • ZeTToG350 (24.03.10 14:33) [9]
    Вобщем понятно, тёмный лес:)
    Спасибо за ответы.
  • ZeTToG350 (24.03.10 14:37) [10]
    Есть другая идея.
    Вобщем нужно сделать так:
    Если пользователь запустил у себя какое либо окно,
    то программа сверяет его название со списком окон исключений,
    и если такого не находит, то закрывает его.
  • brother © (24.03.10 14:40) [11]
    > Есть другая идея.

    вообще в отдельной ветке бы а?)
  • oldman © (24.03.10 14:40) [12]

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


    Бить будут. Ногами.
  • Rouse_ © (24.03.10 14:40) [13]

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

    А Зачем? Есть же штатный механизм блокирующий запуск любых приложений кроме тех, которые находятся в доверенном списке.
  • ZeTToG350 (24.03.10 14:56) [14]
    Мне надо чтобы юзер не знал об этом:)
    И не он будет заполнять список этих приложений
  • ZeTToG350 (24.03.10 15:19) [15]
    Ещё один маленький вопрос:
    Как найти окно с помощью Findwindow не по полному заголовку, а по части
    Например найти все окна которые содержат в названии 'Opera'.
  • Rouse_ © (24.03.10 15:24) [16]

    > ZeTToG350   (24.03.10 14:56) [14]
    > Мне надо чтобы юзер не знал об этом:)

    Если ты администратор домена то "юзер" ничего и не узнает, а если ты пишешь очередной локер рабочей станции с SMS деактивацией, то это не к нам а в местное УВД.
  • ZeTToG350 (24.03.10 15:36) [17]
    причем тут домен, и причем тут локер?

    Это небольшая защита для моего сервера, чтобы игрок вместе с клиентом игры не запустил что-то левое...
    А это левое внедряется в процесс игры и чудит там много чего лишнего.
  • Rouse_ © (24.03.10 16:01) [18]

    > ZeTToG350   (24.03.10 15:36) [17]
    >
    > причем тут домен

    При том, что имея права деменного админа ты можешь без ведома пользователя создать список доверенных приложений.
    По поводу защиты для твоего сервера - тут без шансов, это просто не реально, тем более из третьего кольца.
  • ZeTToG350 (24.03.10 16:14) [19]
    Я уже почти все сделал..осталось пару штрихов..
    Вот один из них

    Как найти все окна которые содержат в названии 'Opera'.
  • Юрий Зотов © (24.03.10 17:03) [20]
    > ZeTToG350   (24.03.10 16:14) [19]

    EnumWindows + WM_GETTEXT + проверка_названия
  • ZeTToG350 (24.03.10 17:40) [21]
    a:= pos('Opera', buff);

    где buff это масив с названиями окон..
    Все всем спасибо....
  • tri3 (24.03.10 20:08) [22]
    Для винлокера лучше отключить хард =))))) \\ дерзкий))
 
Конференция "WinAPI" » Запрет внедрения в процесс [D7, WinXP]
Есть новые Нет новых   [134470   +13][b:0][p:0.001]