Вопрос Выгрузка инжекнутой DLL

Тема в разделе "C, C++", создана пользователем qwintty, 1 июл 2018.

  1. qwintty

    qwintty Активный участник

    Регистрация:
    14 июл 2017
    Сообщения:
    26
    Симпатии:
    1
    Собсна каким образом можно реализовать выгрузку инжектнутой тобой DLL .Естественно dll (сам писал)моя.Подскажите пожалуйста.
     
  2. CleanLegend

    CleanLegend Интересующийся

    Регистрация:
    28 мар 2013
    Сообщения:
    128
    Симпатии:
    116
    С помощью функции FreeLibraryAndExitThread, перед её вызовом нужно снять хуки и тд
     
  3. NearBy

    NearBy Участник

    Регистрация:
    3 июл 2018
    Сообщения:
    10
    Симпатии:
    4
    void StartThread(const HINSTANCE& hinstDLL) {
    //...манипуляции с приложением..
        while (условие_какое-то)
        {
            Sleep(1);
        }
    
        FreeLibraryAndExitThread(hinstDLL, 0);
    }
    
    BOOL APIENTRY DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
    {
    
        switch (fdwReason)
        {
        case DLL_PROCESS_ATTACH://Вызывается первым
            StartThread(hinstDLL);
            return 1;
        case DLL_PROCESS_DETACH://вызывается после освобождения библиотеки
            break;
        case DLL_THREAD_ATTACH://вызывается при создании потока
            break;
        case DLL_THREAD_DETACH://вызывается после разрушения потока
            break;
        }
    
        return TRUE;
    }

    Как пример.Сам использую подобное.
     
    УченикДимаса и Revalto нравится это.