так из того же примера, что ты скидывал ссылку на тему.Там пример есть, но что-то не то)
Хотелось бы не только вызывать код внутри dll, но и получать из dll например string с текстом.
Хорошо бы разобраться в этом и выложить готовые исходники с инклудами в ресурсы.
C++:
#include "stdafx.h"
#define RESULT_DECL void*const Result
typedef void (*Native)(struct FFrame& TheStack, RESULT_DECL);
typedef BYTE(__cdecl* GRegisterNative_fnType)(INT iNative, const Native& Func);
GRegisterNative_fnType volatile GRegisterNative_fn = NULL;
void hookCore();
extern "C" __declspec(dllexport)
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID /* lpReserved */)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
{
//MessageBox(nullptr, L"DLL_PROCESS_ATTACH", L"DllMain", MB_OK);
hookCore();
break;
}
case DLL_THREAD_ATTACH:
{
//MessageBox(nullptr, L"DLL_THREAD_ATTACH", L"DllMain", MB_OK);
break;
}
case DLL_THREAD_DETACH:
{
//MessageBox(nullptr, L"DLL_THREAD_DETACH", L"DllMain", MB_OK);
break;
}
case DLL_PROCESS_DETACH:
{
//MessageBox(nullptr, L"DLL_PROCESS_DETACH", L"DllMain", MB_OK);
break;
}
}
return TRUE;
}
void PRIVATE_OnCalled_execDebug(struct FFrame& Stack, RESULT_DECL)
{
MessageBox(nullptr, L"Call delegate PRIVATE_OnCalled_execDebug", L"hook", MB_OK);
}
void hookCore()
{
auto hCore = GetModuleHandleA("Core.dll");
if (hCore) {
MessageBox(nullptr, L"hCore is not null", L"hook", MB_OK);
GRegisterNative_fn = (GRegisterNative_fnType)GetProcAddress(hCore, "?GRegisterNative@@YAEHABQ8UObject@@AEXAAUFFrame@@QAX@Z@Z");
if (GRegisterNative_fn)
{
MessageBox(nullptr, L"GRegisterNative_fn is not null", L"hook", MB_OK);
GRegisterNative_fn(2, &PRIVATE_OnCalled_execDebug);
}
}
}
Стало быть осталось только разобраться как присвоить айди функции из той же темы
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками
Вход или Регистрация