1 / 1 / 1
Регистрация: 12.12.2013
Сообщений: 95
|
|
1 | |
.NET 4.x Защита процесса от внедрения29.05.2014, 22:44. Показов 3701. Ответов 15
Метки нет (Все метки)
Здравствуйте! Не подскажет ли кто мне как защитить процесс [NameProc] от внедрения в него каких dll и тому подобное.. Т.е. защитить процесс от взаимодействия с другими программами. Если кто то затронул процесс [NameProc], то он завершается
Заранее спасибо!
0
|
29.05.2014, 22:44 | |
Ответы с готовыми решениями:
15
Защита процесса от закрытия(убийства) Защита процесса от вмешательства пользователя (взлома) Управление правилами и информацией запущеного процесса а также его защита Библиотеки процесса, защита от изменения процесса |
Ушел с форума
|
|
29.05.2014, 22:59 | 2 |
А от кого защищаемся ? От администраторов защищаться бесполезно,
они и так полноправные хозяева системы, могут творить все, что угодно. От обычных пользователей (т.н. "standard users") лучше всего защищаться повышением своего процесса до уровня администратора. Правда, такая защита стала полноценно работать только начиная с Vista. Другие защиты сложны и требуют всяких драйверов и т.п.
1
|
1 / 1 / 1
Регистрация: 12.12.2013
Сообщений: 95
|
|
29.05.2014, 23:20 [ТС] | 3 |
Должна защищаться не моя программа.. а стороняя.. т.е. моя программа "А" защищает программу "Б" от внедрений и изменений другими программами
0
|
Ушел с форума
|
|
30.05.2014, 09:41 | 4 |
Сути написанного выше это не меняет.
0
|
1 / 1 / 1
Регистрация: 12.12.2013
Сообщений: 95
|
|
30.05.2014, 09:43 [ТС] | 5 |
Ну а наблюдать за процессом как??
0
|
Ушел с форума
|
|
30.05.2014, 09:54 | 6 |
В том-то и дело, что таких функций нет. Отследить, когда кто-то открывает
процесс с правами на запись, уничтожение или создание удаленных потоков, вы не сможете. По крайней мере, из режима пользователя. Ну если только не похукать соответствующие функции во всех процессах, но это ставит под угрозу стабильность работы системы. А если в процесс устанавливают оконный хук, дело еще хуже, т.к. процесс "сам" загружает нужную dll-ку, в которой находится код перехватчика. В ядре Windows есть функции-перехватчики, но даже они вызываются пост-фактум, т.е. когда dll уже загружена.
1
|
1 / 1 / 1
Регистрация: 12.12.2013
Сообщений: 95
|
|
30.05.2014, 09:56 [ТС] | 7 |
0
|
Ушел с форума
|
|
30.05.2014, 10:01 | 8 |
Без разницы.
Для всяких проактивных защит есть специальный API, доступный начиная с Windows Vista SP1 и Windows Server 2008, называется ObRegisterCallbacks. Вот там можно контролировать доступ к процессам и потокам. Но это ядро. На более старых системах есть хуки системных вызовов, типа NtOpenProcess, но это тоже ядро. В режиме пользователя никакой защиты от открытия процессов нет, за исключением защиты на уровне DACL, т.е. списков контроля доступа, когда, к примеру, процесс админа защищен от процессов пользователя.
4
|
26 / 26 / 11
Регистрация: 08.08.2011
Сообщений: 1,172
|
|
30.05.2014, 10:08 | 9 |
Запускайте программу А, пусть она проверяет хеш сумму программы Б, а потом ее запускает. Программа А должна висеть в процессах и периодически проверять программу Б. Программа Б (защищаемая) не должна запускаться и работать, если программа А выключена. То есть в программу Б должны быть вставлены аналогичные проверки по таймеру.
0
|
1 / 1 / 1
Регистрация: 12.12.2013
Сообщений: 95
|
|
30.05.2014, 10:22 [ТС] | 10 |
0
|
26 / 26 / 11
Регистрация: 08.08.2011
Сообщений: 1,172
|
||||||
30.05.2014, 10:37 | 11 | |||||
Именно как написано.
В программу Б (защищаемую) делаете проверки: 1) чтобы программа А лежала с ней в одной директории; 2) чтобы она была запущена; 3) чтобы ее размер или хешсумма совпадали с заданными. Также делаете проверки по таймеру: 1) чтобы программа А была запущена; 2) чтобы она лежала в одной директории с программой Б. 3) чтобы ее размер или хешсумма совпадали с заданными. Если программ А выключена, то программа Б завершает работу. Если программа А запущена, но ее хешсумма неправильная (взломали защитника), то удаляем ее или подменяем, или портим саму программу Б с просьбой обратиться к разработчику. В программе А (пускач) делаете проверки: 1) чтобы программа Б лежала с ней в одной директории; 2) чтобы ее хешсумма совпадала с заданной. Если программа Б взломана (хешсумма не совпадает), то программу Б удаляем или подменяем на файл "пустышку", который будет при любом запуске писать ошибки и советовать обратиться к разработчику. После проверок через программу А запускаете программу Б. Также в программе А периодически (по timer.tick) делаете проверки: 1) чтобы с программой Б (защищаемой) все было в порядке (лежит в одной директории, хешсумма совпадает); 2) если программа Б выключена, то программа А должна также завершить свою работу. Процессы получаем через
1
|
1 / 1 / 1
Регистрация: 12.12.2013
Сообщений: 95
|
|
30.05.2014, 11:32 [ТС] | 12 |
А пример можно?? Как эт будет выглядить я понял, а вот как реализовать...
0
|
26 / 26 / 11
Регистрация: 08.08.2011
Сообщений: 1,172
|
|||||||||||
30.05.2014, 11:55 | 13 | ||||||||||
ivleb,
1) чтобы программа А лежала с ней в одной директории с программой Б;
http://stackoverflow.com/quest... -text-file 3) чтобы найти программу в процессах:
http://msdn.microsoft.com/ru-r... .110).aspx
0
|
1 / 1 / 1
Регистрация: 12.12.2013
Сообщений: 95
|
|
30.05.2014, 13:31 [ТС] | 14 |
Спасибо буду пробовать
Добавлено через 31 минуту Выдает ошибку: Присвоение значений для "Contains" невозможно, так как он "группа методов"
0
|
26 / 26 / 11
Регистрация: 08.08.2011
Сообщений: 1,172
|
||||||
30.05.2014, 14:19 | 15 | |||||
в скобки возьмите:
Таймер лучше поставить на 5 - 10 секунд, чтобы программа каждую секунду в процессах не искала (будет тормозить).
0
|
Ушел с форума
|
|
30.05.2014, 14:53 | 16 |
Suppir, топикстартер спрашивал о защите процесса, а не самого exe.
От, например, записи в память процесса или внедрения в него dll это не поможет.
0
|
30.05.2014, 14:53 | |
30.05.2014, 14:53 | |
Помогаю со студенческими работами здесь
16
Проекты внедрения ERP систем с открытым кодом - есть ли внедрения в России? Защита памяти процесса Защита процесса от завершения Защита процесса от убийства Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |