Herkese selam, bir programa hook atıyorum. Hook çalışıyor ama loop a alıyor. Ben ama while la almadığım halde hep hooklanmış fonksiyondaki işlem başlıyor.
Kodlar:
Hooklanan program:
Hook dll si:
Fotoğraflar:
Hatam nedir? Lütfen yardım edin!
Kodlar:
Hooklanan program:
C++:
#include <iostream>
#include <Windows.h>
int a = 31;
void IncreaseA() {
a++;
std::cout << "Im called!\n";
}
int main()
{
std::cout << "Calling function in 30 seconds\n";
Sleep(30000);
IncreaseA();
while (true)
{
if (GetAsyncKeyState(VK_END))
break;
}
}
Hook dll si:
C++:
#include <Windows.h>
#include <Detours.h>
#include <iostream>
#pragma comment(lib, "detours.lib")
DWORD oIncreaseAddress = 0x3D22E8;
typedef void(*IncreaseA)();
void hkIncreaseA() {
try
{
std::cout << "LMAO\n";
IncreaseA oIncreaseA = (IncreaseA)oIncreaseAddress;
return oIncreaseA();
}
catch (const std::exception&)
{
MessageBoxA(NULL, "ERROR", "ERROR", NULL);
}
}
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
Detours::X86::DetourFunction((uintptr_t)oIncreaseAddress, (uintptr_t)hkIncreaseA);
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
Fotoğraflar:
Hatam nedir? Lütfen yardım edin!