Нужно закрыть хендл, причем сделать это без вызовов ZwClose() в ядре (ясное дело и без всяких CloseHandle()) Хендл - открытого файла (CreateFile) Подскажите, как вручную закрыть такой хендл (в какую таблицу куда что записать или удалить) в ядре. Возможно нужно что-то типа аналога ZwClose()...?
ну до "копать .... винды" я и сам додумался да и драйвер писать ясное дело надо хотелось бы конкретный код/пример/линк вроде тут должна использоваться ObReferenceObjectByName() ?
Mech Судя по тому количеству действий, которое выполняет NtClose, вручную такое сделать нереально. ObReferenceObjectByName позволяет сделать новую ссылку на объект, которую можно закрыть с помощью ObDerefernceObject, но к хендлам это никакого отношения не имеет. Если причина отказаться от ZwClose состоит в обходе хуков, то лучше использовать другой метод вызова этой функции, но не отказываться от нее, имхо.
gilg Ну не так много она и выполняет, тем более если известны некоторые данные о хендле. Mech Написал бы для чего это тебе надо.
n0name Слишком сильно завязана на недокументированные поля, вызываются странные калбэки, неизвестно, как это работает под XP... Короче за полдня такую штуку не написать.
gilg Ну почему странные, как раз колбеки необходимы, так как например когда закроем хендл файла в колбеке может обрабытваться сброс буфера на диск например. Ну за полдня не написать, но за неделю можно вполне.
AMON (файловый монитор НОД32) палит файлы после закрытия хендла... вот я и думаю как бы закрыть (может вообще не закрывать) чтоб он не увидил. Вообще можно просто снять хук... Но я хотел по другому из-за пары причин.