Страница 1 из 1

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

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

зы Перехват делаю с помощью внедрения своей dll вызовом SetWindowsHookEx() и дальнейшим изменением указателей на нужных функции на мои.

Добавлено: 13 фев 2005, 00:58
Kolinus
OpenFile
OpenFileEx - (?)

Добавлено: 14 фев 2005, 17:13
Eugie
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