Hook atınca crash veriyor

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Uzman Üye
Katılım
25 Ağu 2020
Mesajlar
188
Tepki puanı
29
Ödüller
5
5 HİZMET YILI
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:
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:
1618606770826.png


Hatam nedir? Lütfen yardım edin!
 
Banlı Üye
Katılım
2 Ara 2020
Mesajlar
128
Çözümler
1
Tepki puanı
44
5 HİZMET YILI
Kod o kadar mantıksız bir şekilde yazılmış ki LMAO koyuyorsun bir parametre vermeden direk sürekli loop'a sokuyorsun kendi adına ve catch neye göre yapmasını belirtmemişsin kısaca kodun saçma
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst