Можете ли вы использовать Detours в exe? - PullRequest
0 голосов
/ 29 сентября 2019

Я хочу заменить функции LoadLibrary, чтобы предотвратить загрузку занесенных в черный список dll, которые могут быть введены.

Я скопировал пример кода из _win32.cpp для необходимых мне функций LoadLibrary.Я использовал LoadLibraryW, LoadLibraryExW, LoadLibraryA и LoadLibraryExA.Показывает только один вызов, поскольку они все одинаковы, но имя функции.

DetourTransactionBegin();
DetourUpdateThread(GetCurrentThread());

LONG l = DetourDetach(&(PVOID&)Real_LoadLibraryA, Mine_LoadLibraryA);
if (l != 0)
{
  __debugbreak();
}

PVOID* ppbFailedPointer = nullptr;
LONG error = DetourTransactionCommitEx(&ppbFailedPointer);
if (error != 0)
{
  __debugbreak();
}

DetourDetach всегда возвращает ERROR_INVALID_BLOCK.Я могу нормально выполнить примеры, но все они являются примерами внедрения кода с использованием DLL.

1 Ответ

0 голосов
/ 29 сентября 2019

Спасибо, кто-нибудь за поиск, это была моя глупая ошибка.Я позвонил в DetourDetach, когда должен был вызвать DetourAttach.

У меня сейчас работает.

...