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

Kaiser

⋞ 〈 ☪ 〉 ⋟
Site yetkilisi
Yönetici
Geliştirici
Yardımsever Üye
Yazar
Mesaj
2.891
Beğeni
2.523
Puan
1.849
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++:
#include <filesystem>

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

Altına ekleyin:
C++:
/* 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.
 

ayzer2541

Aktif Üye
Üye
Mesaj
151
Beğeni
34
Puan
739
Geliştirme sürecinde kullanılmasını neden tavsiye etmiyorsunuz files geliştrmeden mi bahsettiniz burda
 

Kaiser

⋞ 〈 ☪ 〉 ⋟
Site yetkilisi
Yönetici
Geliştirici
Yardımsever Üye
Yazar
Mesaj
2.891
Beğeni
2.523
Puan
1.849
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.
 

Üst