Защита файлов от удаления и перезаписи

Тема в разделе "WASM.WIN32", создана пользователем ATX, 11 июн 2010.

  1. ATX

    ATX New Member

    Публикаций:
    0
    Регистрация:
    7 ноя 2006
    Сообщения:
    145
    Доброго времени суток!

    Ув. коллеги, помогите решить задачку с защитой файлов в Win32 (xp,vista,w7).
    Есть программа ф-лы которой (а именно: dll, exe, txt) нужно защитить от удаления и перезаписи.
    Каким образом это можно корректно реализовать, при условии что txt ф-лы сама программа должна иметь возможность перезаписывать?

    Заранее спасибо!
     
  2. gorodon

    gorodon New Member

    Публикаций:
    0
    Регистрация:
    19 окт 2009
    Сообщения:
    301
    Если защиту нужно осуществить во время работы программы, то:
    Откройте нужные файлы:

    hFile = CreateFile( strFileName, GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

    И НЕ ЗАКРЫВАЙТЕ хендлы до конца работы программы.

    Если нужно защитить после завершения работы програмы, то мутите с правами доступа... хотя юзер с правами админа все равно может их поменять...
     
  3. ATX

    ATX New Member

    Публикаций:
    0
    Регистрация:
    7 ноя 2006
    Сообщения:
    145
    Спасибо gorodon!

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

    Спасибо
     
  4. ilja_

    ilja_ New Member

    Публикаций:
    0
    Регистрация:
    27 май 2010
    Сообщения:
    33
    Код (Text):
    1. HANDLE hFile = _lopen( FileName, OF_SHARE_EXCLUSIVE | OF_READ );
    2.     CreateFileMappingA( hFile, NULL, PAGE_READONLY, 0, 0, NULL );