|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
16.04.2012, 08:10 | #1 |
Участник клуба
Регистрация: 09.11.2007
Сообщений: 1,761
|
Самозащита программы
Здравствуйте. Очень интересно узнать как работает самозащита программ, например таких как антивирусы. Когда эта самозащита включена, то невозможно удалить файлы программы, а так же ключи реестра, которые использует программа. Вот как этого можно добиться и что это вообще за зверь такой?
Заранее благодарен. |
16.04.2012, 09:08 | #2 | |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
Цитата:
А также невозможно удалить любой файл, пока он открыт через CreateFile. Пока программа выполняется, ей ни что не мешает проверять свою ветку реестра, и переписывать ключи заново, если там несанкционированные действия. |
|
16.04.2012, 09:18 | #3 |
Участник клуба
Регистрация: 09.11.2007
Сообщений: 1,761
|
Ну с исполняемым файлом то всё понятно. А вот ключи реестра она не перезаписывает, а просто не даёт их поменять. Выходит ошибка доступа.
Спасибо конечно за ответ, но вы думаете не в том направлении. |
16.04.2012, 09:19 | #4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
антивирусы обычно имеют драйвер который контролирует все это.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
16.04.2012, 09:24 | #5 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Если в своей проге открыть любые файлы, то их тоже не удалить. А если еще и монопольно, то их и не открыть сторонней программе. Понятно, что это только при работающей проге. По защите ключей реестра посмотрите статью от rpy3uH-а http://pblog.ru/?p=759
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
16.04.2012, 09:37 | #6 |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
Это Вы спрашиваете не в том направлении. LPSECURITY_ATTRIBUTES
зы. Да и имхо можно просто держать открытым RegOpenKeyEx. Последний раз редактировалось EUGY; 16.04.2012 в 09:45. |
16.04.2012, 09:49 | #7 |
Участник клуба
Регистрация: 09.11.2007
Сообщений: 1,761
|
Почему же самозащиту можно отключить только с последующий перезагрузкой винды? Отсюда следует, что это не просто "ДЕРЖАТЬ ОТКРЫТЫМИ ФАЙЛЫ И КЛЮЧИ РЕЕСТРА". Здесь что-то другое. Вопрос что?
|
16.04.2012, 09:51 | #8 | |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
Цитата:
Вот если бы вы спросили, как же, черт возьми, антивирусы делают так, что их процесс в диспетчере не удалить, тогда бы Вы думали в верном направлении. |
|
16.04.2012, 10:43 | #9 |
Участник клуба
Регистрация: 09.11.2007
Сообщений: 1,761
|
А причём тут "Антивирус запущен". Это не мешает ему закрыть (отпустить) ветку реестра. Для этого не нужно винду перезагружать. то же самое и с файлами.
|
16.04.2012, 14:53 | #10 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Антивирусы просто перехватывают вызов функций винды, отвечающих за получение инфы о файле, ветке e.t.c.
Так же поступает знаменитая скрывалка файлов HideFolder
I'm learning to live...
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создание программы для управления некоторыми функциями другой программы | Юрий1991 | Общие вопросы Delphi | 6 | 03.02.2012 15:32 |
запуск программы из под другой программы | fomikadze | Общие вопросы C/C++ | 8 | 13.06.2011 14:47 |
Какие программы нужно установить чтобы писать программы для телефонов nokia | Кристинка89 | Общие вопросы по Java, Java SE, Kotlin | 2 | 17.02.2011 15:15 |
Узнать название exe файла программы из самой программы | Crystallon | Общие вопросы Delphi | 9 | 09.09.2010 16:22 |