ECSRO Filter/Guard Packet Registry Yönetimi Rehberi
Bu rehber, PvPSunucusu ECSRO Filter/Guard yazılımındaki Packet Registry menüsünü açıklamak için hazırlanmıştır. Packet Registry menüsü, opcode bazlı packet davranışlarını izlemek, belirli packetler için payload uzunluğu kontrolü yapmak, rate-limit politikası tanımlamak, LogOnly test kuralları oluşturmak ve özel durumlarda whitelist/blacklist mantığı kullanmak için tasarlanmıştır.
Packet Registry menüsü doğrudan packet akışına müdahale edebilir. Yanlış opcode, yanlış direction, hatalı payload limiti veya doğrudan Block/Blacklist kullanımı oyuncuların login, karakter seçimi, world giriş, chat, item kullanımı, teleport, stall, exchange veya skill işlemlerini bozabilir. Bu nedenle canlı sunucuda yeni kural eklerken ilk aşamada LogOnly kullanılmalı, kural davranışı loglardan doğrulanmadan Block veya Blacklist uygulanmamalıdır.
1. Packet Registry Menüsü Ne İşe Yarar?
Packet Registry, ECSRO Filter/Guard sisteminin packet seviyesinde politika tanımladığı yönetim ekranıdır. Burada her satır bir packet kuralı olarak düşünülür. Kuralda opcode, yön, maksimum gönderim hızı, minimum payload boyutu, maksimum payload boyutu, uygulanacak aksiyon, sanity aksiyonu, not ve aktif/pasif durumu bulunur.
Bu sistemin amacı oyuncuya zarar vermek veya normal oyun paketlerini rastgele engellemek değildir. Doğru kullanımda Packet Registry; şüpheli packet yoğunluğunu izlemek, belirli opcode davranışlarını kayıt altına almak, packet boyutu anormalliklerini yakalamak ve custom server/client yapılarında güvenli politika oluşturmak için kullanılır.
Packet Registry, özellikle şu durumlarda faydalıdır:
- Belirli packetlerin normalden fazla gönderilip gönderilmediğini izlemek.
- Chat, item kullanımı veya özel packetlerin payload boyutunu takip etmek.
- Yeni eklenen custom sistemlerin packet akışını canlıyı kesmeden gözlemlemek.
- Opcode bazlı güvenlik kuralını önce LogOnly olarak test etmek.
- Packet Registry ve Packet Exploit Guard arasında daha düzenli güvenlik politikası kurmak.
- Yanlış packet kuralı yüzünden oyunun kritik akışlarının kesilmesini önlemek için kontrollü test yapmak.
Packet Registry bir “önce izle, sonra karar ver” ekranı olarak kullanılmalıdır. Hazır örnekler de güvenli olması için LogOnly / monitor mantığıyla gelir. Doğrudan Block veya Blacklist kullanımı yalnızca opcode ve payload davranışı kendi EXE, client, filter ve server sürümünüzde doğrulandıktan sonra yapılmalıdır.
2. Packet Registry ile Packet Exploit Guard Arasındaki Fark
Packet Registry ve Packet Exploit Guard birbirine benzeyen ama aynı amaçla kullanılmayan iki sistemdir. Packet Registry daha çok genel opcode politikası, whitelist/blacklist, rate-limit ve payload izleme mantığı için kullanılır. Packet Exploit Guard ise belirli exploit şüphelerini, guard type mantığını, SQL/meta karakter kontrollerini, require character gibi özel güvenlik kurallarını daha hedefli şekilde yönetir.
| Sistem | Ana Görev | Ne Zaman Kullanılır? |
|---|---|---|
| Packet Registry | Opcode bazlı genel politika, rate limit, payload min/max ve LogOnly izleme kuralları tanımlar. | Bir packetin davranışını gözlemlemek, özel opcode politikası oluşturmak veya güvenli izleme yapmak için kullanılır. |
| Packet Exploit Guard | Exploit şüphesi taşıyan belirli packet davranışları için guard type tabanlı kontrol yapar. | PayloadMax, PayloadMin, PayloadRange, SqlMeta, RequireCharacter, BadString gibi daha özel güvenlik denetimleri için kullanılır. |
Pratikte ilk analiz için Packet Registry daha güvenli bir başlangıç noktasıdır. Çünkü LogOnly ile çalıştırıldığında packet akışını kesmeden sadece kayıt alabilir. Daha net bir exploit paterni tespit edildiğinde Packet Exploit Guard tarafında daha hedefli kural tanımlanabilir.
3. Registry Ayarları Bölümü
Packet Registry ekranının üst bölümünde Registry Ayarları alanı bulunur. Burada Packet Registry sisteminin ana aktif/pasif durumu ve yardımcı koruma modülleri yönetilir.
| Ayar | Ne İşe Yarar? | Kapalı Olursa Ne Olur? |
|---|---|---|
| Packet Registry aktif | Packet Registry sistemini aktif eder. Griddeki enabled kurallar runtime tarafından kullanılabilir hale gelir. | Gridde kayıt olsa bile Packet Registry politikaları uygulanmaz. LogOnly, rate-limit veya payload izleme kuralları devre dışı kalır. |
| Opcode Throttle aktif | Opcode bazlı aşırı hızlı packet gönderimlerini sınırlamak için kullanılan throttle korumasını aktif eder. | Packet spam, flood veya hızlı tekrar davranışlarına karşı rate/throttle koruması zayıflar. |
| Log Rate Limit aktif | Aynı olayın çok sık loglanmasını engeller. Saldırı veya spam durumunda log dosyasının aşırı büyümesini azaltır. | Aynı packet olayı kısa sürede çok fazla log üretebilir. Log dosyası büyür, performans ve analiz zorlaşabilir. |
- Packet Registry aktif olmalı.
- Opcode Throttle aktif olmalı.
- Log Rate Limit aktif olmalı.
- Yeni eklenen kural önce LogOnly olmalı.
- Block/Blacklist yalnızca doğrulanmış custom kurallar için kullanılmalı.
4. Notlar Bölümü Ne Anlatır?
Packet Registry ekranındaki notlar bölümü, bu sayfanın nasıl kullanılacağını özetleyen önemli uyarılar içerir. Bu notlarda özellikle ECSRO uyumluluk modunun güvenli izleme mantığıyla çalıştığı belirtilir.
- Hazır örnekler LogOnly / monitor olarak gelir: Hazır yüklenen örnekler doğrudan oyuncuyu kesmez, sadece izleme amacı taşır.
- Block / Blacklist dikkatli kullanılmalıdır: Sadece kendi EXE-packet uyumunuz doğrulandıysa kullanılmalıdır.
- LogOnly akışı kesmez: Karakter seçimi, world spawn veya oyun içi kritik akışlar LogOnly ile kesilmez.
- Grid kayıtları PS_Settings ve PS_PacketRegistry altyapısıyla çalışır: Ayarlar kaydedildiğinde runtime cache tarafından okunabilir hale gelir.
Bu notların amacı yöneticiyi korumaktır. Packet seviyesinde yapılan yanlış bir kural, normal bir menü ayarından çok daha ağır sonuç doğurabilir. Örneğin yanlış packet block kuralı oyuncuların oyuna girememesine, item kullanamamasına veya chat gönderememesine neden olabilir.
5. Packet Whitelist / Blacklist Registry Grid Alanları
Packet Registry ekranının ana bölümü Packet Whitelist / Blacklist Registry grididir. Bu gridde her satır ayrı bir packet kuralıdır. Bir satırın çalışması için hem Packet Registry aktif olmalı hem de satırdaki Enabled alanı açık olmalıdır.
| Alan | Açıklama | Dikkat Edilecek Nokta |
|---|---|---|
| Key | Kuralın sistem içindeki adıdır. Her kural için anlaşılır ve benzersiz bir isim verilmelidir. | Boş veya aynı isimli key kullanmak takip ve log analizini zorlaştırır. Örneğin Chat_7025_Size gibi açıklayıcı isim kullanılmalıdır. |
| OpcodeHex | Kuralın uygulanacağı opcode değeridir. Genellikle 0x7025 gibi hex formatında yazılır. | Yanlış opcode yazılırsa kural yanlış packete uygulanır veya hiç çalışmaz. 0x0000 özel/wildcard gibi davranabileceği için rastgele kullanılmamalıdır. |
| Direction | Kuralın hangi yöndeki packet için geçerli olacağını belirtir. Seçenekler arasında Both, Client ve Server bulunabilir. ECSRO runtime kullanımında client/agent yönü özellikle önemlidir. | Yanlış direction seçilirse kural beklediğiniz packet üzerinde çalışmayabilir. Kararsızsanız önce LogOnly ile test edin. |
| MaxPerSecond | İlgili packet için saniyede izin verilen maksimum tekrar sayısını belirtir. RateLimit veya throttle mantığında kullanılır. | Çok düşük değer normal oyuncu aksiyonunu kısıtlayabilir. Çok yüksek değer flood/spam korumasını zayıflatır. |
| MinPayloadBytes | Packet payload boyutunun minimum kaç byte olması gerektiğini belirtir. 0 ise minimum kontrol uygulanmaz. | Çok yüksek girilirse normal kısa paketler hatalı gibi algılanabilir. Önce gerçek packet boyutu loglardan öğrenilmelidir. |
| MaxPayloadBytes | Packet payload boyutunun maksimum kaç byte olabileceğini belirtir. 0 ise maksimum kontrol uygulanmaz. | Çok düşük değer normal packetleri kesebilir. Çok yüksek değer anormal payloadları yakalamayabilir. |
| Action | Kural eşleştiğinde uygulanacak ana davranışı belirler. LogOnly, Allow, Whitelist, Block, Blacklist, RateLimit gibi değerler kullanılabilir. | Yeni kuralda ilk tercih LogOnly olmalıdır. Block/Blacklist canlıda doğrudan kullanılmamalıdır. |
| SanityAction | Payload min/max gibi sanity kontrolü ihlal edildiğinde uygulanacak davranışı belirler. | LogOnly güvenli test için uygundur. Disconnect veya Block tarzı sert aksiyonlar doğrulama yapılmadan kullanılmamalıdır. |
| Note | Kuralın neden eklendiğini açıklayan not alanıdır. Log ve bakım sürecinde yöneticilere yardımcı olur. | Boş bırakılırsa ileride hangi kuralın neden yazıldığı unutulabilir. Kısa ve net açıklama girilmelidir. |
| Enabled | Satırın aktif olup olmadığını belirler. Kapalı satırlar runtime tarafından kullanılmaz. | Kural çalışmıyorsa önce Packet Registry aktif mi, sonra satır Enabled mı kontrol edilmelidir. |
6. Action Değerleri Ne Anlama Gelir?
Packet Registry satırlarında en kritik alanlardan biri Action değeridir. Çünkü bu alan kural eşleştiğinde sistemin ne yapacağını belirler. Action değeri yanlış seçilirse güvenli bir izleme kuralı, oyuncuyu oyundan düşüren veya packet akışını kesen sert bir kurala dönüşebilir.
| Action | Anlamı | Önerilen Kullanım |
|---|---|---|
| LogOnly | Packet akışını kesmeden olayı loglar. Oyuncunun işlemini engellemez. | Yeni kural testlerinde ilk tercih olmalıdır. Canlı sunucuda güvenli izleme için uygundur. |
| Allow | Packet için izin verme/akışı kesmeme davranışını ifade eder. | Belirli bir opcode için açık izin mantığı gerekiyorsa kullanılabilir. Yine de not alanı açıklayıcı olmalıdır. |
| Whitelist | Packetin güvenilir/izinli olarak ele alınmasını sağlar. | Sadece gerçekten doğrulanmış ve izin verilmesi gereken özel packetler için kullanılmalıdır. |
| RateLimit | Packetin çok sık gönderilmesini sınırlamak için kullanılır. | Spam veya flood riski olan ama tamamen engellenmemesi gereken packetlerde kullanılabilir. |
| Block | Eşleşen packetin akışını engeller. | Sadece test edilmiş, oyuncu akışını bozmadığı doğrulanmış özel kurallarda kullanılmalıdır. |
| Blacklist | Packetin yasaklı/kara liste davranışıyla ele alınmasını sağlar. | Çok dikkatli kullanılmalıdır. Yanlış blacklist login veya oyun içi sistemleri bozabilir. |
| Drop | Packetin düşürülmesi/kabul edilmemesi mantığında kullanılabilir. | Canlı kullanımdan önce test ortamında denenmelidir. |
| Disconnect | Uygulama katmanında bağlantıyı kesme gibi sert davranışlar için kullanılabilir. | Yanlış kullanımda oyuncuları gereksiz oyundan düşürebilir. Sadece net doğrulanmış güvenlik olaylarında düşünülmelidir. |
Packet Registry üzerinde yeni kural yazarken doğrudan Block, Blacklist, Drop veya Disconnect kullanmayın. Önce LogOnly ile gerçek oyuncu davranışını gözlemleyin. Loglarda normal oyuncuların da aynı kurala takıldığı görülüyorsa kural ya çok geniştir ya da payload/direction değeri yanlıştır.
7. SanityAction Ne İşe Yarar?
SanityAction, özellikle payload uzunluğu kontrolünde devreye giren ikinci aksiyon mantığıdır. Packet Registry satırında MinPayloadBytes veya MaxPayloadBytes tanımlanmışsa, packet bu sınırların dışına çıktığında SanityAction değeri dikkate alınabilir.
Örneğin bir packet için MaxPayloadBytes değeri 512 olarak tanımlandıysa ve gelen packet bu değerin üzerinde görünüyorsa sistem bunu sanity ihlali olarak loglayabilir veya tanımlanan aksiyona göre müdahale edebilir.
Güvenli kullanım için SanityAction alanında da başlangıçta LogOnly kullanılması önerilir. Çünkü bazı packetlerin payload boyutu client, locale, server yapısı, ek sistemler veya custom paketlere göre değişebilir.
- MinPayloadBytes ve MaxPayloadBytes değerleri gerçek packet davranışına göre belirlenmelidir.
- Hazır değerler her ECSRO client/server yapısında birebir aynı olmak zorunda değildir.
- Custom ClientLib, custom packet veya ek modül varsa payload boyutu değişebilir.
- Önce LogOnly ile gözlem yapılmalıdır.
- Sert aksiyonlar yalnızca uzun süre doğrulanmış kurallarda kullanılmalıdır.
8. Packet Registry Butonları
Packet Registry gridinin üstünde satır yönetimi için kullanılan butonlar bulunur. Bu butonlar kural ekleme, örnek kural yükleme, seçili satırı silme ve kayıt işlemlerini kolaylaştırır.
Yeni Satır
Yeni Satır butonu, Packet Registry gridine yeni bir kural satırı ekler. Yeni satır genellikle varsayılan bir Rule adı, 0x0000 opcode, Both direction, belirli bir MaxPerSecond değeri ve RateLimit action mantığıyla başlar. Bu değerler sadece başlangıç değeridir; canlı kullanım öncesinde mutlaka düzenlenmelidir.
Yeni satır ekledikten sonra şu alanları kontrol etmelisiniz:
- Key açıklayıcı mı?
- OpcodeHex doğru mu?
- Direction doğru mu?
- Action başlangıç için LogOnly mi?
- Payload min/max değerleri gerçekten biliniyor mu?
- Note alanında kural amacı yazıyor mu?
- Enabled durumu bilinçli olarak açık mı?
Örnekleri Yükle
Örnekleri Yükle butonu, Packet Registry gridinde hazır örnek satır yoksa güvenli örnekleri ekler. Bu örnekler canlı akışı kesmeyecek şekilde LogOnly / monitor mantığıyla hazırlanmıştır.
Hazır örnekler arasında şu tip izleme kuralları bulunabilir:
- Chat packet size monitor: Chat packetinin boyutunu izlemek için kullanılır.
- Inventory/item usage request monitor: Item kullanım isteği packetini izlemek için kullanılır.
Bu örneklerin amacı doğrudan packet engellemek değil, normal sunucu davranışını loglar üzerinden anlamaktır. Hazır örneği yükledikten sonra serverınızın gerçek packet akışıyla uyumlu olup olmadığını kontrol etmelisiniz.
Seçili Satırı Sil
Seçili Satırı Sil butonu, gridde seçili olan packet kuralını kaldırır. Yanlış yazılmış, artık kullanılmayan veya oyuncu akışını bozduğu tespit edilen kurallar bu butonla silinebilir.
Bir satırı silmeden önce hangi sorunu çözmek için eklenmiş olduğunu kontrol etmek gerekir. Özellikle eski saldırı dönemlerinde eklenmiş kuralları silmek güvenlik seviyesini düşürebilir.
Kaydet
Kaydet butonu, Packet Registry gridindeki kuralları kayıt sistemine yazar. Kayıt işlemi tamamlanmadan eklenen veya değiştirilen satırlar kalıcı olmayabilir.
Kaydetme sonrası sistem ayarları yerel yapılandırma ve Guard DB tarafına yazılmaya çalışılır. Guard DB üzerinde PS_PacketRegistry ve ilgili packet rule tabloları kurulu değilse SQL kayıtlarında sorun yaşanabilir. Bu nedenle Packet Registry kullanılmadan önce Database / Installer ekranından eksik tablolar tamamlanmalıdır.
9. Packet Registry Kayıtları Nerede Saklanır?
Packet Registry kuralları program ayar yapısı içinde tutulur ve Guard DB hazırsa SQL tarafına da yazılır. SQL tarafında bu sistem için PS_PacketRegistry tablosu kullanılır. Eski/legacy packet rule yapıları için PS_PacketRules tablosu da bulunabilir.
PS_PacketRegistry tablosunda genel olarak şu bilgiler saklanır:
- RuleKey
- OpcodeHex
- Opcode
- Direction
- Action
- MaxPerSecond
- MinPayloadBytes
- MaxPayloadBytes
- SanityAction
- Note
- Enabled
- Comment
- UpdatedAt
Bu tablo eksikse Packet Registry ayarları SQL'e düzgün yazılamayabilir. Program local config veya JSON fallback üzerinden çalışıyor gibi görünse bile yeniden başlatma veya SQL senkronizasyonu sonrasında kayıt farklılıkları oluşabilir.
PVPSUNCUSU_GUARD.dbo.PS_PacketRegistryGuard DB adınız farklıysa tablo kendi Guard DB adınız altında bulunmalıdır.
10. Güvenli Kural Oluşturma Sırası
Packet Registry üzerinde doğru çalışma sırası çok önemlidir. Rastgele block kuralı eklemek yerine önce izleme, sonra doğrulama, en son gerekiyorsa müdahale yaklaşımı kullanılmalıdır.
- Sorunu tanımlayın: Hangi davranışı izlemek veya sınırlamak istediğinizi netleştirin.
- Opcode bilgisini doğrulayın: Aynı opcode farklı client/server sürümlerinde farklı davranışlarla ilişkili olabilir.
- Yeni Satır ekleyin: Kural için açıklayıcı Key girin.
- Direction seçin: Genellikle client/agent yönü izlenir. Emin değilseniz önce LogOnly kullanın.
- Action değerini LogOnly yapın: İlk testte oyuncu akışını kesmeyin.
- Payload değerlerini 0 bırakın veya geniş tutun: Gerçek boyutu bilmeden dar limit koymayın.
- Note alanını doldurun: Kuralın neden eklendiğini yazın.
- Kaydet butonuna basın: Kuralın kalıcı olması için kayıt alın.
- Runtime logları takip edin: Normal oyuncuların da bu kurala takılıp takılmadığını kontrol edin.
- Gerekiyorsa payload limitlerini düzenleyin: Gerçek veriye göre min/max belirleyin.
- Yeterli testten sonra aksiyonu değiştirin: Sadece doğrulanmış kurallarda RateLimit, Block veya Blacklist düşünün.
1. Kuralı LogOnly ekle.
2. Canlı oyuncu akışını izle.
3. Normal oyuncular etkileniyor mu kontrol et.
4. Payload değerlerini gerçek loglara göre düzenle.
5. En az bir test sürecinden sonra gerekiyorsa RateLimit uygula.
6. Block/Blacklist sadece kesin doğrulanmış özel durumlarda kullan.11. ECSRO Uyumluluk Modu ve Hazır Örnekler
Packet Registry ekranındaki notlarda ECSRO uyumluluk modu özellikle belirtilir. Bunun nedeni, ECSRO client/server yapılarında opcode ve payload davranışlarının farklı source, client, exe ve locale paketlerine göre değişebilmesidir.
Hazır örneklerin LogOnly gelmesinin sebebi budur. Hazır kural doğrudan Block olarak gelseydi bazı serverlarda normal packet akışı kesilebilirdi. Bu nedenle sistem güvenli tarafta kalır ve hazır örnekleri izleme modunda sunar.
Özellikle şu akışlarda yanlış packet kuralı büyük sorun oluşturabilir:
- Login ve Gateway bağlantısı.
- Agent login ve karakter world giriş akışı.
- Karakter seçimi.
- World spawn ve object spawn paketleri.
- Chat ve global mesaj gönderimi.
- Item kullanımı.
- Exchange, stall ve party akışı.
- Teleport ve reverse scroll kullanımı.
- Skill, mastery, berserk ve action paketleri.
12. Runtime Loglarda Görülebilecek Kayıtlar
Packet Registry veya packet sanity kontrolleri çalıştığında runtime log üzerinde bazı kayıtlar görülebilir. Bu kayıtlar yöneticinin hangi opcode, hangi karakter, hangi sebep ve hangi action ile işlem gördüğünü anlamasına yardımcı olur.
| Log Türü | Ne Anlama Gelir? | Ne Yapılmalı? |
|---|---|---|
| packet registry log | Kural LogOnly olarak eşleşmiştir. Oyuncu akışı kesilmemiştir. | Bu kayıtlar analiz edilmelidir. Normal oyuncular sık takılıyorsa kural geniş veya yanlış olabilir. |
| packet registry block | Kural packet akışını engellemiştir. | Oyuncu şikayeti varsa bu kural ilk kontrol edilmelidir. Yanlışsa LogOnly veya pasif hale getirilmelidir. |
| min payload | Packet beklenen minimum payload boyutundan küçük gelmiştir. | Gerçek packet boyutu doğrulanmalı, min değeri çok yüksek mi kontrol edilmelidir. |
| max payload | Packet belirlenen maksimum payload boyutunu aşmıştır. | Custom packet veya normal uzun mesaj senaryosu var mı kontrol edilmelidir. |
| sanity | Payload sanity kontrolü devreye girmiştir. | SanityAction, min/max değerleri ve direction kontrol edilmelidir. |
| Log rate limited | Aynı olay çok sık tekrar ettiği için log yazımı sınırlandırılmış olabilir. | Bu normaldir. Saldırı/spam sırasında log dosyasının şişmesini engeller. |
13. Sık Yapılan Hatalar
Yeni kuralı doğrudan Block yapmak
En tehlikeli hata budur. Bir opcode gerçekten zararlı görünse bile normal client akışında da kullanılabilir. Doğrudan Block yapılırsa oyuncuların normal işlemleri bozulabilir. İlk test her zaman LogOnly yapılmalıdır.
OpcodeHex değerini yanlış yazmak
Opcode değeri yanlış yazılırsa kural ya hiç çalışmaz ya da yanlış packete uygulanır. Bu nedenle opcode değeri source, log, packet analiz çıktısı ve hedef ECSRO exe yapısı ile doğrulanmalıdır.
Payload limitini gerçek veriye bakmadan girmek
Her packetin payload boyutu sabit olmayabilir. Mesaj uzunluğu, client locale, server ayarı, custom sistem veya ek veri alanları payload boyutunu değiştirebilir. Gerçek log görmeden dar MinPayloadBytes veya MaxPayloadBytes vermek yanlış engellemelere neden olabilir.
Packet Registry aktif değilken kural beklemek
Gridde kural yazılı olsa bile Packet Registry aktif kapalıysa kurallar çalışmaz. Aynı şekilde satırdaki Enabled alanı kapalıysa sadece o satır devre dışıdır.
Log Rate Limit kapalıyken saldırı logu toplamak
Log Rate Limit kapalıysa saldırı veya spam sırasında aynı olay binlerce kez loglanabilir. Bu durum log dosyasını büyütür ve performansı olumsuz etkileyebilir. Canlı sunucuda açık tutulması önerilir.
Not alanını boş bırakmak
Kuralı bugün siz yazsanız bile birkaç hafta sonra neden eklendiğini hatırlamayabilirsiniz. Note alanına “hangi sorun için eklendi, hangi tarihte test edildi, hangi action neden seçildi” gibi kısa bilgi yazmak bakım sürecini kolaylaştırır.
14. Oyuncu Sorunlarında Packet Registry Nasıl Kontrol Edilir?
Oyuncu belirli bir işlemi yapamadığını söylüyorsa Packet Registry kuralları kontrol edilmelidir. Çünkü yanlış bir packet kuralı oyuncunun normal işlem paketini engelliyor olabilir.
| Oyuncu Şikayeti | Kontrol Edilecek Alan | Olası Sebep |
|---|---|---|
| Chat veya global mesaj gitmiyor. | Chat opcode kuralı, payload max, Action, SanityAction. | Chat payload limiti çok düşük veya kural Block yapılmış olabilir. |
| Item kullanamıyorum. | ItemUse opcode kuralı, Direction, MaxPayloadBytes, Action. | Item kullanım packetine yanlış limit veya block uygulanmış olabilir. |
| Karakter seçtikten sonra oyuna girmiyor. | Login/character/world girişle ilişkili packet kuralları. | Kritik giriş packeti yanlışlıkla blacklist/block edilmiş olabilir. |
| Teleport veya reverse çalışmıyor. | Teleport/reverse ile ilgili opcode kuralları, ayrıca Module Settings job/delay ayarları. | Packet Registry veya modül ayarı işlemi engelliyor olabilir. |
| Stall veya exchange açılmıyor. | Stall/exchange packet kuralları, payload limitleri, Action. | Packet kuralı veya Protection/Exploit modülü işlemi engelliyor olabilir. |
15. Destek Talebi Açmadan Önce Kontrol Listesi
- Packet Registry aktif mi?
- Opcode Throttle aktif mi?
- Log Rate Limit aktif mi?
- İlgili kural satırı Enabled mı?
- OpcodeHex doğru mu?
- Direction doğru seçildi mi?
- Action değeri LogOnly mi, yoksa Block/Blacklist mi?
- SanityAction LogOnly mi, yoksa sert bir aksiyon mu?
- MinPayloadBytes değeri gerçek packet boyutundan yüksek olabilir mi?
- MaxPayloadBytes değeri gerçek packet boyutundan düşük olabilir mi?
- MaxPerSecond değeri normal oyuncu kullanımına göre çok düşük olabilir mi?
- Note alanında kuralın neden eklendiği yazıyor mu?
- Runtime logda ilgili opcode için packet registry veya sanity logu var mı?
- Guard DB üzerinde PS_PacketRegistry tablosu kurulu mu?
- Kaydet butonuna basıldı mı?
- Database / Installer üzerinden Eksik Tabloları Tamamla çalıştırıldı mı?
- Yeni kural eklendikten sonra sorun başladıysa kural geçici olarak LogOnly veya Enabled=false yapılıp test edildi mi?
16. Performans ve Güvenlik Önerileri
- LogOnly kullanmadan Block yapmayın. Önce davranışı izlemek, sonra karar vermek en güvenli yöntemdir.
- Opcode Throttle ve Log Rate Limit açık kalmalıdır. Bu iki sistem spam ve log şişmesini azaltır.
- Kritik login/world packetlerinde çok dikkatli olun. Yanlış kural tüm oyuncuların oyuna girişini etkileyebilir.
- Payload limitlerini gerçek loglara göre belirleyin. Tahmini değerlerle canlı block yapılmamalıdır.
- Note alanını düzenli kullanın. Bakım ve destek sürecinde hangi kuralın ne için eklendiği bilinmelidir.
- Örnekleri Yükle butonunu güvenli başlangıç olarak kullanın. Hazır örnekler izleme amaçlıdır.
- Packet Registry ile Packet Exploit Guard kurallarını çakıştırmayın. Aynı opcode için farklı sistemlerde çelişkili aksiyon verilirse analiz zorlaşır.
- Canlı serverda kural değişikliğinden sonra runtime logları izleyin. Normal oyuncuların hatalı engellenip engellenmediği kontrol edilmelidir.
17. Sık Sorulan Sorular
Packet Registry kapalıyken griddeki kurallar çalışır mı?
Hayır. Gridde kural olsa bile Packet Registry aktif değilse bu kurallar runtime tarafından uygulanmaz. Ayrıca her kural satırında Enabled alanının da açık olması gerekir.
Yeni kural eklerken hangi Action seçilmeli?
İlk test için her zaman LogOnly seçilmelidir. LogOnly oyuncu akışını kesmez ve sadece kayıt alır. Kuralın doğru çalıştığı doğrulanmadan Block, Blacklist, Drop veya Disconnect kullanılmamalıdır.
Payload min/max değerlerini nasıl belirlemeliyim?
Gerçek packet logları ve test sonuçları incelenmeden dar limit verilmemelidir. İlk aşamada 0 bırakmak veya geniş değerler kullanmak daha güvenlidir. Daha sonra normal oyuncu davranışına göre min/max aralığı daraltılabilir.
Hazır örnekler oyuncuyu engeller mi?
Hazır örnekler LogOnly / monitor mantığıyla gelir. Amaç oyuncu akışını kesmek değil, packet davranışını izlemektir. Yine de her server yapısı farklı olabileceği için loglar kontrol edilmelidir.
Packet Registry ile Packet Exploit Guard aynı opcode için kullanılabilir mi?
Teknik olarak aynı opcode iki sistemde de tanımlanabilir; ancak dikkatli olunmalıdır. Aynı opcode için iki farklı yerde çelişkili aksiyon yazılırsa sorun analizi zorlaşır. Genellikle önce Packet Registry ile LogOnly izleme yapılır, sonra net exploit davranışı varsa Packet Exploit Guard tarafında özel kural oluşturulur.
Oyuncular bir işlem yapamıyor, Packet Registry sebep olabilir mi?
Evet. Yanlış opcode, yanlış payload limiti veya Block/Blacklist aksiyonu normal oyuncu işlemini engelleyebilir. Sorun yeni bir packet kuralı eklendikten sonra başladıysa ilgili satırı geçici olarak LogOnly veya Enabled=false yapıp test etmek gerekir.
Kaydet yaptım ama kural tekrar kayboluyor. Ne kontrol edilmeli?
Guard DB üzerindeki PS_PacketRegistry tablosu ve SQL bağlantısı kontrol edilmelidir. Database / Installer menüsünden Eksik Tabloları Tamamla çalıştırılmalı, ardından Packet Registry ekranında tekrar kaydetme yapılmalıdır.
Sonuç
ECSRO Filter/Guard yazılımındaki Packet Registry menüsü, packet seviyesinde izleme ve politika yönetimi için güçlü bir araçtır. Doğru kullanıldığında opcode bazlı davranışları takip etmeyi, payload anormalliklerini görmeyi, rate-limit uygulamayı ve özel güvenlik kurallarını kontrollü şekilde devreye almayı sağlar.
Ancak bu güç dikkatli kullanılmalıdır. Packet Registry üzerinde yapılan yanlış bir Block veya Blacklist kuralı oyuncu girişlerini, chat sistemini, item kullanımını, teleportu, exchange/stall akışını veya world girişini bozabilir. Bu nedenle güvenli kullanım sırası her zaman LogOnly ile izle → logları doğrula → gerekiyorsa sınırlı müdahale et şeklinde olmalıdır.
Canlı sunucuda Packet Registry, Opcode Throttle ve Log Rate Limit açık tutulmalı; fakat yeni kurallar önce izleme modunda denenmelidir. Database / Installer tarafında PS_PacketRegistry tablosunun kurulu olduğundan emin olunmalı, her değişiklikten sonra Kaydet yapılmalı ve runtime loglar dikkatle takip edilmelidir.
Bu makale PvPSunucusu için özel olarak hazırlanmıştır.