[C++] Client İçin Küçük Bir Güvenlik Önlemi

Kaiser

Admin
Admin
Geliştirici
Yardımsever Üye
Mesaj
4.402
Çözümler
441
Beğeni
5.012
Puan
2.849
Ticaret Puanı
0
Merhabalar, bir zamanlar oynadığım pvp serverinde böyle bir şey görmüştüm, fikir hoşuma gitmişti ve şimdi aklıma gelince ben de yapıp paylaşmak istedim.
Kısaca bahsetmek gerekirse; client açılırken, kullanıcının D diskinde ymir work adında bir klasör varsa oyun açılmayacak ve çalışmayı durduracak.

Geliştirme sürecinde kullanılması tavsiye edilmez.

Görsel:

5c9jqpq.gif


Client Src/UserInterface/UserInterface.cpp dosyasını açın;
include listesine ekleyin:
C++:
Genişlet Daralt Kopyala
#include <filesystem>

Arayın:
C++:
Genişlet Daralt Kopyala
bool Main(HINSTANCE hInstance, LPSTR lpCmdLine)
{
#ifdef LOCALE_SERVICE_YMIR
    extern bool g_isScreenShotKey;
    g_isScreenShotKey = true;
#endif

Altına ekleyin:
C++:
Genişlet Daralt Kopyala
/* D diski kontrol - Start */
    
    std::filesystem::path kontrol = std::string("D:\\ymir work\\");
    bool koruma = std::filesystem::is_directory(kontrol.parent_path());
    if(koruma)
    {
        MessageBox(NULL, "D Sürücüsünde ymir work klasörü tespit edildi.\n Lütfen klasörü silin ve tekrar deneyin.", NULL, MB_OK);
        return false;
    }
/* D diski kontrol - End */

İstediğiniz doğrultuda geliştirebilirsiniz. İyi çalışmalar.
 
Geliştirme sürecinde kullanılmasını neden tavsiye etmiyorsunuz files geliştrmeden mi bahsettiniz burda
 
Geliştirme sürecinde kullanılmasını neden tavsiye etmiyorsunuz files geliştrmeden mi bahsettiniz burda
Bazı fileslarda pack kapatmaya gerek kalmadan d ymir work klasöründe ilgili değişiklikler yapılarak işlemler yapılıyor pack kapama için zaman harcamıyorsunuz
 
Geliştirme sürecinde kullanılmasını neden tavsiye etmiyorsunuz files geliştrmeden mi bahsettiniz burda
Evet files geliştirme sürecinden bahsettim. Hem @Tengrist in söylediği gibi durumlarda hem de örneğin world editör vs. daha rahat kullanabilmek için geliştirme esnasında bunu yapmaya gerek yok.
 
Uyarı: Bu konu açıldığından bu yana baya zaman geçmiş.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.
Geri
Üst