Защита от вскрытия процесса

Тема в разделе "WASM.BEGINNERS", создана пользователем Killbrum, 9 май 2009.

  1. Killbrum

    Killbrum New Member

    Публикаций:
    0
    Регистрация:
    7 май 2009
    Сообщения:
    25
    Всем доброго времени суток! Ребята. Пожалуйста помогите реализовать защиту =) суть в чём. Надо как-то реализовать защиту чтобы посторонняя программа не могла Открыть\внедрится в мою. И скажем чтобы ... ну когда я через диспетчер убиваю процесс (именно процес, ведь при снимании задачи вызывается (у формы) OnDestroy) то моя программа просто моментально выгружается из памяти и даже не успевает "пикнуть" =) . Так вот... а мне бы хотелось чтобы когда мой процесс "убивают" вызывался сначала OnDestroy или тот же OnCloseQuerry =) заранее очень благодарен!!!

    З.Ы. очень надеюсь что тут мне помогут... а то уже на 2ух форумах никто ничего даже не подсказал ... :dntknw:
     
  2. Killbrum

    Killbrum New Member

    Публикаций:
    0
    Регистрация:
    7 май 2009
    Сообщения:
    25
    Ой извините ... забыл... пишу под Билдером 2009
     
  3. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Решение зависит от ваших возможностей. В любом случае придётся дров делать.
     
  4. Killbrum

    Killbrum New Member

    Публикаций:
    0
    Регистрация:
    7 май 2009
    Сообщения:
    25
    Дрова?... ем... да нет я думаю тут можно попроще =) мне ненадо сверх-супер-мега защиты и т.д. =) просто надо защититься от среднестатестического взлома\внедрения.


    2 експерт. Очень умно и познавательно. Интересно а зачем постится ? Тут вроде кол-ва сообщений же нету...
     
  5. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Проще можно, но както не по нашему :)
    Инжект, тоесть в контексте другого процесса исполняться, например в томже csrss.
    А обычная защита по типу захвата дескрипторов в сст это бесполезно. Например вот CyberLink PowerDVD защищается - перехватыват в сст NtDebugActiveProcess, NtDebugContinue, NtReadVirtualMemory, NtWriteVirtualMemory и NtSuspendProcess и подключает к себе отладчик, дабы отладочный порт был установлен, изза чего приаттачится к этому процессу не получится. Обходится элементарно - восстанавливаем сст, отключаем отладчик(NtRemoveProcessDebug). Теперь можно олю подключать..
    При завершении процесса вначале все потоки будут завершены, поэтому никакая нотификация не пройдёт, даже если ждать на обьекте, хотя в юзермоде ничего не сигнализируется если выполнен NtTerminateProcess.
     
  6. HuXTUS

    HuXTUS New Member

    Публикаций:
    0
    Регистрация:
    8 янв 2007
    Сообщения:
    240
    Сделай, чтобы запускалось два процесса. Пусть они следят друг за другом. Если одного убивают, второй реагирует.
     
  7. Killbrum

    Killbrum New Member

    Публикаций:
    0
    Регистрация:
    7 май 2009
    Сообщения:
    25
    Да я понимаю )))) но просто как... у меня пользователи не программисты =) и в крекинге то ничего не смыслят. Просто как... зная русского человека... если ему что то надо ))))))) то он загуглится поуши но найдет то что надо )))) а то что надо - будет какая-то тулза или что то такое какоторая может "усыпить" мой процесс или ещё что то не очень хорошое сделать =) но мне даже главное как не ОпенПроцесс... а именно чтобы при "убивании" моего процесса делалась определенная ф-ция. Или тогда лучше делать ещё один процесс который бы смотрел запущен ли первый и если нет то делал то что мне надо?
     
  8. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Что даст второй процесс, если их два завершат. Можно гденибудь поток создать ожидающий завершение другого процесса в WaitForSingleObject, но если его остановят это также бесполезно. Имхо отсутствие процесса(исполнение потока в другом) - лучшая его защита.
     
  9. maverick

    maverick New Member

    Публикаций:
    0
    Регистрация:
    16 апр 2008
    Сообщения:
    148
    http://www.rootkits.ru/app/ShowApp.aspx?id_a=37 ?
     
  10. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Гуан это а не защита. Там установка нотификатора на создание потоков(захват InitRoutine, CsrServerApiRoutine etc.) и проверка процесса родителя. Хучим KiUserApcDispatcher и без всяких проблем создаём удалённые потоки, фтопку эту статью.
     
  11. PSR1257

    PSR1257 New Member

    Публикаций:
    0
    Регистрация:
    30 ноя 2008
    Сообщения:
    933
    Killbrum

    А от чаго защищаемсо? От дампо и анализо "секретных" функций? Или чтобы "не срубили" процесс? В чем задача вообще? Ты пытаешься что-то контролировать и поэтому важно быть постоянно активным?
     
  12. TSS

    TSS New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    494
    PSR1257
    От инжекта, написано же.
    Killbrum
    Если защитить нужно именно от неопытных пользователей, то сделай это как делают фаерволы, т.е. перехват соответствующих функций в SDT. А чтобы какой-нибудь пытливый рукоблуд не снял хуки скачанной в гугле sdt restore или подобной, проверяй наличие свой обработчиков по таймеру. Ессно, все это легко снимается как сказал Clerk, но именно для твоей задачи этого будет достаточно как мне кажется.
     
  13. Killbrum

    Killbrum New Member

    Публикаций:
    0
    Регистрация:
    7 май 2009
    Сообщения:
    25
    Ребята всем большое спасибо! Т.к. я не мега крут в С++ и т.д. =) но всё же голова на плечах есть. Давайте подобьем итоги. Что лучше? Ну нет... конечно я понимаю ))))) что как писал Клерк прийдется писать драйвер ибо лучшего нету... нет вру =) есть. Электронная часть (микросхема которая впихается в ЮСБ например там уже защита 99% =) ). Ребята пожалуйста предложите оптимальный вариант для не суперского знатока С++ что бы скажем защита была не плохая =). И пожалуйста назвите вещи своими именами. А так хоть буду загугливатся и читать =). Всем большое спасибо ! =) Надеюсь ещё поможете)))
     
  14. TSS

    TSS New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    494
    google => перехват API функций + защита от инжекта + detours
     
  15. Flasher

    Flasher Member

    Публикаций:
    0
    Регистрация:
    31 янв 2004
    Сообщения:
    640
    Есть несколько аналогичных тем тут, предлагаю search'нуть.
     
  16. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Killbrum
    В большинстве случаев как показывает практика усилия кодера в сторону защиты бесполезны, будет взломано за минуты.