Вопрос Проблемы с g++

  • Автор темы Автор темы Fronis
  • Дата начала Дата начала
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
10 Апр 2022
Сообщения
183
Реакции
16
привет, надо собирать длл через g++ но после инжекта бесконечно вызывается функция. что делать ?


C++:
Expand Collapse Copy
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <windows.h>
#include <iostream>
#include <urlmon.h>
#include <tchar.h>

#pragma comment (lib, "urlmon.lib")


BOOL WINAPI test(HMODULE hModule)
{
    printf("123\n");

   return TRUE;
}

BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
    AllocConsole();
    freopen("CONOUT$", "w", stdout);
    
    CreateThread(0, 0, (LPTHREAD_START_ROUTINE)test, 0, 0, 0);
    return TRUE;
}

g++ -m32 -shared -o example.dll main.cpp -lurlmon
 
Почитай о том, как вызывается точка входа. В случае, если тебе нужно вызывать функцию при присоединении к процессу, то сделай проверку ul_reason_for_call на DLL_PROCESS_ATTACH
 
Почитай о том, как вызывается точка входа. В случае, если тебе нужно вызывать функцию при присоединении к процессу, то сделай проверку ul_reason_for_call на DLL_PROCESS_ATTACH
Помимо всего прочего никакого кода кроме создания треда в DllMain не должно быть, оно там не будет работать
 
Я уже давно заметил
помоему у тебя после вызывания твоей функи все время она как раз таки остается рабочей потому что она у тебя возвращает 24/7 тру, тебе бы сделать какую либо проверочку чтоб потом после срабатывания твоей крутой функции оно вернуло фолсе и перестало работать
 
привет, надо собирать длл через g++ но после инжекта бесконечно вызывается функция. что делать ?


C++:
Expand Collapse Copy
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <windows.h>
#include <iostream>
#include <urlmon.h>
#include <tchar.h>

#pragma comment (lib, "urlmon.lib")


BOOL WINAPI test(HMODULE hModule)
{
    printf("123\n");

   return TRUE;
}

BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
    AllocConsole();
    freopen("CONOUT$", "w", stdout);
   
    CreateThread(0, 0, (LPTHREAD_START_ROUTINE)test, 0, 0, 0);
    return TRUE;
}

g++ -m32 -shared -o example.dll main.cpp -lurlmon
C++:
Expand Collapse Copy
INT WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID)
{
    if( dwReason==DLL_PROCESS_ATTACH )
    {
        AllocConsole( );
        freopen_s( reinterpret_cast< _iobuf ** >( __acrt_iob_func( 1 ) ), "CONOUT$", "w", __acrt_iob_func( 1 ) );
        freopen_s( reinterpret_cast< _iobuf ** >( __acrt_iob_func( 0 ) ), "CONIN$", "r", __acrt_iob_func( 0 ) );

        std::thread( [ hdll ]{ test( hdll ); } ).detach( );
    }
    return TRUE;
}
 
Назад
Сверху Снизу