Здравствуйте. Помогите, пожалуйста.
Перехватываю вызовы CreateFileA/W из kernel32.dll у чужой программы, но создание некоторых файлов не перехватывается. Какие еще API-функции могут создавать файлы на винте?
зы Перехват делаю с помощью внедрения своей dll вызовом SetWindowsHookEx() и дальнейшим изменением указателей на нужных функции на мои.
Функции API, создающие файлы на диске
Модераторы: Duncon, Hawk, Romeo, Eugie
OpenFile
OpenFileEx - (?)
OpenFileEx - (?)
В SAD - все в SAD.
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
ИМХО, проблема в другом: сам метод перехвата API-вызовов через навешивание хука не универсален. Он неявно предполагает, что во внедряемом потоке есть очередь сообщений. Поэтому, например, таким способом нельзя внедриться (и тем более перехватывать вызовы) в консольное приложение.
Есть другие способы, более универсальные (но и более сложные). Например, через CreateRemoteThread, VirtualMemoryRead/Write и перезапись входов в секцию импорта. Советую почитать Дж.Рихтера "Создание эффективных WIN32-приложений", там и примеры кода имеются.
Вот пара ссылок, надеюсь, будут полезны:
http://www.rsdn.ru/article/baseserv/api ... epting.xml
http://clifftown.narod.ru/HDK/HDK2.htm