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