2013-08-17 4 views
3

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

+0

Возможно, связано: http://stackoverflow.com/questions/1265810/prevent-file-from-being-edit –

+1

Возможный дубликат [Предотвращение удаления файла и изменения] (http://stackoverflow.com/questions/6020109/prevent-a-file-from-deletion-and-change) –

+0

Это не дубликат, у меня разные проблемы. Эти ответы мне не помогают – TN888

ответ

5

Короткий ответ «вы не можете». Далее следует длинный ответ. =)

Вы можете реализовать его с помощью разрешений файлов, но их можно изменить, если процесс имеет достаточно привилегий.

TMK, единственный способ реализовать это ограничение - сохранить процесс, with the file open in exclusive mode. Это не помешает тому, что приложение, например, Unlocker, может убить ваш основной процесс или удалить ручки блока.

3

Нет, вы не можете. Если программное обеспечение работает с достаточными привилегиями, оно сможет стереть их вместе с вашим антивирусом. Это также происходит с коммерческим антивирусным программным обеспечением.

Что вы можете сделать, чтобы, по крайней мере, предотвратить модификации, хранить определения как сжатые, подписанные и зашифрованные. Таким образом, если вредоносное ПО не может получить криптографический ключ, он не сможет существенно изменить вирусную базу данных, но только для ее удаления. В обоих случаях ваше программное обеспечение может обнаружить вмешательство и попытаться отреагировать (но если вредоносное ПО обладает достаточной привилегией для удаления системных файлов, возможно, это уже слишком поздно).

1

Вы действительно не можете это сделать, но вы можете попробовать перехитрить вредоносное ПО ...

  1. Сохраните контрольную сумму файла, чтобы вы знали, была ли она изменена.
  2. Использование Асинхронный Шифрование на файл (somwhat похож на 1.)
  3. делают подписи загружаемые через доступ в Интернет, и сделать ваше программное обеспечение загрузить эти Проверьте ...
  4. последнего доступа раз файлов.

Есть много больше трюков, как выше четыре, но все они НЕ boolet доказательства ...

Одна идеи Сумасшедший, что я действительно не знаю, как реализовать ... но пришел в голове, что :
вы можете создать драйвер SATA/IDE и сделать конкретный файл невозможного ...
но опять тот мой вид творчества сумасшедшего разговора :)

1

лучшим, что вы можете сделать с C# является просто установить разрешений файла, чтобы только ваш сервис имел полный доступ, а кто-то еще этого не делает. Это не защищает кого-то/то, что удалось получить доступ администратора, так как они всегда могут изменять разрешения.

Многие антивирусы для самозащиты своих файлов и сервисов - это установка драйверов в режиме ядра, которые блокируют как критические файлы, так и процессы, поэтому даже администраторы не могут их остановить. Конечно, C# не может их создать.

Смежные вопросы