Программа защиты файлов от копирования в другое место ХДД

Тема в разделе "WASM.WIN32", создана пользователем TruthLover, 23 окт 2009.

  1. TruthLover

    TruthLover New Member

    Публикаций:
    0
    Регистрация:
    23 окт 2009
    Сообщения:
    6
    Буду благодарен за идеи )
     
  2. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    смотря какой уровень защиты.
     
  3. TruthLover

    TruthLover New Member

    Публикаций:
    0
    Регистрация:
    23 окт 2009
    Сообщения:
    6
    даже элементарный вариант защиты файла
    чтобы программа висела в памяти (OS: WinXP, например) и мониторила доступ к определенному файлу.
    может есть какие то еще способы ?
     
  4. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    повторяю - смотря защищаться от чего, от пользовательского приложения - одно, от драйвера - другое, от аппаратного считывателя - третье.
     
  5. Klayd

    Klayd Степан

    Публикаций:
    0
    Регистрация:
    7 апр 2006
    Сообщения:
    59
    Адрес:
    Киев
    перехват NtCreateFile в ntdll или IoCreateFile в ядре, смотря что нужно
    например
    Код (Text):
    1. NTSTATUS RkIoCreateFile(OUT PHANDLE FileHandle,
    2.                         IN ACCESS_MASK DesiredAccess,
    3.                         IN POBJECT_ATTRIBUTES ObjectAttributes,
    4.                         OUT PIO_STATUS_BLOCK IoStatusBlock,
    5.                         IN PLARGE_INTEGER AllocationSize OPTIONAL,
    6.                         IN ULONG FileAttributes,
    7.                         IN ULONG ShareAccess,
    8.                         IN ULONG Disposition,
    9.                         IN ULONG CreateOptions,
    10.                         IN PVOID EaBuffer OPTIONAL,
    11.                         IN ULONG EaLength,
    12.                         IN CREATE_FILE_TYPE CreateFileType,
    13.                         IN PVOID ExtraCreateParameters OPTIONAL,
    14.                         IN ULONG Options)
    15. {
    16.     if(MmIsAddressValid(ObjectAttributes) &&
    17.         MmIsAddressValid(ObjectAttributes->ObjectName) &&
    18.             MmIsAddressValid(ObjectAttributes->ObjectName->Buffer) &&
    19.                 ObjectAttributes->ObjectName->Length)
    20.     {
    21.         if(IsFileProtected(ObjectAttributes->ObjectName->Buffer, ObjectAttributes->ObjectName->Length))
    22.             return STATUS_ACCESS_VIOLATION;
    23.  
    24.         return TrueIoCreateFile(FileHandle,
    25.                                 DesiredAccess,
    26.                                 ObjectAttributes,
    27.                                 IoStatusBlock,
    28.                                 AllocationSize,
    29.                                 FileAttributes,
    30.                                 ShareAccess,
    31.                                 Disposition,
    32.                                 CreateOptions,
    33.                                 EaBuffer,
    34.                                 EaLength,
    35.                                 CreateFileType,
    36.                                 ExtraCreateParameters,
    37.                                 Options);
    38.     }
    39.     else
    40.         return STATUS_INVALID_PARAMETER;
    41. }
     
  6. TruthLover

    TruthLover New Member

    Публикаций:
    0
    Регистрация:
    23 окт 2009
    Сообщения:
    6
    1) есть файл на винте.
    2) программа, которая висит в памяти и контролирует (перехватывает) запросы к файлу.
    3) Пользователь Обычный, который умеет работать в винде, запускать таксманагер и прочие простые задачи.

    все другие способы, более опытные ему неизвестны.

    Пользователь не должен иметь возможность скопировать протектед файл.
     
  7. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    ну тогда сотри в сторону user-mode хуков. статьи есть на сайте.
     
  8. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    TruthLover
    а читать он его может?
     
  9. intel_x128

    intel_x128 New Member

    Публикаций:
    0
    Регистрация:
    17 май 2009
    Сообщения:
    345
    Создаешь учетную запись FOR_PROTECTED_FILES
    из под нее выставляешь права на файл, что читать, писать и выполнять данный файл можно только из под вашей учетной записи.
     
  10. semen

    semen New Member

    Публикаций:
    0
    Регистрация:
    8 июн 2004
    Сообщения:
    334
    Адрес:
    Russia
    qqwe правильно вопрос задал, если пользователь может читать файл то все потуги бесполезны, иначе придется запрещать юзеру создавать файлы вообще. Если не может, по почему бы просто не запретить юзеру доступ к файлу стандартными средствами и не городить огород?
     
  11. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Т.е. ответ такой и он давно известен: чтобы защитить содержимое файла, с которым юзеру нужно работать, от копирования - надо юзеру закрыть простые способы доступа к его содержимому.
     
  12. z0mailbox

    z0mailbox z0

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    635
    Адрес:
    Russia СПБ
    тема на самом деле прикольная
    очевидный ответ НЕЛЬЗЯ вызывает акцыю протеста:)
    ----
    -- Мы сами знаем, что она не имеет решения, -- сказал Хунта,
    немедленно ощетиниваясь. -- Мы хотим знать, как ее решать. (с)
    ----
    пофлужу немного
    вот такие варианты можно попробовать:
    1) отслеживать ReadFile WriteFile и попробовать по буферам и оффсетам понять что происходит именно копирование. Сложно. Эвристично. Быстро. Обходится рандомизацией оффсетов но против дурака работать ИМХО будет
    2) построить хеши всех файлов и в момент CloseHandle - IRP_MJ_CLEANUP проверять не является ли контент закрываемого файла копией уже существующего. Может давать ощутимую задержку в сисемах с большим количеством файлов. Как обойти я так сходу даже не предположу %)
     
  13. z0mailbox

    z0mailbox z0

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    635
    Адрес:
    Russia СПБ
    поправочка - всех защищаемых файлов - то есть возможно их немного
    вот так можно имхо сделать и работать будет
     
  14. z0mailbox

    z0mailbox z0

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    635
    Адрес:
    Russia СПБ
    обойти опять же можно будет хитрой операцией копирования с внесением шума - e.g. архивированием