Функции API, создающие файлы на диске

Общие вопросы, не зависящие от языка реализации.

Модераторы: Duncon, Hawk, Romeo, Eugie

Ответить
Keith
Сообщения: 15
Зарегистрирован: 06 фев 2005, 03:13

12 фев 2005, 04:46

Здравствуйте. Помогите, пожалуйста.
Перехватываю вызовы CreateFileA/W из kernel32.dll у чужой программы, но создание некоторых файлов не перехватывается. Какие еще API-функции могут создавать файлы на винте?

зы Перехват делаю с помощью внедрения своей dll вызовом SetWindowsHookEx() и дальнейшим изменением указателей на нужных функции на мои.
Kolinus
Сообщения: 449
Зарегистрирован: 23 авг 2004, 14:02
Откуда: Минск

13 фев 2005, 00:58

OpenFile
OpenFileEx - (?)
В SAD - все в SAD.
Eugie
Сообщения: 707
Зарегистрирован: 17 фев 2004, 23:59
Откуда: SPb

14 фев 2005, 17:13

OpenFile, _lcreat (эта уже совсем древняя). Но есть подозрение, что в современных Windows они реализованы через ту же CreateFile.

ИМХО, проблема в другом: сам метод перехвата API-вызовов через навешивание хука не универсален. Он неявно предполагает, что во внедряемом потоке есть очередь сообщений. Поэтому, например, таким способом нельзя внедриться (и тем более перехватывать вызовы) в консольное приложение.

Есть другие способы, более универсальные (но и более сложные). Например, через CreateRemoteThread, VirtualMemoryRead/Write и перезапись входов в секцию импорта. Советую почитать Дж.Рихтера "Создание эффективных WIN32-приложений", там и примеры кода имеются.

Вот пара ссылок, надеюсь, будут полезны:
http://www.rsdn.ru/article/baseserv/api ... epting.xml
http://clifftown.narod.ru/HDK/HDK2.htm
Ответить