VFS dosya sistemi ve pack kilitleme

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Merhaba, Bir süre önce satışını yapmak için hazırlamış olduğum yeni bir dosya sistemini paylaşmak istedim. Anlatım eksik ya da sizde ekli olmayan kısımları içerebilir, temiz bir source üzerinde denemedim. Eksik ya da yanlış kısım varsa konu üzerinden paylaşabilirsiniz. Sistemi sadece Visual studio 2017 ve 2019 üzerinde denedim C++17 gereksinimi olduğundan dolayı diğer sürümlerde çalışmayacaktır, daha eski bir sürüm kullanıyorsunuz boş yere denemeyin.

Anlatım:
içerisindeki dosyalardaki anlatılan adımları uygulayın.

Archiver/config.json dosyası içeriğini kendi pack düzeninize göre düzenleyin.
Client Source/UserInterface/UserInterface.cpp içerisindeki packFiles vector içeriğini kendi pack düzeninize göre düzenleyin.

Archiver/VFSPropertyGenerator.exe dosyası ile PropertyList.json dosyası oluşturun. Property dosya dizinini ilk argüman olarak vermeniz gerekiyor.
Oluşturulan PropertyList.json dosyasını root packinizin içerisine atın.

config.json dosyasının içeriğini düzenledikten sonra packlerinizi archiver ile oluşturabilirsiniz.
Yeni oluşturulan .vpf uzantılı packlerinizi pack klasörüne atın daha sonra kullanmaya başlayabilirsiniz

Örnek dosya yapısı:
ViGu7n.png


Source kodları:
Anlatım virustotal:
VFS Dosya Sistemi ve Pack Kilitleme Nedir?


Metin2 özel sunucularında güvenlik ve performans açısından kritik öneme sahip olan VFS (Virtual File System) dosya sistemi, paket dosyalarının (pack) yönetimi ve korunması için temel yapı taşlarından biridir. Bu yazıda, VFS sistemine ve pack kilitleme süreçlerine odaklanarak, Metin2 geliştiricileri için önemli teknik detaylara değineceğiz.

VFS Nedir?
VFS, yani Virtual File System, Metin2 oyununda kullanılan sanal dosya sistemi olarak tanımlanabilir. Bu sistem, oyunun client tarafında bulunan grafik, ses ve diğer kaynak dosyalarının güvenli ve optimize bir şekilde erişilmesini sağlar. Kullanıcıya ait paket dosyaları (.pack), VFS sistemi sayesinde derlenerek saklanır. Bu sayede dosyaların doğrudan değiştirilmesi veya okunması engellenmiş olur.

VFS sisteminin avantajları:
- Kaynak dosyalara erişim hızını artırır.
- Paket dosyalarının dışarıdan manipüle edilmesini önler.
- Oyunun bütünlüğünü ve lisanslama sürecini destekler.

Pack Dosyaları ve Güvenlik
Metin2 client'ı, tüm görsel ve ses kaynaklarını .pack uzantılı paket dosyalarında barındırır. Bu dosyalar, VFS sistemi tarafından şifrelenmiş şekilde tutulur. Ancak bazı durumlarda, kötü niyetli kullanıcılar bu dosyaları açmaya ve içeriklerini değiştirmeye çalışabilir. Bu da oyun içi hilelere,不公平luklara ve hatta sunucu güvenlik açıklarına neden olabilir.

Pack kilitleme, bu tür saldırılara karşı alınabilecek en etkili önlemlerden biridir. Pack kilitleme işlemi, .pack dosyasının içeriğinin sadece belirli bir anahtarla açılabilmesini sağlar. Bu sayede, kullanıcıların dosyaları değiştirmesi veya başka client'larla karıştırması önlenir.

VFS Sisteminin Uygulanması
VFS sisteminin doğru şekilde uygulanması için öncelikle client tarafında bazı ayarlamalar yapılması gerekir. Bunun için genellikle C++ tabanlı kaynak kodlar üzerinde değişiklik yapılır. Bu süreçte, client source (client src) üzerinde yapılan düzenlemeler, VFS sistemini aktif hale getirir ve pack dosyalarının güvenliğini sağlar.

Ayrıca, client ve server arasında bir senkronizasyon da sağlanmalıdır. Server tarafında, belirli bir VFS versiyonuna uyumlu olacak şekilde ayarlanmış auth ve game sunucuları çalıştırılmalıdır. Bu sayede, farklı VFS versiyonları ile bağlanmaya çalışan kullanıcılar engellenebilir.

Python ve Py Root ile VFS Yönetimi
Python dili, Metin2 özel sunucu geliştirme sürecinde sıklıkla tercih edilen bir araçtır. Özellikle pack dosyalarının yönetimi ve VFS sisteminin oluşturulması için Python script'leri kullanılabilir. Py root dizini altında çalışan bu script'ler, .pack dosyalarının derlenmesini ve VFS sistemi ile uyumlu hale getirilmesini sağlar.

Py GUI gibi arayüzlerle bu işlemler daha da kolaylaştırılabilir. Geliştiriciler, VFS sistemine ait ayarları daha kullanıcı dostu bir şekilde yönetebilirler.

Sonuç
VFS dosya sistemi ve pack kilitleme, Metin2 özel sunucularında hem oyun deneyimi hem de güvenlik açısından büyük önem taşır. Doğru uygulandığında, kullanıcılar arasında adil bir ortam sağlanır ve sunucu güvenliği ciddi şekilde artar. Bu sistemlerin detaylı bilinmesi, Metin2 geliştiricileri için büyük bir avantajdır ve gelişmiş sistemlerin oluşturulmasına olanak tanır.


What is VFS File System and Pack Locking?


The VFS (Virtual File System) file system, which is crucial for security and performance in Metin2 private servers, serves as one of the fundamental structures for managing and protecting package files (packs). In this article, we will focus on the VFS system and pack locking processes, providing important technical details for Metin2 developers.

What is VFS?
VFS, or Virtual File System, can be described as the virtual file system used in the Metin2 game. This system ensures that graphic, audio, and other resource files within the game client are accessed securely and efficiently. The package files (.pack) belonging to the user are stored in compiled form thanks to the VFS system. Thus, direct modification or reading of these files is prevented.

Advantages of VFS system:
- Increases access speed to resource files.
- Prevents external manipulation of package files.
- Supports the integrity and licensing process of the game.

Pack Files and Security
The Metin2 client stores all visual and audio resources within .pack extension package files. These files are kept encrypted via the VFS system. However, in certain situations, malicious users may attempt to open these files and alter their contents. This could lead to in-game cheats, unfair advantages, and even server security vulnerabilities.

Pack locking is one of the most effective measures against such attacks. Pack locking ensures that the content of .pack files can only be opened with a specific key. This prevents users from modifying the files or mixing them with different clients.

Implementation of VFS System
To properly implement the VFS system, certain adjustments must first be made on the client side. Usually, modifications are made on C++ based source codes. During this process, changes made on the client source (client src) activate the VFS system and secure the pack files.

Additionally, synchronization between the client and server must also be established. On the server side, auth and game servers should be configured to support a specific VFS version. This way, users attempting to connect with different VFS versions can be blocked.

VFS Management with Python and Py Root
Python language is frequently preferred in the development process of Metin2 private servers. Especially for managing pack files and creating the VFS system, Python scripts can be used. Scripts running under the py root directory ensure that .pack files are compiled and made compatible with the VFS system.

Py GUI and similar interfaces can make these operations much easier. Developers can manage VFS-related settings in a more user-friendly manner.

Conclusion
The VFS file system and pack locking are of great importance in Metin2 private servers both for gameplay experience and security. When correctly implemented, they provide a fair environment among users and significantly enhance server security. Understanding these systems in detail is a major advantage for Metin2 developers and enables the creation of advanced systems.
 

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

Benzer konular

Geri
Üst Alt