Как прочитать файл открытый другим процессом в эксклюзивном пользовании?

Тема в разделе "WASM.WIN32", создана пользователем Viewsight, 4 ноя 2004.

  1. Viewsight

    Viewsight New Member

    Публикаций:
    0
    Регистрация:
    2 ноя 2004
    Сообщения:
    11
    Я просмотрел основные моменты.

    1) Файловые потоки перечисляются нормально с помощью BackupRead по этому поводу вопрос! Может ли BackupWrite записать данные из потока, который открыт READ_CONTROL?

    Как? Права SE_BACKUP и SE_RESTORE установлены.

    -------------

    2) Утилита NtBackup похоже умеет это делать и пользуется она Shadow Copy Provider - ом.

    Вопрос есть ли у кого пример как Этим воспользоваться, ну забэкапить файл... как обращаться к COM - объектам я знаю.

    3) Могут ли Native функци открыть этот файл для чтения?





    ps в сторону MSDN прошу не посылать читаю как могу...



    С уважением



    Viewsight
     
  2. SLV

    SLV New Member

    Публикаций:
    0
    Регистрация:
    26 окт 2004
    Сообщения:
    2
    ну... насколько я понял попробуй это:

    ...

    BOOL READONLY;

    ...

    hFile = CreateFile(FN,GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, \

    NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);



    if (hFile==INVALID_HANDLE_VALUE)

    {

    hFile = CreateFile(FN,GENERIC_READ, FILE_SHARE_READ, \

    NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);

    if (hFile==INVALID_HANDLE_VALUE)

    { CloseHandle(hFile);

    MessageBox(hWin,ErrText1,ErrCap,MB_ICONERROR);

    return;

    }

    READONLY = TRUE;

    }

    else

    {

    READONLY = FALSE;

    }



    if (READONLY)

    {

    hMap = CreateFileMapping(hFile,NULL,PAGE_READONLY,0,0,NULL);

    }

    else

    {

    hMap = CreateFileMapping(hFile,NULL,PAGE_READWRITE,0,0,NULL);

    }



    if (!hMap)

    {

    CloseHandle(hFile);

    CloseHandle(hMap);

    MessageBox(hWin,ErrText2,ErrCap,MB_ICONERROR);

    return;

    }



    if (READONLY)

    {

    base = MapViewOfFile(hMap,FILE_MAP_READ,0,0,0);

    }

    else

    {

    base = MapViewOfFile(hMap,FILE_MAP_READ|FILE_MAP_WRITE,0,0,0);

    }

    возможно поможет...
     
  3. volodya

    volodya wasm.ru

    Публикаций:
    0
    Регистрация:
    22 апр 2003
    Сообщения:
    1.169
    SLV



    При чем тут это? Этот код свалится еще на CreateFile.
     
  4. Viewsight

    Viewsight New Member

    Публикаций:
    0
    Регистрация:
    2 ноя 2004
    Сообщения:
    11
    volodya прав! изначнально файл был открыт другим процессом у которого параметер dwShareMode=0 а значит CrateFile - ом прочитатть не получится...





    Есть другие предложения?



    С уважением



    Viewsight
     
  5. NeuronViking

    NeuronViking New Member

    Публикаций:
    0
    Регистрация:
    29 окт 2004
    Сообщения:
    476
    Адрес:
    где-то в Сиднее
    тибеш уже сказали на reversing.net чо делать надо =)
     
  6. Viewsight

    Viewsight New Member

    Публикаций:
    0
    Регистрация:
    2 ноя 2004
    Сообщения:
    11
    Всем спасибо! вопрос снят!!!