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

vSro Paylaşım [Joymax Ağ Protokolü] Sistem ve Altyapı Mesajları (0x0000 - 0x2FFF): Keepalive, Ping ve Gateway Doğrulaması

Cevaplar0
Görüntüleme8
Ticaret Puanı
0
Katılım
19 Ocak 2026
Mesajlar
277
Tepkime puanı
225
Puanları
0
Web sitesi
www.youtube.com
Discord
ayzekk.
Mevcut Bakiye
4605 ₺
[Joymax Ağ Protokolü] Sistem ve Altyapı Mesajları (0x0000 - 0x2FFF): Keepalive, Ping ve Gateway Doğrulaması

Silkroad Online ağ mimarisinde `0x0000 - 0x2FFF` aralığı, oyun içi mantıksal eylemlerden (savaş, hareket, envanter vb.) tamamen bağımsız olan çekirdek işletim ve altyapı katmanına tahsis edilmiştir. Bu aralıktaki paketler; soket canlılığının izlenmesi (heartbeat/keepalive), uçtan uca gecikme süresinin (latency/RTT) ölçülmesi, küresel oturum kimliğinin saptanması ve Gateway sunucusu üzerinden harici kimlik doğrulama API'lerinin tetiklenmesi gibi kritik altyapı işlevlerini üstlenir.

Bu monografide, tersine mühendislik (Reverse Engineering) verileriyle doğrulanmış `0x0FFC`, `0x0FFD`, `0x2000`, `0x2001`, `0x2002` ve `0x2113` opcode'larının ikili serileştirme düzeni ve binary kanıtları incelenmektedir.


1. Sistem Düzeyi Mesaj Taksonomisi

Sistem mesajları, istemci ile sunucu arasındaki TCP soketinin "hayatta" olup olmadığını denetleyen ve NAT/güvenlik duvarı zaman aşımlarını (timeout) önleyen en düşük seviyeli protokoldür.

OpcodeMesaj AdıYön (Direction)Payload BoyutuDoğrulama KaynağıBirincil İşlev
0x0FFCSYSTEM_KEEPALIVEİki Yönlü (Bidirectional)17 BaytClient RE (0x008A5230)Soket zaman damgası, gecikme ve sağlama toplamı takibi
0x0FFDSYSTEM_PINGİki Yönlü (Keepalive)0 Bayt (Gövdesiz)Client / Server RESaf kalp atışı (heartbeat); soket zaman aşımını engeller
0x2000LOGIN_AUTHClient -> ServerDeğişken (ASCII String)Server RE (GatewayServer)Kullanıcı adı ve parola ile Gateway kimlik doğrulama
0x2001GLOBAL_IDENTIFICATIONSistem / Çekirdek0 Bayt / BaşlıkServer REUç nokta servis tanıtımı ve oturum el sıkışması
0x2002GLOBAL_PINGSistem / Çekirdek0 Bayt / SabitServer REServisler arası ve küresel ping sinyali
0x2113GLOBAL_XTRAP_IDENTIFICATIONSistem / GüvenlikDeğişken TokenServer REX-Trap anti-hile modülü kimlik ve oturum token doğrulaması


2. İkili Alan Düzenleri ve Protokol Alan Analizleri

### A. Opcode 0x0FFC — SYSTEM_KEEPALIVE (17 Bayt)
`sro_client.exe` binary'sinde `0x008A5230` sanal adresindeki handler tarafından ayrıştırılır. Toplam 17 baytlık sabit bir bellek yerleşimine sahiptir:

1. `dwTimestamp` (uint32_t, 4B): Paketin istemci veya sunucu tarafından üretildiği milisaniye cinsinden yerel sistem zamanı (`GetTickCount()`).
2. `byFlag` (uint8_t, 1B): Paket durumu bayrağı (0x00: Normal, 0x01: Senkronizasyon talebi).
3. `dwSequence` (uint32_t, 4B): Artan sıra numarası; aradaki paket kayıplarını ve sıra bozulmalarını tespit etmek için kullanılır.
4. `dwLatency` (uint32_t, 4B): Son ölçülen gidiş-dönüş süresi (Round-Trip Time / RTT, milisaniye).
5. `dwChecksum` (uint32_t, 4B): Başlık ve gövde bütünlüğünü denetleyen hafif matematiksel sağlama değeri.

### B. Opcode 0x0FFD — SYSTEM_PING (0 Bayt)
Bu paket, Joymax protokolünün en hafif mesajıdır. `sro_client.exe` içerisinde `0x00888DA0` adresindeki handler fonksiyonu tarafından karşılanır.

Kapsamlı Binary Taraması Kanıtı:
SR_GameServer.exe, GatewayServer.exe, AgentServer.exe ve ShardManager.exe binary'lerinde yapılan derinlemesine araştırmada `PUSH 0x0FFD` buyruğu aranmış ve hiçbir sunucu binary'sinde gövde okuma (`ReadField`) veya yazma çağrısına rastlanmamıştır. Bu durum, paketin 0 baytlık boş yük (zero-payload) taşıdığını kesinleştirmiştir. Alındığında istemci hata ayıklama konsoluna `SMSG[0x%04X] %02d:%02d:%02d` format string'i ile log düşer.

### C. Opcode 0x2000 — LOGIN_AUTH (Gateway Kimlik Doğrulama)
GatewayServer.exe üzerinde `0x00414a90` fonksiyonunda işlenir. Kullanıcıdan alınan kimlik bilgilerini (kullanıcı adı ve parola) ayrıştırarak harici kimlik doğrulama sunucusuna iletir.


3. GatewayServer Binary İncelemesi ve Kod Kanıtları

Bu gizli bloğun içeriği yalnızca şu üyeler tarafından görülebilir. Bu İçerik Premium Üyelere Özeldir. Engelsiz Tüm Gizli İçerikleri Görmek İçin Premium Üyelik satın alabilirsiniz. Ücretli Üyelikler



4. Geliştirici ve Özel Sunucu Entegrasyon Notları

1. Ping / Keepalive Ayrımı: Özel bir proxy veya anti-cheat filtresi geliştirirken `0x0FFD` paketine asla sahte bir gövde eklenmemelidir. İstemci `0x00888DA0` fonksiyonunda herhangi bir `ReadField` çalıştırmadığı için gövdede kalan baytlar deseralizasyon sıra kaymasına (desync) yol açar.
2. Zaman Aşımı Süreleri: AgentServer ve GatewayServer, istemciden ardışık 3 periyot boyunca `0x0FFC` veya `0x0FFD` alamazsa soketi `WSAECONNRESET` ile sonlandırır (varsayılan periyot 30 saniyedir).
3. X-Trap Tanımlaması (0x2113): X-Trap modülü devreden çıkarılmış (XTrap bypass) vSRO istemcilerinde `0x2113` opcode'u ya sunucu tarafından yok sayılır ya da doğrudan boş yanıtla geçiştirilir.


5. Özet

`0x0000 - 0x2FFF` aralığındaki altyapı paketleri, Silkroad ağ iletişiminin omurgasıdır. Bu paketlerin doğru yönetilmesi, oyuncuların sebepsiz bağlantı kopmalarının (random DC) ve Gateway sunucusundaki kimlik doğrulama tıkanıklıklarının önüne geçilmesini sağlar.

🙏 Silkroad Geliştirici Camiasına Teşekkür ve Saygı

Bu kapsamlı teknik dokümantasyon, tersine mühendislik mimarisi ve protokol analizlerinin gün ışığına çıkmasında Silkroad ekosistemine yıllardır karşılıksız devasa emekler veren ve bu mirası ileriye taşımaya devam eden öncü geliştiricilerimize en içten teşekkürlerimizi sunarız:

⭐ DaxterSoul — Paket filtreleme, proxy mimarileri ve sunucu güvenliğindeki temel çalışmaları ve topluluğa kazandırdığı standartlar için,
⭐ florian0 — İstemci (Client) ve GameServer ikili (binary) tersine mühendisliği, hook ve assembly düzeyindeki rehber niteliğindeki araştırmaları için,
⭐ JellyBitz — Açık kaynak Silkroad araçları, paket analiz kütüphaneleri ve geliştirici ekosistemine sunduğu paha biçilmez açık kaynak yazılımlar için,
⭐ ferdoran — İstemci-sunucu protokol analizlerinin, opcode referanslarının ve teknik dokümantasyonun derlenip topluluğa kazandırılmasındaki büyük gayretleri için.

Silkroad geliştirici topluluğuna kattığınız değer, paylaştığınız bilgi birikimi ve sunduğunuz vizyon için sonsuz teşekkürler. İyi ki varsınız!
 

Konuyu görüntüleyenler

Yükleniyor...
Yükleniyor...
Şu anda sitemizde 18,010 Aktif Kullanıcı
Çevrimiçi üyeler
Konular 1,209
Mesajlar 4,051
Kullanıcılar 1,597
Son üye serkankacan
Geri
Üst