Всем доброго времени суток! Ребята. Пожалуйста помогите реализовать защиту =) суть в чём. Надо как-то реализовать защиту чтобы посторонняя программа не могла Открыть\внедрится в мою. И скажем чтобы ... ну когда я через диспетчер убиваю процесс (именно процес, ведь при снимании задачи вызывается (у формы) OnDestroy) то моя программа просто моментально выгружается из памяти и даже не успевает "пикнуть" =) . Так вот... а мне бы хотелось чтобы когда мой процесс "убивают" вызывался сначала OnDestroy или тот же OnCloseQuerry =) заранее очень благодарен!!! З.Ы. очень надеюсь что тут мне помогут... а то уже на 2ух форумах никто ничего даже не подсказал ...
Дрова?... ем... да нет я думаю тут можно попроще =) мне ненадо сверх-супер-мега защиты и т.д. =) просто надо защититься от среднестатестического взлома\внедрения. 2 експерт. Очень умно и познавательно. Интересно а зачем постится ? Тут вроде кол-ва сообщений же нету...
Проще можно, но както не по нашему Инжект, тоесть в контексте другого процесса исполняться, например в томже csrss. А обычная защита по типу захвата дескрипторов в сст это бесполезно. Например вот CyberLink PowerDVD защищается - перехватыват в сст NtDebugActiveProcess, NtDebugContinue, NtReadVirtualMemory, NtWriteVirtualMemory и NtSuspendProcess и подключает к себе отладчик, дабы отладочный порт был установлен, изза чего приаттачится к этому процессу не получится. Обходится элементарно - восстанавливаем сст, отключаем отладчик(NtRemoveProcessDebug). Теперь можно олю подключать.. При завершении процесса вначале все потоки будут завершены, поэтому никакая нотификация не пройдёт, даже если ждать на обьекте, хотя в юзермоде ничего не сигнализируется если выполнен NtTerminateProcess.
Сделай, чтобы запускалось два процесса. Пусть они следят друг за другом. Если одного убивают, второй реагирует.
Да я понимаю )))) но просто как... у меня пользователи не программисты =) и в крекинге то ничего не смыслят. Просто как... зная русского человека... если ему что то надо ))))))) то он загуглится поуши но найдет то что надо )))) а то что надо - будет какая-то тулза или что то такое какоторая может "усыпить" мой процесс или ещё что то не очень хорошое сделать =) но мне даже главное как не ОпенПроцесс... а именно чтобы при "убивании" моего процесса делалась определенная ф-ция. Или тогда лучше делать ещё один процесс который бы смотрел запущен ли первый и если нет то делал то что мне надо?
Что даст второй процесс, если их два завершат. Можно гденибудь поток создать ожидающий завершение другого процесса в WaitForSingleObject, но если его остановят это также бесполезно. Имхо отсутствие процесса(исполнение потока в другом) - лучшая его защита.
Гуан это а не защита. Там установка нотификатора на создание потоков(захват InitRoutine, CsrServerApiRoutine etc.) и проверка процесса родителя. Хучим KiUserApcDispatcher и без всяких проблем создаём удалённые потоки, фтопку эту статью.
Killbrum А от чаго защищаемсо? От дампо и анализо "секретных" функций? Или чтобы "не срубили" процесс? В чем задача вообще? Ты пытаешься что-то контролировать и поэтому важно быть постоянно активным?
PSR1257 От инжекта, написано же. Killbrum Если защитить нужно именно от неопытных пользователей, то сделай это как делают фаерволы, т.е. перехват соответствующих функций в SDT. А чтобы какой-нибудь пытливый рукоблуд не снял хуки скачанной в гугле sdt restore или подобной, проверяй наличие свой обработчиков по таймеру. Ессно, все это легко снимается как сказал Clerk, но именно для твоей задачи этого будет достаточно как мне кажется.
Ребята всем большое спасибо! Т.к. я не мега крут в С++ и т.д. =) но всё же голова на плечах есть. Давайте подобьем итоги. Что лучше? Ну нет... конечно я понимаю ))))) что как писал Клерк прийдется писать драйвер ибо лучшего нету... нет вру =) есть. Электронная часть (микросхема которая впихается в ЮСБ например там уже защита 99% =) ). Ребята пожалуйста предложите оптимальный вариант для не суперского знатока С++ что бы скажем защита была не плохая =). И пожалуйста назвите вещи своими именами. А так хоть буду загугливатся и читать =). Всем большое спасибо ! =) Надеюсь ещё поможете)))
Killbrum В большинстве случаев как показывает практика усилия кодера в сторону защиты бесполезны, будет взломано за минуты.