Oyunlara Mod Nasıl Yapılır?

Yanlış bilgi verdiysem affola, bildiklerimi yazıyorum;
Mesela Counter-Strike için bot yaparken source kodlarında nasıl bir değişikliğe gidilmiş olabilir?
Kaynak kodlarını değiştirmiyorlar, RAM'den oyuncuların bilgilerini, koordinatlarını okuyarak wallhack, aimbot gibi hileleri yazıyorlar. Windows'daki pencereyi boyayarak da wallhack yapılmış oluyor. Aimbot yapmak için matematik işimizi görecektir.
İnternette C++ ile hack yazmayı bile öğretenler var.

Eğer oyunlara 3B model eklemeyi gerçekten çok istiyorsan açık kaynaklı oyunlara bakabilirsin. DOOM , Quake III gibi oyunları kendine göre şekillendirebilirsin. İnternette yüzlerce açık kaynak oyun var. Tabii ki bunu yapabilmek için sağlam bir programcı olman lazım.
 
Yanlış bilgi verdiysem affola, bildiklerimi yazıyorum;

Kaynak kodlarını değiştirmiyorlar, RAM'den oyuncuların bilgilerini, koordinatlarını okuyarak wallhack, aimbot gibi hileleri yazıyorlar. Windows'daki pencereyi boyayarak da wallhack yapılmış oluyor. Aimbot yapmak için matematik işimizi görecektir.
İnternette C++ ile hack yazmayı bile öğretenler var.

Eğer oyunlara 3B model eklemeyi gerçekten çok istiyorsan açık kaynaklı oyunlara bakabilirsin. DOOM , Quake III gibi oyunları kendine göre şekillendirebilirsin. İnternette yüzlerce açık kaynak oyun var. Tabii ki bunu yapabilmek için sağlam bir programcı olman lazım.
Siz beni anlamadınız. Oyun içindeki yapay zeka botlardan bahsediyorum. Aimbot değil.
 
Merhaba arkadaşlar.
Başlıktaki gibi oyunlara mod yapmak istiyorum.
Bu Reverse Engineering nasıl işler, nasıl mod yapabilirim biraz bahseder misiniz ?
Dostlar bu işlem için C# ve DLL lere hakim olmanız lazım. Her firma oyunlarına mod yapmaya izin vermez.
Size tavsiyem Epic Games Launcher'i indirin, ve ARK modlama gibi bir seçenek var onu indirin. Yanlız Ark ağır bir oyundur, sistem katilidir. Ark için indireceğiniz o program bile 100 gb gibi bir değer ve oyununuzun da orjinal olması gerekiyor.
 
Oyunu yapan bazı firmalar, oyunun yanında api de sunarlar. Bu api'ye uyarak mod yazabilirsin. Modlu oyunlar, kendi ana akışının belirli kısımlarında senin yazdığın modül/modülleri çağırırlar. Örneğin half life'ın sdk'sı var, Minecraft'ın bukkit'i var.
Burda bahsettiğim işlemler JIT derlemeli dillerde reflection ile, C C++ gibi native dillerde mod barındıran DLL'lerin runtime'da yüklenmesini sağlayan sistem fonksiyonlarının çağrılmasıyla yapılır.
Windows'ta LoadLibrary ve GetProcAddress gibi fonksiyonlarla örneğin.
 
Son düzenleme:
OllyDbg, x64dbg, IDA gibi programlarla hangi oyunda bir nesne eklemek istiyorsan önce pointer adreslerini bulmalısın.
Bu pointer adreslerinde önceliğin X, Y, Z kordinatları olmalı. Çünkü ekleyeceğin nesnenin konumlarını bulmalısın.
Daha sonra objelerin kimliklerini (id) numaralarını bulman gerekir.
Bunları da bulduktan sonra obje oluşturma fonksiyonunu bulacaksın. Bu fonksiyonu da bulduktan sonra obje id, kordinatlar şeklinde istediğin nesneyi oyuna ekleyebilirsin.

Buda örnek bir kod, oyunun chat bölümüne mesaj ekler.
C++:
void addToChatWindow(char *text, DWORD textColor)
{
    if (!m_dwSAMPBase)
        return;
        
    if (!text)
        return;

    DWORD    chatinfo = m_dwSAMPBase + 0x21A0E4;
    DWORD    func = m_dwSAMPBase + 0x64010;
    
    // m_dwSAMPBase -> Offset adresi + 0x21A0E4 -> pointer adresi
    
    __asm
    {
        MOV eax, dword ptr[chatinfo]
            MOV ecx, dword ptr[eax]
            PUSH 0
            PUSH textColor
            PUSH 0
            PUSH text
            PUSH 8
            CALL func
    }
}
 

Technopat Haberler

Geri
Yukarı