Правильно ли я понимаю, что если я хочу в загружаемой dll перехватить вызов некой функции из kernel32.dll до вызова DLLMain, то у меня есть три пути:
1) Сплайсинг самой функции из kernel32.dll
2) Запуск процесса в режиме отладки и ожидание WaitForDebugEvent с LOAD_DLL_DEBUG_EVENT и последующая модификация IAT таблицы.
3) Написание своего загрузчика dll, в котором будет модифицироваться IAT таблица.