Windows Assembly Site |Новости| |О проекте| |Неофиту| |Эѳир| |Ссылки| |Ѳорум|

Комментарии к статье «3 метода работы с занятыми файлами»

· Статьи
· Исходники
· Инструменты
· Документация

Статьи:
· Низкоуровневое программирование для дZенствующих
· Уроки Iczelion'а
· COM и OOP
· DirectX/OpenGL
· Секреты Win32
· Оптимизация
· Компиляторы
· Защита от отладки
· Вирусология
· Безопасность
· Сеть
· Программерский дZен
· Форматы файлов
· Процессоры
· Диски, приводы и электроника
· BIOS/CMOS
· DOS навсегда!
· Исследование программ
· Защищенный режим
· Алгоритмы
· Консоли и КПК
· Байт-код
· Linux/Unix
· Assembler.Ru
· Разное

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 или на любое положительное значение, дающее
минимум ложных срабатываний таймера при нагруженной системе
*/
...
}
NeuronViking /2005-12-22 18:34:38/
Хорошая статья. 5+
Sten /2005-12-22 23:46:22/
Особенно про прямой доступ к диску понравилось - остальное более менее интуитивно понятно.
Ms Rem /2005-12-23 01:45:08/
Ага, баг есть. Странно почему я его не заметил :)
Maveric /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.
Ms Rem /2005-12-23 12:32:11/
Да уж, нестыковка получается :)
Все это от того, что сама статья писалась давно и долго валялась на винте, а потом винт сдох, пришлось наскоряк переписывать примеры и часть статьи.

В архиве с примерами драйвер создает девайс с именем haccess, и программа открывает его, а в статье получилась нестыковка, так как писалось это раньше и имя было другое.
Maveric /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.
Maveric /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.
Maveric /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.
comrade /2005-12-25 20:10:36/
зачот
DelExe /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
DelExe /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
DelExe /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
z0mailbox /2005-12-27 15:16:44/
все это слишком запарно :)
сплайсинг IoCreateFile и на всех вызовах ShareAccess |= 1
читайте на здоровье!
Ms Rem /2005-12-28 10:06:23/
>еуказано что прямой доступ только для NTFS - FAT (32/12) >не прокатит.
Прокатит, просто нужно к номеру кластера при чтении прибавлять размер таблиц FAT.

>сплайсинг IoCreateFile и на всех вызовах ShareAccess |= 1
Ну допустим нам надо прочитать файл реестре, а его открытие происходит на самом раннем этапе загрузки системы, еще до инициализации большинства BOOT драйверов.
К тому же такой метод нарушит нормальную работу системы.
Tyz /2006-01-03 14:45:47/
Вопрос: при получении файла sam программо
Tyz /2006-01-03 14:45:56/
Вопрос: при получении файла sam программо
Spalex /2006-01-16 13:02:54/
А что так широко свёрстано? Неудобно читать.
Kola /2006-01-27 22:58:12/
Оччень интересная статья. Давно таких не было :)
zag2art /2006-03-01 09:02:54/
Вопрос по поводу первого метода: (Поиск хэндла открытого файла)

Попробовал пример из атача - перечесляет что-то уж больно мало файлов... То-есть отнюдь не все открытые в системе (например обещаного sam там нету :( ). Глянул, оказалось для большенства системных процессов не происходит OpenProcess... Так вот вопрос, а как же все таки sam, или например security.evt? Может быть программа должна устанавливать себе еще какие-то права чтоб до них добраться?
zag2art /2006-03-02 06:58:48/
Разобрался, по части предыдущего поста:
Может быть для кого-то это само-собой - итак, для открытия системного процесса нужна SeDebugPrivilege. И для полноты картины, я бы посоветовал автору это учесть в своей статье.
Daniil /2006-06-22 11:12:25/
Итак, читать напрямуя с диска можем.
А что надо сделать, чтобы писать?
im1111 /2006-08-10 14:41:18/
Статья то интересная, вот только взята у другого (http://www.rootkit.com/newsread_print.php?newsid=410). А еще копирайты раставил (типа сам писал), это кстати не первый случай я уже раз 15 в интернете натыкался на Англоязычные аналоги, как-то слабо верится что америкосы и англичане начали учить русский язык и перепечатывать наши статьи. Конечно спасибо за перевод.
_nameless /2006-08-15 22:03:03/
Вопрос по поводу третьего метода: пробовал на FAT, не выдает никаких ошибок, но возвращает не те кластеры (на несколько десятков кластеров выше). Этот метод вообще на FAT рассчитан? На NTFS все работает безукоризненно, с некоторыми поправками...
im2222 /2006-09-24 10:17:10/
im1111
прежде чем нимдеть, сравни даты появления той и этой статьи. а лучше вобще убей себя.
torsten /2006-09-25 19:15:44/
Очень хорошая статья.
Авторы можно в писатели идти, пишет очень понятно и иронично. Особенно досталось бедным программистам из Microsoft :)
Rocky /2007-01-13 00:07:10/
Статья отличная тока есть проблема. Для того чтобы узнать пароли в WinXP необходимо копирнуть не только файл SAM но и файл SYSTEM который находится в той же папке. Ни кто не мог бы написать прогу для копирования файла SYSTEM и скинуть мне на email PeshikovS@mail.ru очень надо Заранее спасибо.
_mikityak /2007-11-02 22:27:17/
Ни кто не мог бы написать прогу для копирования файла SYSTEM и скинуть мне на email

Ты прав нада и систем, как только сам разбирусь то скину..
вот только проблемка мне щас ето не нужно а тибе Email: mikityak@mail.ru
armenh /2008-08-29 18:12:17/
>> прямой доступ только для NTFS - FAT (32/12) >не прокатит.
>> Прокатит, просто нужно к номеру кластера при чтении прибавлять размер таблиц FAT

Кто нибудь может дать сэмпл как проделать все то же самое на FAT???

Заранее благодарен
armenh /2008-09-12 14:50:59/
Уже нашел решение скоро запостю
realand /2008-11-23 14:49:19/
Решение в студию или на spamworkand@yandex.ru
Очень надо. Зранаее благодарен.
armenh /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

Армен
ezhfan /2009-06-16 10:38:22/
А не лучше поколдовать с уровнем доступа хэндла с помощью драйвера?
Stariy /2009-12-22 23:43:07/
Интересно было б то же самое, но под Windows Mobile...

Логин:

Пароль:

Введите логин и пароль, под которыми вы зарегистрированы на θоруме WASM.RU.
Enter your login and password which you are using on WASM Θorum.





© 2002-2009 wasm.ru - all rights reserved and reversed