Page 1 of 1

Как в драйвере работать с файлами?

Posted: Sun Nov 17, 2013 12:13 pm
by CoreX
Есть драйвер перехватывающий и обрабатывающий неиспользуемую функцию (eax=0xF0) из прерывания 0x40.
Есть приложение которое вызывает эту функцию (далее, драйвер должен загрузить файл в память этого процесса).
---
Нужно в обработчике прерывания прочитать файл и скопировать буфер в память приложения. Должно получится что-то вроде динамической библиотеки.
---
Какие способы позволяют такое реализовать?

Re: Как в драйвере работать с файлами?

Posted: Sun Nov 17, 2013 12:23 pm
by 0CodErr
CoreX, а почему бы не использовать специально предназначенную для этого функцию?
Функция 68 > Подфункция 19 - загрузить DLL

Re: Как в драйвере работать с файлами?

Posted: Sun Nov 17, 2013 12:36 pm
by CoreX
Я хотел бы чтобы драйвер сам связывал таблицу экспорта библиотеки и импорта приложения, ну возможно еще какие-либо действия свои производил.

Re: Как в драйвере работать с файлами?

Posted: Tue Nov 19, 2013 8:29 pm
by CleverMouse
int 0x40 для драйверов тоже работает.

Re: Как в драйвере работать с файлами?

Posted: Wed Nov 20, 2013 4:30 pm
by CoreX
А разве прерывания возможны в обработчике 0x40 прерывания?
---
Я так понял, что после обработки прерывания, управление вернется драйверу? Надо включать прерывания (sti) для вызова int 0x40?

Re: Как в драйвере работать с файлами?

Posted: Wed Nov 20, 2013 4:36 pm
by CleverMouse
Да. Да. Нет.

Re: Как в драйвере работать с файлами?

Posted: Mon Nov 25, 2013 9:47 pm
by Asper
diamond in PM wrote:При программировании драйверов лучше не использовать int 0x40 - это API для прикладных программ. Для драйверов есть отдельные API, функции, экспортируемые ядром (объявленные в imports.inc).
Если нет соответствующих функций, можно их эспортировать.