Hepinize hello arkadaşlar, bugün size DirectX gaming hack anlatacağım.
Size hazır kod vereceğim ve bunun yanında anlatımlarınıda yapacağım.
Şimdi bakın ilk olarak gerekli sdk ları eklememiz gerekli, bu sdklar directx9 2004 summer sdk ve Detour 1.5 sdksıdır
Konuya ekleyeceğim.
(SDK eklemeyi bilmeyen varsa kodlamaya başlamasın. ilk önce vs.net kullanımını öğrenin o zaman.)
DirectX SDK ;
BURADAN
Virus Total ;
BURADAN
Şimdi bakın ilk olarak hilemizden ziyade menümüzde çok önemli menümüzün görünümü, verdiği performans çok çok önemli yani siz çok fena bi hack yaparsınız ama menünüz 20 fps verir kasma yapar sonuç = hüsran.
Görünümü sonra anlatacağım ilk olarak hook'umuzu main kodlarımızı bir ekleyelim.
HOOK'umuz (Her oyunda çalışmayabilir, oyunlar genelde hookları fixler farklı bir konu altında farklı hookları paylaşacağım.)
Şimdi Hook nedir ? ; Hook adı üstünde kancadır peki ne kancası ? bizim .dll mizle oyun arasındaki DirectX bağlantısını yapan kancadır
Hook'umuz şöyle;
Herşey tamam ve stabil.
Şimdi bu hookta çağırdığımız mEndScene'yi tanımlamamız gerekiyor.
oluşturduğumuz .cpp nin en başına
Daha sonra onun bir altına şunları yapıştırıyoruz
Şimdii kök oluştu yaptık herşeyi güzelce hooklanırsa çalışacaktır, ama şuanlık menü felan çizmiyor ne yapacağız ?
Burdan sonrası size vereceğim fonksiyonları kullanarak göz zevkinize kalmış.
Yukarda attığım fonksiyonun kullanımı ise şöyledir.
Eğer yaratıcılığınızı konuşturup menünüzü çizip componentlerinizi ayarlarsanız başarıyla hooklanıp çalışacaktır, menüyü kontrol ettirme felan sizin kodlama becerinize kalmış
Edit : sansürlenen yerler "vo id" 'in birleşmiş halidir gereksiz sansür atılıyor.
İyi Günler ^,^
Size hazır kod vereceğim ve bunun yanında anlatımlarınıda yapacağım.
Şimdi bakın ilk olarak gerekli sdk ları eklememiz gerekli, bu sdklar directx9 2004 summer sdk ve Detour 1.5 sdksıdır
Konuya ekleyeceğim.
(SDK eklemeyi bilmeyen varsa kodlamaya başlamasın. ilk önce vs.net kullanımını öğrenin o zaman.)
DirectX SDK ;
BURADAN
Virus Total ;
BURADAN
Şimdi bakın ilk olarak hilemizden ziyade menümüzde çok önemli menümüzün görünümü, verdiği performans çok çok önemli yani siz çok fena bi hack yaparsınız ama menünüz 20 fps verir kasma yapar sonuç = hüsran.
Görünümü sonra anlatacağım ilk olarak hook'umuzu main kodlarımızı bir ekleyelim.
Kod:
BOOL __stdcall DllMain(HINSTANCE hDll, DWORD Snc, LP**** Lpc) // Bu bizim main kodumuz
{
DisableThreadLibraryCalls(hDll); // Tüm kütüphane çağrılarını kapatıyoruz
switch (Snc) // Switch yerine if de yapılabilir ama x64 tabanlıda olması için switch kullanılmalı
{
case DLL_PROCESS_ATTACH: // Burda Snc == DLL_PROCESS_ATTACH olduğunda yani DLL miz işleme bağlandığında yapılacak şeyleri belirtiyor.
CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)HOOK, NULL, NULL, NULL); // Hook Fonksiyonumuzu yeni bir thread adı altında ekliyoruz.
break;
}
return TRUE;
}
HOOK'umuz (Her oyunda çalışmayabilir, oyunlar genelde hookları fixler farklı bir konu altında farklı hookları paylaşacağım.)
Şimdi Hook nedir ? ; Hook adı üstünde kancadır peki ne kancası ? bizim .dll mizle oyun arasındaki DirectX bağlantısını yapan kancadır
Hook'umuz şöyle;
Kod:
int HOOK(****)
{
DWORD * sTablo; // vTable'a göre yapıyorum mid function vs türleri var ama bana göre en iyisi bu.
DWORD mD3D = 0; // ModuleHandleA değişkenimiz.
do{
mD3D = (DWORD)GetModuleHandleA("d3d9.dll"); // Oyunun ana d3d9.dll sini değişkenimize çekiyoruz
Sleep(10);
} while (!mD3D);
DWORD adr = FindPattern(mD3D, 0x128000, (PBYTE)"\xC7\x06\x00\x00\x00\x00\x89\x86\x00\x00\x00\x00\x89\x86", "xx????xx????xx"); // D3d9.dll de bulunan ve d3d9 a güncelleme gelmediği için sabit kalan patternimiz ile hook'umuzu atacağımız yeri belirliyoruz.
if (adr)
{
memcpy(&sTablo, (*****)(adr + 2), 4); // sTablo'yu Adr+2 , size 4 olarak oraya yerleştiriyoruz.
// pReset = (Reset)DetourCreate((PBYTE)sTablo[RESET], (PBYTE)mReset, 5);
pEndScene = (EndScene)DetourCreate((PBYTE)sTablo[ENDSCENE], (PBYTE)mEndScene, 5); // EndScene derken bir kare bittiğinde olacak şeyleri kastediyor.
// pDip = (Dip)DetourCreate((PBYTE)sTablo[DIP], (PBYTE)mDip, 5); // Ana Texture işlemlerinin yapılacağı yer.
}
return 0;
}
Herşey tamam ve stabil.
Şimdi bu hookta çağırdığımız mEndScene'yi tanımlamamız gerekiyor.
oluşturduğumuz .cpp nin en başına
Kod:
typedef HRESULT (__stdcall * EndScene)(LPDIRECT3DDEVICE9 Aygıt);
EndScene pEndScene = NULL;
Daha sonra onun bir altına şunları yapıştırıyoruz
Kod:
HRESULT __stdcall mEndScene(LPDIRECT3DDEVICE9 Aygıt)
{
// Ana menümüzü çizdireceğimiz yer burasıdır.
return pEndScene(Aygıt);
}
Şimdii kök oluştu yaptık herşeyi güzelce hooklanırsa çalışacaktır, ama şuanlık menü felan çizmiyor ne yapacağız ?
Burdan sonrası size vereceğim fonksiyonları kullanarak göz zevkinize kalmış.
Kod:
**** Kutu(int x, int y, int w, int h, DWORD Renk, LPDIRECT3DDEVICE9 Aygıt)
{
D3DRECT rect = {x,y,x+w,y+h}; // DirectX Rectangle yani directx kare değişkenimizi fonksiyonumuza göre ayarlayıp kodda x,y,width, height verimizi tutan bir değişken yapıyoruz.
Aygıt->Clear( 1, &rect , D3DCLEAR_TARGET, Renk, 0, 0 ); // Renk'imize göre seçtiğimiz alanda bir kare oluşturacak.
}
Yukarda attığım fonksiyonun kullanımı ise şöyledir.
Kod:
Kutu(5,5,200,200, D3DCOLOR_ARGB(0 /*ALPHA*/, 255/*RED*/, 0 /*GREEN*/, 0 /*BLUE*/, Aygıt);
// DirectX ekranında 5, 5 de yani ekranın sol üstü oluyor 200 genişlik ve 200 uzunluk'ta kırmızı bir kutu oluştur.
Eğer yaratıcılığınızı konuşturup menünüzü çizip componentlerinizi ayarlarsanız başarıyla hooklanıp çalışacaktır, menüyü kontrol ettirme felan sizin kodlama becerinize kalmış
Edit : sansürlenen yerler "vo id" 'in birleşmiş halidir gereksiz sansür atılıyor.
İyi Günler ^,^
Son düzenleme: