C++ .dll inject forms

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

KingMasterS

Gold Üye
Katılım
10 Nis 2020
Mesajlar
233
Beğeniler
76
mainDLL.cpp
Kod:
include <windows.h>
extern int Main(); 

void WINAPI MainThread( )
{
    //Burası dll yi oyuna inject ettiğimiz zaman çalışıyor
    Main(); //Burası biraz sonra ekleyeceğimiz formu çağırıp göstericek

}

BOOL WINAPI DllMain ( HMODULE hModule, DWORD dwReason, LPVOID lpvReserved )
{
    switch ( dwReason ) {
        case DLL_PROCESS_ATTACH:

            DisableThreadLibraryCalls(hModule);

            if ( CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)MainThread, NULL, 0, NULL) == NULL ) {
                return FALSE;
            }
            break;
           
        case DLL_PROCESS_DETACH:
            break;

        case DLL_THREAD_ATTACH:
            break;

        case DLL_THREAD_DETACH:
            break;
    }
    return TRUE;
}

Bunu sourceye ekledikten sonra form ekle:

Add > New Item > UI > Windows Form
Formun ismide Form1 olsun, çıkan hatalara evet de.

Formu ekledikten sonra Form1.cpp ye git, includelerden sonra şu kodları ekle:

C++:
//MyDLL senin projenin isminin adı, eğer projenin ismi selamınaliminyumsa MyDLL yerine selamınaliminyum yaz

using namespace MyDLL;

[STAThreadAttribute]

int Main()
{
    // Herhangi bir kontrol oluşturulmadan windows xp görsel efekti aktifleştirdik
    Application::EnableVisualStyles();
    Application::SetCompatibleTextRenderingDefault(false);

   
    Application::Run(gcnew Form1()); //Form1 bizim oluşturduğumuz formun adı
    //Eğer form1 değilde mesela KingMasters diye oluşturursan oraya KingMasters yaz
    return 0;
}

DLL i direk bir processe inject edemezsin çünkü managed bir dlldir
Bunun için 2 yöntem var
1 Unmanaged bir dll yazıp(c++) CLR inject yapacaksın
2 EasyHook kullanıp injectleyeceksin
 
burdada c++ dllyi taskmanagere injectlediginde consoleapplication açılıyor bunu form applicationa uyarlayabilirsiniz
 
yararlı bir kaynak daha
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

  Şuanda konuyu görüntüleyen kullanıcılar


Üst Alt