![]() |
|
|Ѳорум| |
Комментарии к статье «3 метода работы с занятыми файлами» |
|
razor /2005-12-22 16:55:01/
Статья хорошая, но есть баг в 1 примере:
void GetFileName(HANDLE hFile, PCHAR TheName) { ... if (WaitForSingleObject(hThread, INFINITE) == WAIT_TIMEOUT) TerminateThread(hThread, 0); .../* условие никогда не будет истинно, необходимо заменить INFINITE на 10 или на любое положительное значение, дающее минимум ложных срабатываний таймера при нагруженной системе */ ... }
/2005-12-22 18:34:38/
Хорошая статья. 5+
/2005-12-22 23:46:22/
Особенно про прямой доступ к диску понравилось - остальное более менее интуитивно понятно.
/2005-12-23 01:45:08/
Ага, баг есть. Странно почему я его не заметил :)
/2005-12-23 12:26:02/
Статья интересная.
Ещё маленький баг: hDriver = CreateFile("\\\\.\\haccess", GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, 0); Надо бы так: hDriver = CreateFile("\\\\.\\fread", GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, 0); И ещё... раз уж решили писать драйвер, то можно более стабильно определять имя файла и тип объекта. Как, например, у Руссиновича в procexp.
/2005-12-23 12:32:11/
Да уж, нестыковка получается :)
Все это от того, что сама статья писалась давно и долго валялась на винте, а потом винт сдох, пришлось наскоряк переписывать примеры и часть статьи. В архиве с примерами драйвер создает девайс с именем haccess, и программа открывает его, а в статье получилась нестыковка, так как писалось это раньше и имя было другое.
/2005-12-23 12:37:35/
Статья интересная.
Ещё маленький баг: hDriver = CreateFile("\\\\.\\haccess", GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, 0); Надо бы так: hDriver = CreateFile("\\\\.\\fread", GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, 0); И ещё... раз уж решили писать драйвер, то можно более стабильно определять имя файла и тип объекта. Как, например, у Руссиновича в procexp.
/2005-12-23 12:50:08/
Статья интересная.
Ещё маленький баг: hDriver = CreateFile("\\\\.\\haccess", GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, 0); Надо бы так: hDriver = CreateFile("\\\\.\\fread", GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, 0); И ещё... раз уж решили писать драйвер, то можно более стабильно определять имя файла и тип объекта. Как, например, у Руссиновича в procexp.
/2005-12-23 12:50:22/
Статья интересная.
Ещё маленький баг: hDriver = CreateFile("\\\\.\\haccess", GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, 0); Надо бы так: hDriver = CreateFile("\\\\.\\fread", GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, 0); И ещё... раз уж решили писать драйвер, то можно более стабильно определять имя файла и тип объекта. Как, например, у Руссиновича в procexp.
/2005-12-25 20:10:36/
зачот
/2005-12-26 14:02:07/
Неточность:
неуказано что прямой доступ только для NTFS - FAT (32/12) не прокатит. Так вот как ты файл удалял :) http://www.wasm.ru/forum/index.php?action=vthread&forum=4&topic=12697&page=0
/2005-12-26 14:03:17/
Неточность:
неуказано что прямой доступ только для NTFS - FAT (32/12) не прокатит. Так вот как ты файл удалял :) http://www.wasm.ru/forum/index.php?action=vthread&forum=4&topic=12697&page=0
/2005-12-26 14:03:24/
Неточность:
неуказано что прямой доступ только для NTFS - FAT (32/12) не прокатит. Так вот как ты файл удалял :) http://www.wasm.ru/forum/index.php?action=vthread&forum=4&topic=12697&page=0
/2005-12-27 15:16:44/
все это слишком запарно :)
сплайсинг IoCreateFile и на всех вызовах ShareAccess |= 1 читайте на здоровье!
/2005-12-28 10:06:23/
>еуказано что прямой доступ только для NTFS - FAT (32/12) >не прокатит.
Прокатит, просто нужно к номеру кластера при чтении прибавлять размер таблиц FAT. >сплайсинг IoCreateFile и на всех вызовах ShareAccess |= 1 Ну допустим нам надо прочитать файл реестре, а его открытие происходит на самом раннем этапе загрузки системы, еще до инициализации большинства BOOT драйверов. К тому же такой метод нарушит нормальную работу системы.
/2006-01-03 14:45:47/
Вопрос: при получении файла sam программо
/2006-01-03 14:45:56/
Вопрос: при получении файла sam программо
/2006-01-16 13:02:54/
А что так широко свёрстано? Неудобно читать.
/2006-01-27 22:58:12/
Оччень интересная статья. Давно таких не было :)
/2006-03-01 09:02:54/
Вопрос по поводу первого метода: (Поиск хэндла открытого файла)
Попробовал пример из атача - перечесляет что-то уж больно мало файлов... То-есть отнюдь не все открытые в системе (например обещаного sam там нету :( ). Глянул, оказалось для большенства системных процессов не происходит OpenProcess... Так вот вопрос, а как же все таки sam, или например security.evt? Может быть программа должна устанавливать себе еще какие-то права чтоб до них добраться?
/2006-03-02 06:58:48/
Разобрался, по части предыдущего поста:
Может быть для кого-то это само-собой - итак, для открытия системного процесса нужна SeDebugPrivilege. И для полноты картины, я бы посоветовал автору это учесть в своей статье.
/2006-06-22 11:12:25/
Итак, читать напрямуя с диска можем.
А что надо сделать, чтобы писать?
/2006-08-10 14:41:18/
Статья то интересная, вот только взята у другого (http://www.rootkit.com/newsread_print.php?newsid=410). А еще копирайты раставил (типа сам писал), это кстати не первый случай я уже раз 15 в интернете натыкался на Англоязычные аналоги, как-то слабо верится что америкосы и англичане начали учить русский язык и перепечатывать наши статьи. Конечно спасибо за перевод.
/2006-08-15 22:03:03/
Вопрос по поводу третьего метода: пробовал на FAT, не выдает никаких ошибок, но возвращает не те кластеры (на несколько десятков кластеров выше). Этот метод вообще на FAT рассчитан? На NTFS все работает безукоризненно, с некоторыми поправками...
/2006-09-24 10:17:10/
im1111
прежде чем нимдеть, сравни даты появления той и этой статьи. а лучше вобще убей себя.
/2006-09-25 19:15:44/
Очень хорошая статья.
Авторы можно в писатели идти, пишет очень понятно и иронично. Особенно досталось бедным программистам из Microsoft :)
/2007-01-13 00:07:10/
Статья отличная тока есть проблема. Для того чтобы узнать пароли в WinXP необходимо копирнуть не только файл SAM но и файл SYSTEM который находится в той же папке. Ни кто не мог бы написать прогу для копирования файла SYSTEM и скинуть мне на email PeshikovS@mail.ru очень надо Заранее спасибо.
/2007-11-02 22:27:17/
Ни кто не мог бы написать прогу для копирования файла SYSTEM и скинуть мне на email
Ты прав нада и систем, как только сам разбирусь то скину.. вот только проблемка мне щас ето не нужно а тибе Email: mikityak@mail.ru
/2008-08-29 18:12:17/
>> прямой доступ только для NTFS - FAT (32/12) >не прокатит.
>> Прокатит, просто нужно к номеру кластера при чтении прибавлять размер таблиц FAT Кто нибудь может дать сэмпл как проделать все то же самое на FAT??? Заранее благодарен
/2008-09-12 14:50:59/
Уже нашел решение скоро запостю
/2008-11-23 14:49:19/
Решение в студию или на spamworkand@yandex.ru
Очень надо. Зранаее благодарен.
/2009-06-11 16:52:46/
FSCTL_GET_RETRIEVAL_POINTERS работает четко для NTFS. Как использовать то же самое для FAT:
Вот мое решение проблемы: FDump - Dumping File Sectors Directly from Disk using Logical Offsets By Armen Hakobyan http://www.codeproject.com/KB/files/FDump.aspx Армен
/2009-06-16 10:38:22/
А не лучше поколдовать с уровнем доступа хэндла с помощью драйвера?
/2009-12-22 23:43:07/
Интересно было б то же самое, но под Windows Mobile...
Введите логин и пароль, под которыми вы зарегистрированы на θоруме WASM.RU. |