İçeriğe geç
Türkiye'nin SRO tanıtım & topluluk platformu

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

Cevaplar0
Görüntüleme313
Ticaret Puanı
0
Katılım
19 Ocak 2026
Mesajlar
241
Tepkime puanı
183
Puanları
0
Web sitesi
www.youtube.com
Discord
ayzekk.
Mevcut Bakiye
2850 ₺
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 görüntüleyenler

Yükleniyor...
Yükleniyor...
Şu anda sitemizde 23,595 Aktif Kullanıcı
Çevrimiçi üyeler
Konular 1,082
Mesajlar 3,782
Kullanıcılar 1,497
Son üye LuvionHQ 
Geri
Üst