Driver Blacklist Sistemi Detaylı Kaldırma Rehberi

  • Konbuyu başlatan Konbuyu başlatan Admin
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 46

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Gereksiz Kod Temizliği: Driver Blacklist (grpblk.txt) Kaldırma
Windows XP döneminden kalma, artık işlevi olmayan sürücü engelleme sistemini kaldırın.



Nedir ve Neden Kaldırıyoruz?

Bu sistem, antik DirectX 8 döneminden kalma bir "workaround" (geçici çözüm) yamasıdır. Windows XP zamanında bazı ekran kartı sürücülerinin (örneğin; nv4_disp.dll - NVIDIA DX7/DX8 veya ialmdd.dll - Intel Extreme Graphics) oyunla uyumsuz olduğu ve çökmelere yol açtığı biliniyordu.

Oyun geliştiricileri bu sürücüleri engellemek için grpblk.txt adında bir kara liste sistemi kodlamışlardı. Ancak günümüzde Windows 10/11 ve modern GPU'lar kullanıyoruz. Bu kod tamamen ölü bir koddur ve gereksiz dosya okuma işlemi yapmaktadır.

Bu rehber ile bu sistemi tamamen kaldırıyoruz.



⚠️ DİKKAT ⚠️
İşlemlere başlamadan önce Client Source yedeğinizi alınız!



ADIM 1: Pack Tarafı

Konum: Client\Binary\pack\root\
İşlem: Aşağıdaki dosyayı tamamen silin.

Kod:
grpblk.txt



ADIM 2: EterLib Düzenlemeleri

Dosya: Client\Source\EterLib\GrpDevice.cpp

1. İşlem: Aşağıdaki fonksiyonu bulun ve tamamen silin:

Kod:
bool CGraphicDevice::__IsInDriverBlackList(D3D_CAdapterInfo& rkD3DAdapterInfo) {     D3DADAPTER_IDENTIFIER8& rkD3DAdapterIdentifier = rkD3DAdapterInfo.GetIdentifier();     char szSrcDriver[256];     strncpy(szSrcDriver, rkD3DAdapterIdentifier.Driver, sizeof(szSrcDriver) -1);     DWORD dwSrcHighVersion = rkD3DAdapterIdentifier.DriverVersion.QuadPart >> 32;     DWORD dwSrcLowVersion = rkD3DAdapterIdentifier.DriverVersion.QuadPart & 0xffffffff;     bool ret = false;     FILE* fp = fopen("grpblk.txt", "r");     if (fp)     {         // ... (fonksiyonun geri kalanı) ...         fclose(fp);     }     return ret; }

2. İşlem: Aşağıdaki kontrol bloğunu bulun ve silin:

Kod:
if (__IsInDriverBlackList(*pkD3DAdapterInfo))     {         iRet |= CREATE_BAD_DRIVER;         __WarningMessage(hWnd, CREATE_BAD_DRIVER);     }



Dosya: Client\Source\EterLib\GrpDevice.h

1. İşlem: Enum yapısı içindeki şu satırı silin:
(Not: Numaralandırma sizde farklı olabilir, sildikten sonra sıralamayı (1<<X) düzeltmeyi unutmayın.)

Kod:
CREATE_BAD_DRIVER        = (1 << 9),

2. İşlem: Fonksiyon tanımını silin:

Kod:
bool __IsInDriverBlackList(D3D_CAdapterInfo& rkD3DAdapterInfo);



ADIM 3: UserInterface Düzenlemeleri

Dosya: Client\Source\UserInterface\PythonApplication.cpp

1. İşlem: Aşağıdaki uyarı mesajı kaydını silin:

Kod:
m_grpDevice.RegisterWarningString(CGraphicDevice::CREATE_BAD_DRIVER, ApplicationStringTable_GetStringz(IDS_WARN_BAD_DRIVER, "WARN_BAD_DRIVER"));

2. İşlem: Aşağıdaki hata kontrol bloğunu silin:

Kod:
//if (iRet & CGraphicDevice::CREATE_BAD_DRIVER)                 //{                 //    LogBox(ApplicationStringTable_GetStringz(IDS_WARN_BAD_DRIVER), NULL, GetWindowHandle());                 //}



İşlemler tamamlandıktan sonra Client Source build almayı unutmayın.
İyi forumlar!

Driver Blacklist Sistemi Nedir?
Metin2 özel sunucularında güvenliği artırmak ve hile kullanımı gibi durumları engellemek amacıyla bazı sistemler geliştirilmiştir. Bu sistemlerden birisi de Driver Blacklist sistemidir. Bu sistem, oyuncuların bilgisayarlarında çalışan belirli sürücüleri (driver) kontrol ederek, yasaklanmış olanları tespit eder ve oyuna girişlerini engeller. Bu sayede hile yazılımlarının çoğu bertaraf edilir.

Driver Blacklist Sisteminin Amaçları
Bu sistemin temel amacı, Metin2 özel sunucu ortamında adil bir oyun deneyimi sunmaktır. Özellikle PvP odaklı sunucularda hile kullanımı ciddi dengesizliklere neden olabilir. Driver blacklist sistemi sayesinde; aimbot, wallhack gibi hilelerin çalıştığı bilinen sürücüler engellenir.

Sistem Nasıl Çalışır?
Driver blacklist sistemi, oyuncunun bilgisayarındaki aktif sürücüleri tarar ve bu listeyi önceden tanımlanmış bir kara listede yer alan dosya isimleriyle karşılaştırır. Eğer bir eşleşme bulunursa, kullanıcıya giriş hakkı verilmez ve genellikle bir hata mesajı gösterilir. Bu işlem genellikle oyun başlatma aşamasında gerçekleştirilir.

Blacklist Sistemini Devre Dışı Bırakmak
Bazı durumlarda, legitimate (yasal) bir sürücünün yanlışlıkla kara listeye girmesi mümkün olabilir. Bu gibi durumlarda sistemin nasıl kaldırılacağı bilinmelidir. Aşağıda adım adım driver blacklist kaldırma işlemi açıklanmıştır:

1. Sunucu Kaynağını Kontrol Et
Öncelikle Metin2 Lobby üzerinden eriştiğiniz özel sunucunuzun C++ kaynak kodları üzerinde değişiklik yapmanız gerekir. Genellikle bu işlem game server tarafında yapılır.

2. Blacklist Tanımlarını Bul
Sunucu kaynak kodları içinde driver kontrol mekanizmasının bulunduğu fonksiyonları aramalısınız. Bunlar genellikle client src veya server src içinde yer alır. Belirli bir dosya adı ya da dizin adı baz alınarak kontrol yapılır.

3. Blacklist Dosyasını veya Kodunu Düzenle
Bulduğunuz blacklist tanımını silmek veya yorum satırına almak suretiyle sistemi devre dışı bırakabilirsiniz. Bu işlem genellikle bir Python scripti ile de desteklenebilir. Py Root içinde yer alan betiklerle bu kontrol daha esnek hale getirilebilir.

4. Compile İşlemi
Değişiklikleri yaptıktan sonra tekrar derlemeniz (compile) gerekir. Metin2 compile işlemleri sırasında hata oluşmaması için dikkatli olunmalıdır.

5. Test Aşaması
Yeni yapılandırılmış sürümü test ederek sistemin artık blacklist kontrolü yapmadığını doğrulayın. Gerekirse farklı sürücü adları ile test yapabilirsiniz.

Alternatif Yollar
Bazı sunucular, martysama tarafından geliştirilen sistemlerle blacklist kontrolünü daha detaylı yapar. Bu sistemlerde blacklist dışına çıkarma işlemi daha karmaşık olabilir. Ancak bu durumda da DB Core ve Game Core seviyesinde müdahaleler gerekebilir.

Sonuç
Driver blacklist sistemi, Metin2 özel sunucularında güvenlik için önemli bir araçtır. Ancak zaman zaman legitimate sürücülerin yanlışlıkla engellenmesi gibi durumlar oluşabilir. Bu rehber sayesinde sistemin nasıl kaldırılacağını öğrenmiş oldunuz. Unutmayın ki bu tür değişiklikler sunucu güvenliğini etkileyebileceğinden dikkatli hareket etmelisiniz.


What is the Driver Blacklist System?
In Metin2 private servers, several security measures have been developed to prevent cheating and ensure a fair gameplay environment. One such system is the Driver Blacklist system. This system scans for specific drivers running on players' computers, detects any that are on a predefined blacklist, and blocks access to the game. This effectively prevents many known cheat programs from operating.

Purpose of the Driver Blacklist System
The main goal of this system is to provide a fair gaming experience in Metin2 private server environments. In PvP-focused servers especially, cheating can cause serious imbalances. With the help of the driver blacklist system, cheats like aimbots and wallhacks can be blocked by targeting their associated drivers.

How Does the System Work?
The driver blacklist system scans active drivers on a player's computer and compares them with a predefined list of blacklisted file names. If a match is found, the user is denied access to the game and usually receives an error message. This check typically occurs during the game startup phase.

Disabling the Blacklist System
In some cases, a legitimate driver might be mistakenly added to the blacklist. Knowing how to disable the system is important in such situations. Below are the steps to remove the driver blacklist:

1. Check Server Source Code
First, you need to modify your private server's C++ source code. Usually, this process involves changes on the game server side, which you can access via Metin2 Lobby.

2. Locate the Blacklist Definitions
Within the server source code, find the functions responsible for driver checks. These are generally located in client src or server src folders, where certain filenames or paths are checked against the blacklist.

3. Edit or Remove the Blacklist File or Code
You can disable the system by deleting or commenting out the blacklist definition. Such modifications may also be supported by a Python script. Scripts within Py Root can make the check more flexible.

4. Compile Process
After making the necessary changes, you must recompile (compile). Be careful during Metin2 compile operations to avoid errors.

5. Testing Phase
Test the newly configured version to confirm that the system no longer performs blacklist checks. You may also test with different driver names if needed.

Alternative Methods
Some servers use more advanced systems developed by martysama for detailed blacklist control. In such cases, removing entries from the blacklist may require more complex interventions at the DB Core and Game Core levels.

Conclusion
The driver blacklist system is an essential security feature for Metin2 private servers. However, occasionally legitimate drivers may be mistakenly blocked. With this guide, you now know how to remove the system. Remember that such changes may affect server security, so proceed carefully.​
 

Şuan Bu Konuyu Görüntüleyen Kullanıcılar (Toplam : 0, Üye : 0, Misafir : 0)

Geri
Üst Alt