Witajcie, mam takie małe pytanie, jak w C++ zrobić hook na daną funkcję z procesu do którego wstrzykuje daną dllkę ?
Chodzi mi dokładnie o funkcje oCGame::Render (0x006C86A0) z g2nk.Wywołuje się ona gdy gra jest renderowana (kilka razy na sekundę bodajże), jest to po prostu swoisty update.
Jak na razie staram się nie używać tej funkcji, a zamiast tego robię to tak:
#include <windows.h>
DWORD WINAPI MAIN();
BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, LPVOID reserved)
{
switch(reason)
{
case DLL_PROCESS_ATTACH:
CreateThread(NULL,NULL,(LPTHREAD_START_ROUTINE)MAIN,NULL,NULL,NULL);
MessageBoxA(0,"Dll zostało poprawnie załadowane","Komunikat",0);
break;
}
return TRUE;
}
DWORD WINAPI MAIN()
{
while(1)
{
if(GetAsyncKeyState(0x33))
{
//Kod uzdrowienia
MessageBoxA(NULL,"Zostałeś uzdrowiony ","Wiadomość",MB_OK);
}
}
return 0;
}
Niestety takie wyjście z tej sytuacji daje mi wiele licznych błędów, np dy użyje funkcji uzdrawiania gdy menu jest aktywne to dostaję błąd ponieważ może to zostać użyte tylko podczas renderowania a klawisze są aktywne cały czas.
O to funkcja oCGame::Render w IDA Pro:
.text:006C86A0 ; public: virtual void __thiscall oCGame::Render(void)
Bardzo proszę o waszą pomoc.
EDIT:Rozwiązane