- 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 ₺
Bir oyun istemcisinin tersine mühendisliğinde (reverse engineering) en güvenilir ve tartışmasız veri kaynakları; derleyicinin kod içerisine yerleştirdiği **`assert()` makroları, çalışma zamanı hata ayıklama (debug) dize kütüphaneleri ve RTTI (Run-Time Type Information)** sembolleridir. Joymax mühendisleri Visual C++ derleyicisinde assert denetimlerini istemci binary'sinde (`sro_client.exe`) bıraktığı için, oyun motorunun dahili değişken adları, enum sabitleri, kaynak dosya yapısı ve iş mantığı matematiksel kesinlikle çözülebilmektedir.
Bu teknik monografta; Silkroad Online istemci ikilisinden çıkarılan **motor enum ve sabitleri, parti/meslek mantığı, arayüz sınırları, durum etkisi (abnormal state) maskeleri, 288 işleyicinin assert haritası ve RTTI ağ sınıf hiyerarşisi** akademik bir derinlikle ortaya konmaktadır.
---
### 1. Durum Bilgisi ve Canlılık Maskeleri (Vital Info Mask)
İstemci ile sunucu arasında varlıkların yaşam/güç güncellemeleri (`0xB045` vb. paketler) koşturulurken, bant genişliğinden tasarruf etmek amacıyla bit düzeyinde maskeleme (bitmasking) kullanılır.
#### 1.1 `byMask` Alanı ve Bit Denetimi
Motor düzeyinde varlığın MP değişimini ve anormal durum (buff/debuff) etkilerini izleyen assert kuralları şunlardır:
- `VITAL_INFO_MP`: Karakterin büyü puanı (MP) güncelleme bayrağı (`!(byMask & VITAL_INFO_MP)`).
- `VITAL_INFO_ABNORMAL`: Karakterin üzerindeki anormal durumların (zehirlenme, donma, yanma vb.) güncelleme bayrağı (`!(byMask & VITAL_INFO_ABNORMAL)`).
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
---
### 2. Parti ve Meslek (Job) Sistem Sabitleri
Parti yönetiminde üyelerin ayrılma sebepleri ve meslek dinamikleri doğrudan assert ve debug dizelerinde kayıtlıdır.
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
---
### 3. Envanter, Yetenek ve Eşya Sınır Değerleri
Motor belleğinde taşma (buffer overflow) ve bellek bozulmalarını önlemek için sabit sınırlar assert denetimlerine tabi tutulmuştur.
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. Ağ Protokolü ve Doğrulanmış C++ Assert Haritası
Ghidra ve IDA Pro ile 288 adet paket işleyicisi (packet handler) çözümlendiğinde, Joymax'ın C++ kaynak kod dosya isimleri ve kritik koşulları gün ışığına çıkmaktadır.
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
---
### 5. RTTI Ağ Sınıf Hiyerarşisi ve Kaynak Modülleri
Visual C++ RTTI tablolarından çıkarılan ağ katmanı, katı bir Nesne Yönelimli Programlama (OOP) soyutlaması sergiler.
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
---
### 6. Geliştiriciler ve Tersine Mühendisler İçin Kazanımlar
1. **Paket Enjeksiyonunda Assert Önceliği:** Özel istemci modülleri veya bot sistemleri geliştirilirken; sunucuya gönderilen `0x70A2` veya `0x7202` isteklerinde istemcinin `IsLearnedSkill` ya da `IsLearnedMastery` assert koşulları göz ardı edilirse istemci sessizce çöker (crash).
2. **Meslek Güvenliği:** `g_pMyPlayerObj->GetJobType()` denetimi, istemcinin hileli paketlerle meslek eylemlerini manipüle etmesini engelleyen yerel bir denetim noktasıdır.
3. **Zaman Eşitlemesi:** `0x3017` paketindeki `InitTimer` çağrısı, sunucu ile istemcinin koordinat hesaplamalarında ve yetenek animasyonlarında desync (desenkronizasyon) yaşamasını önleyen matematiksel temeldir.
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!



