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

vSro Paylaşım Silkroad Online İkili Eşya Mimarisi (Item Structure): 36 Baytlık Sabit Bellek ve 64-Bit Maske

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 İkili Eşya Mimarisi (Item Structure): 36 Baytlık Sabit Bellek ve 64-Bit Maske

Silkroad Online protokolünde ve bellek yönetiminde; oyuncu envanteri (`0x3013`), yerdeki eşyalar (`0x3015`), pet çantası (`0x30C8`), depo (`0x3049`), oyuncu tezgahı ve eşya taşıma (`0xB034`) paketlerinin tamamında **tek bir standart polimorfik ikili alt-yapı (Shared Binary Sub-Structure)** koşturulur. Bir eşyanın kuşanılabilir bir kılıç mı, süreli bir avatar mı, evcil hayvan parşömeni mi yoksa yığınlanabilir bir iksir mi olduğu bu ortak yapının içindeki tip dallanmalarıyla belirlenir.

Bu teknik monografta; GameServer ikilisinden (`SR_GameServer_Andreas.exe`) ve ağ akışlarından çözümlenen **4 parçalı polimorfik eşya yapısı**, kiralık/süreli eşya öneki (Rentable Info), **64-bitlik stat varyans (Variance) tohumu**, mavi statlar, soketler, gelişmiş iksirler (Advanced Elixirs) ve simya taşı tutma olasılıkları akademik bir titizlikle incelenmektedir.

---

### 1. Paylaşılan İkili Eşya Yapısı (Shared Binary Item Structure) Genel Düzeni

Herhangi bir ağ paketinde veya bellek arabelleğinde bir eşya verisi başladığında, yapı istisnasız şu hiyerarşik sırayı takip eder:

```text
[ Kiralama / Süre Öneki (Rentable Info - 4 Bayt + Opsiyonel Zamanlar) ]

[ Eşya Çekirdeği (Item Core: RefItemID - 4 Bayt uint32_t) ]

├─► Kuşanılabilir Eşya (isEquipable: Plus, Variance u64, Dur, MagicOptions, Sockets, Elixirs)
├─► Yardımcı / Pet Parşömeni (isCoS: StateType, ModelID, PetName, Bitiş Zamanı)
└─► Genel / Sarf Malzemesi (isEtc: Quantity u16, [AssimilationProbability], [GachaParams])
```

---

### 2. Kiralama ve Süreli Eşya Öneki (Rentable Info Prefix)

Her eşya tanımı, ilk olarak eşyanın süreli (Rental/Limited) bir kullanım hakkına sahip olup olmadığını belirten bir bayrakla başlar:

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. Eşya Çekirdeği ve Polimorfik Tip Dallanması

Kiralama başlığının ardından 4 baytlık **`RefItemID` (`uint32_t`)** okunur. Bu ID, Shard veritabanındaki `_RefObjCommon.ID` değerine işaret eder ve motorun hangi alt gövdeyi ayrıştıracağını belirler:

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. Tam İkili Sözde Kod (Binary Parsing Algorithm)

Ayrıştırıcıların (Parser) bellekten veri çekerken koşturduğu tam C++ algoritması:

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. Geliştiriciler İçin Paket Ayrıştırma İlkeleri

1. **Akış Senkronizasyonu:** Eşya ayrıştırılırken `RentableType` doğru okunmazsa, sonraki tüm ofsetler 4 ila 16 bayt kayar; bu durum tüm envanter paketinin çöp veriye dönüşmesine ve istemcinin anında çökmesine yol açar.
2. **64-Bit Variance Maskesi:** Stat yüzdeleri okunurken 64-bitlik tamsayı (`uint64_t`) doğru maskelenmeli; veritabanındaki `_Items.Data` sütunu doğrudan bu 64-bitlik değere karşılık gelmektedir.
3. **Soket ve İksir Bayrakları:** `SocketFlag` (`1`) ve `ElixirFlag` (`2`) sabitleri doğrulanmadan döngü sayaçları okunmamalıdır.

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