Я полагаю, если вы подключаете DLL, вы подключаете экспорт этой DLL?
В этом случае вы можете выполнить простой перехват IAT (и, возможно, EAT, если необходимо).
Преимущество перехватчиков IAT / EAT по сравнению с обходом состоит в том, что применение и удаление перехватчиков безопасны на 100% (поскольку вы не заменяете код, вы заменяете указатель, поэтому нет шансов на состояние гонки. ), и это легко сделать и на нативных процессах x64 (чего не может сделать библиотека Microsoft Detours, если вы не выделите 10 штук для версии Prof).
Да, существуют сторонние библиотеки обхода, которые поддерживают x64 и позаботятся о большинстве условий гонки и о чем-то еще, но некоторые из них действительно дороги, а с другими просто больно работать.
IAT / EAT-хуки бывают быстрыми и легкими, и пример кода для их выполнения доступен в книге "Windows через C / C ++" (наряду с множеством мест на межсетевых страницах).
Это довольно общий ответ, который я знаю, но трудно вдаваться в подробности без дополнительной информации о том, что именно вы пытаетесь сделать.