vSro Paylaşım NetGuard — Silkroad Online İçin Temiz C# Paket Filtresi (ECSRO & vSRO 1.88)

Cevaplar0
Görüntüleme43
Katılım
19 Ocak 2026
Mesajlar
119
Tepkime puanı
109
Puanları
0
Web sitesi
www.youtube.com
Discord
ayzekk.
Mevcut Bakiye
2425 ₺
NetGuard, Legend 1 (ECSRO, jSRO) dosyalarıyla uyumlu olacak şekilde tasarlanmış ve vSRO 1.88 dosyalarıyla da sorunsuz çalışması beklenen yeni, açık kaynaklı bir paket filtre altyapısıdır.

Neden NetGuard?
Hem sunucudan hem de istemciden (client) gelen paketleri işlemek için temiz ve yapılı bir yaklaşıma sahip paket filtresi oluşturmak amacıyla geliştirilmiştir. Bu sürüm temel hedefe ulaşmış olsa da final/tam sürüm değildir ve günlük güncellemeler almaya devam etmektedir. Proje, hem Windows hem de Linux ortamlarını destekleyecek şekilde .NET Framework'ten .NET 8.0'a taşınmıştır.

Önemli Bilgilendirme:
NetGuard'ın bu erken erişim sürümü, sunucu ve istemci arasındaki paketleri işlemek için temel bir altyapı sağlar. Özellik eksikliği ve exploit korumaları henüz tam tamamlanmadığı için canlı (live) sunucu ortamında kullanım için önerilmemektedir. (fc4a8f5 commit'i itibariyle Gateway ve Agent Server üzerindeki bazı exploit'lere karşı ilk korumalar eklenmiştir).

Neden NetGuard Kullanmalısınız?
- Açık Kaynak & Ücretsiz: NetGuard tamamen açık kaynaklıdır, sizi kapalı bir ekosisteme hapsetmez.
- Barındırma Kısıtlaması Yok: Korumayı kendi sunucunuzda barındırabilirsiniz; harici servislere bağımlılık yoktur.
- Sınırsız Oyuncu Desteği: Yapay oyuncu kısıtlaması veya limitleri bulunmaz.
- Gizli Ücret Yok: Sunucu boyutuna veya oyuncu sayısına göre ekstra ücret talep edilmez.
- Çapraz Platform (Cross-Platform): .NET 8.0 sayesinde hem Windows hem de Linux üzerinde yüksek performansla çalışır.
- Sürekli Güncelleme: Performans, güvenlik ve Silkroad Online uyumluluğu için aktif geliştirme devam etmektedir.
- Özel Özellikler & Kurulum Desteği: Sunucunuza özel geliştirme ve kurulum yardım imkanı sunulmaktadır.

Paket Yöneticisi Örnek Kodları (PacketManager Examples):

1) Framework/PacketHandlingResult.cs
C#:
using SilkroadSecurityAPI;

namespace Module.Framework
{
    public enum PacketResultType
    {
        None, // Do nothing, default
        Block, // Block further processing
        Disconnect, // Disconnect the client
        Ban, // Ban the client
        SkipSending, // Whether avoiding using _localSecurity.Send or _remoteSecurity.Send
        DoReceive
    }

    public class PacketHandlingResult
    {
        public PacketResultType ResultType { get; set; } = PacketResultType.None;
        public Packet ModifiedPacket { get; set; } = null!;
        public bool SendImmediately { get; set; } = false; // Whether Send(true) or Send(false)
    }
}

2) PacketManager/Gateway/Client/ClientPacketManager.cs
C#:
using Module.Engine.Classes;
using Module.Framework;
using Module.PacketManager.GatewayModule.Client.Handlers;
using SilkroadSecurityAPI;
using static Module.PacketManager.Gateway.Opcodes.Client;
using static Module.PacketManager.Gateway.Opcodes.Server;

namespace Module.PacketManager.GatewayModule.Client
{
    public class GatewayClientPacketManager
    {
        public static IPacketHandler GetHandler(Packet packet, SessionData client)
        {
            switch (packet.Opcode)
            {
                default:
                    return new Default();
            }
        }
    }
}

3) PacketManagerGateway/Client/Handlers/Default.cs
C#:
using System;
using Module.Engine.Classes;
using Module.Framework;
using Module.Services;
using SilkroadSecurityAPI;
using static Module.PacketManager.Gateway.Opcodes.Client;
using static Module.PacketManager.Gateway.Opcodes.Server;

namespace Module.PacketManager.GatewayModule.Client.Handlers
{
    public class Default : IPacketHandler
    {
        public PacketHandlingResult Handle(Packet packet, SessionData client)
        {
            PacketHandlingResult response = new PacketHandlingResult();
            response.ModifiedPacket = null!;
            Custom.WriteLine($"[C->S] [{packet.Opcode:X4}][{packet.GetBytes().Length} bytes]{(packet.Encrypted ? "[Encrypted]" : "")}{(packet.Massive ? "[Massive]" : "")}{Environment.NewLine}{Utility.HexDump(packet.GetBytes())}{Environment.NewLine}", ConsoleColor.Yellow);
            response.ResultType = PacketResultType.Block;
            return response;
        }
    }
}

İndirme ve Kaynak Kod:
GitHub Repository: https://github.com/GoofyNest/NetGuard

Gereksinimler:
- .NET 8.0 SDK yüklü olmalıdır.
- Client itemdata .txt dosyaları client_data klasörüne eklenmelidir.

Teşekkürler:
- DaxterSoul (SilkroadDocs)
- pushedx (SilkroadSecurityAPI)
- Chernobyl (Paket filtresi fikri)
- DuckSoup & BimBum1337 (Paket ayrıştırma yardımları)
 
Son düzenleme:

Konuyu şu anda görüntüleyenler

Yükleniyor...
Şu anda sitemizde 22 Aktif Kullanıcı
Çevrimiçi üyeler
Konular 764
Mesajlar 3,247
Kullanıcılar 1,286
Son üye OldMACRO
Geri
Üst