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

vSro Paylaşım Silkroad Online İstemci ve Sunucu Mimarisi: Tersine Mühendislik Ana İndeksi ve Teknik Metrikler

Cevaplar0
Görüntüleme6
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 ₺
📖 Silkroad Online İstemci ve Sunucu Mimarisi: Tersine Mühendislik Ana İndeksi ve Teknik Metrikler

Silkroad Online (Joymax) istemci ikilisinin (`Silkroad_TestIn`) ve sunucu modüllerinin tersine mühendislik (reverse engineering) çalışmaları; oyun motorunun derleme kaynak yollarından (`D:\vss-od\Silkroad\Client\client\`), RTTI bellek tablolarına, 289 adet ağ paket işleyicisinden 12 farklı JMXV tescilli 3D varlık formatına kadar devasa bir mühendislik mirasını kapsar.

Bu teknik indeks konusu; forumumuzda parça parça yayımlanan **Akademik Silkroad Online İstemci ve Motor Mimarisi Monografları** serisinin merkezi bağlantı noktası, genel sistem sitemi ve teknik başvuru fihristidir.

---

### 1. Araştırma Kapsamı ve Analiz Metodolojisi

Analizler, Joymax'ın resmi dahili geliştirici ve test derlemesi olan `Silkroad_TestIn` çalıştırılabilir dosyası ve v80 (Visual Studio 2005) ABI uyumluluğundaki sunucu ikilileri üzerinde icra edilmiştir.

Statik analizde **Ghidra**, **IDA Pro**, **r2ghidra** ve **x64dbg** kullanılırken; 3D varlık ve format çözümlemelerinde **Blender 5.x API** entegrasyonlu `AyzeekMeshTOsro` ve açık kaynak eklenti ekosistemi temel alınmıştır.

---

### 2. Mimari Bölümler ve Konu Başlıkları Fihristi

Serimiz 5 ana teknik disiplin altında toplanmış 16 temel monograf ve onlarca sistemik alt başlıktan oluşmaktadır:

#### 2.1 Çekirdek Sistem Mimarisi ve İkili Analiz (Architecture)
1. **İstemci Çekirdek Mimarisi (`sro_client.exe` & `overview`):** Motorun RTTI hiyerarşisi, WinMain başlangıç akışı, bellek tahsisatı ve ana döngü (main loop).
2. **Güvenlik ve Bütünlük (`anticheat`):** X-Trap koruma katmanı, dinamik kod bütünlüğü denetimi, bellek koruma rutinleri ve şifreli yapılandırma imzaları.
3. **Başlatma ve İkili Yapılandırma (`client_startup`):** `silkroad.exe` (Launcher), `replacer.exe` (Updater) ve `silkerrsender.exe` (Minidump Crash Telemetry) ile `silkcfg.dat`, `SROptionSet.dat` ve `wndpos.dat` ikili bellek düzenleri.
4. **Motor Sınıf Ağacı (`class_hierarchy`):** RTTI tablolarından çıkarılan 899 sınıflık nesne yönelimli mimari ve sanal fonksiyon (vtable) tablosu.

#### 2.2 Varlık ve Dosya Formatları (File Formats & Assets)
5. **PK2 Arşiv Sistemi (`pk2_format`):** Blowfish 64-bit blok şifrelemesi, 20 girdilik blok yapısı, klasör hiyerarşisi ve `GFXFileManager.dll` API'si.
6. **JMXV Varlık Formatları Ailesi (`asset_formats`):** `JMXVBMS` (Mesh), `JMXVBSR` (Resource), `JMXVBSK` (Skeleton), `JMXVBAN` (Animation), `JMXVBMT` (Material), `JMXVNVM` (NavMesh), `DDJ` (Texture), `DOF`, `CPD`, `MFO` ve `IFO` formatlarının ikili bayt haritaları ve Blender içe/dışa aktarım mantığı.

#### 2.3 3D Rendering ve Sahne Boru Hattı (Rendering Pipeline)
7. **Karakter ve İskelet Çizimi (`character_rendering`):** Kemik hiyerarşisi (Bip01), tepe noktası ağırlıklandırma (Rigging - tepe başına sabit 2 weight), doku eşleme (1 UV/vertex) ve dikiş (seam) kopyalama kuralları.
8. **Arazi ve Navigasyon Çizimi (`terrain_rendering`):** 96x96 yükseklik haritası (Heightmap), LOD (Level of Detail) basamakları, NavMesh kenar bayrakları ve su katmanı render mimarisi.

#### 2.4 Ağ Protokolü ve Mesajlaşma (Network Protocol)
9. **Ağ Protokolü Çekirdeği (`network_protocol`):** 6 baytlık paket başlığı (`CPacket`), Handshake el sıkışma algoritması, Blowfish şifreleme anahtarı değişimi, sıralama (sequence) denetimi.
10. **Sunucu İkili ve İşleyici Analizi (`server_binary_analysis`):** GameServer paket dağıtım tablosu (Dispatch Table), düzeltilmiş opcodelar, `IGObj` API'si ve Shard SQL şeması.
11. **Opcode Fihristi ve Mesaj Yapıları (`messages/INDEX`):** 289 adet belgelenmiş işlem kodu (Opcode) ve 268'den fazla alan düzeyinde çözülmüş C++ veri yapısı.

#### 2.5 Oynanış ve Motor Sistemleri (Game Systems)
12. **Veri Tabloları Sözlüğü (`data_tables`):** 126 tablo, 156.114 satırlık metin veri tabanı, `_RefObjCommon` (58 sütun), `_RefObjChar` (81 sütun), `_RefObjItem` (105 sütun) ve bunların `characterdata` (105 sütun) / `itemdata` (161 sütun) izdüşümleri.
13. **Motor Sabitleri ve Enumlar (`enums_constants`):** C++ assert ifadeleri, RTTI sınıfları, durum etkisi maskeleri ve zaman senkronizasyonu.
14. **Özel Sistemler (`systems/*`):** Eşya Yapısı (Item Structure), Simya (Alchemy), COS/Petler, Kale Savaşı (Fortress Siege), Lonca (Guild) ve Meslek/Ticaret (Job/Trade).

---

### 3. Genel Proje Metrikleri ve Ölçülmüş İstatistikler

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. Blender ve 3D Modelleme Standartları Özeti

Geliştiricilerin 3D varlık üretimi ve içe/dışa aktarımında uyması gereken **Silkroad Sert Sınırları**:
- **Vertex Sınırı:** Mesh başına en fazla `65.535` tepe noktası (`uint16` yüz indeksi).
- **Kemik Sınırı:** Mesh başına en fazla `254` kemik (`uint8` kemik indeksi, `0xFF` rezerve).
- **Ağırlık Sınırı:** Tepe noktası başına **TAM OLARAK 2 ağırlık** (`uint8` kemik1, `uint8` kemik2, `uint16` weight1, `uint16` weight2 = 6 bayt).
- **UV Koordinat Sınırı:** Tepe noktası başına **1 UV** (Dikiş noktalarında tepe noktası kopyalanır).
- **Materyal Sınırı:** Mesh başına **1 Materyal** (Birden fazla materyal için çoklu `.bms` gereklidir).
- **Koordinat Dönüşümü:** SRO Dosyası `(x, z, y)` (Y yukarı) ➔ Blender `(x, y, z)` (Z yukarı).
- **İskelet Kök Düzeltmesi:** `Euler(-90°, 0°, 180°)` (Kendi tersi: $E^2 = I$).

---

### 5. Nasıl Takip Edilmeli?

Bu indeks konusu sürekli güncel tutulmakta olup, yeni yayımlanan her teknik analiz buraya entegre edilmektedir. Forumumuzdaki ilgili kategorilerden (`vSRO 3D Paylaşımları`, `vSRO Genel Paylaşımları`, `vSRO Prosedür Paylaşımları` ve `vSRO Üçüncü Parti Yazılımlar`) serinin tüm alt başlıklarına doğrudan ulaşabilirsiniz!

🙏 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,002 Aktif Kullanıcı
Çevrimiçi üyeler
Konular 1,209
Mesajlar 4,051
Kullanıcılar 1,597
Son üye serkankacan
Geri
Üst