|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Авг 17, 2004 20:18:51 Доброе время суток, уважаемые товарищи. Возникла такая проблема: нужно получить доступ к открытому файлу. То есть: одна служба делает NtCreateFile NtCreateSection NtMapViewOfSection … работает … NtUnmapViewOfSection NtClose NtClose Так вот. Мне необходимо открыть этот файл и записать в него что-то своё. Или просто подменить файл. Как это сделать? - можно ли открыть объект Секция из другого процесса? - можно ли работать с объектом Секция в контексте того же процесса (в данном случае,это services.exe) - и вообще, возможен ли такой подход или проще сделать как-то по-другому? Заранее благодарен за любую помощь! |
|
|
Дата: Авг 17, 2004 21:59:00 · Поправил: PavPS 1) Ты можешь смэппить секцию в адр пр-во своего процесса при помоши передачи handle сваего процесса ф-ии NtMapViewOfSection, но для этого Тебе придется прервать выполнение кода services.exe, а то ты полезешь мэппит секцию, а он уже выполнил NtClose. 2) А почему нет? Хэндл секции есть – значит всё Ок. Главное работать в адр пр-ве того процесса, чей этот хэндл. 3)Что бы заменить содержимое, то, что мне первым и простым приходит на ум, так это (я так понимаю код из ntoskrnl, хотя неважно) заменить Call ntCreatefile на JMP ... Ну и проверив параметры у CreateFile, если открывается именно тот файл, то взять и подменить его(открыть другой) и вернуться назад с хэндлом другого файла. Если возникнуть проблемы с shareVolation, то подправь поля у FILE_OBJECT. Надеюсь нигде не ошибся :) |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.036 |