· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

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

Посл.отвђт Сообщенiе


Дата: Ноя 4, 2004 15:39:22

Я просмотрел основные моменты.
1) Файловые потоки перечисляются нормально с помощью BackupRead по этому поводу вопрос! Может ли BackupWrite записать данные из потока, который открыт READ_CONTROL?
Как? Права SE_BACKUP и SE_RESTORE установлены.
-------------
2) Утилита NtBackup похоже умеет это делать и пользуется она Shadow Copy Provider - ом.
Вопрос есть ли у кого пример как Этим воспользоваться, ну забэкапить файл... как обращаться к COM - объектам я знаю.
3) Могут ли Native функци открыть этот файл для чтения?


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

С уважением

Viewsight


Дата: Ноя 4, 2004 22:15:02

ну... насколько я понял попробуй это:
...
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);
}
возможно поможет...


Дата: Ноя 4, 2004 22:25:37

SLV

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


Дата: Ноя 5, 2004 13:14:13

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


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

С уважением

Viewsight


Дата: Ноя 5, 2004 22:16:17

тибеш уже сказали на reversing.net чо делать надо =)


Дата: Ноя 8, 2004 15:56:10

Всем спасибо! вопрос снят!!!


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.117