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

vSro Paylaşım Silkroad Online İstemci İkili Analizi (sro_client.exe): PE Bölüm Anatomisi ve İçe Aktarım Tablosu (IAT)

Cevaplar0
Görüntüleme14
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 İkili Analizi (sro_client.exe): PE Bölüm Anatomisi ve İçe Aktarım Tablosu (IAT)

Silkroad Online istemcisinin ana çekirdeğini oluşturan **`sro_client.exe`** (PE32 x86, ~11.0 MB), oyun motorunun tüm 3D grafik işleme (Direct3D 9), fizik/çarpışma, varlık yaşam döngüsü, ağ soket iletişimi, arayüz (UI) ve kullanıcı eylem mantığını üzerinde toplayan devasa bir ikili yürütülebilir dosyadır.

Bu teknik monografta; resmi geliştirici test derlemesi olan `Silkroad_TestIn` üzerinden çıkarılan **PE bölüm yapısı (Section Headers)**, DLL içe aktarım tablosu (IAT), Joymax'ın dahili Visual SourceSafe (`vss-od`) C++ kaynak dosya yolları, **arayüz ve lonca/kale özellik sınıfları**, Windows yapılandırılmamış istisna filtresi (SEH / UnhandledExceptionFilter) ve harici eklenti (`SRO_Plugin.dll`) mimarisi akademik bir titizlikle incelenmektedir.

---

### 1. Taşınabilir Yürütülebilir (PE) Yapısı ve Bellek Bölümleri

`sro_client.exe`, Microsoft Visual C++ 2005 (v80 / MSVC 8.0) bağlayıcısı (Linker 8.0) ile derlenmiş standart bir Windows PE32 çalıştırılabilir dosyası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


---

### 2. İçe Aktarılan Dinamik Kütüphaneler (Import Address Table - IAT)

İstemci, işletim sistemi ve donanım katmanlarıyla haberleşmek için modüler bir DLL mimarisi kullanı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. Joymax Dahili Kaynak Kod İmzaları ve Derleme Varyantları

İstemci binary'sinin `.rdata` bölümünde yer alan assert ve hata ayıklama stringleri, Joymax'ın derleme sunucusundaki kaynak dosya dizin ağacını gün yüzüne çıkarmaktadı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


---

### 4. Oyun Özellik Sınıfları (Game Feature Classes)

İstemcinin arayüz ve sistem lojiği, C++ sınıfları ile katı bir nesne yönelimli yapıda organize edilmiştir:

#### 4.1 Lonca Sistemi (Guild System)
- `CGuildManager`: Lonca verilerinin bellek yöneticisi.
- `CIFGuildLevelUp` & `CIFGuildPointUp`: Lonca seviyesi ve GP bağış takibi.
- `CIFGuildWar` & `CIFRequestGuildWar`: Lonca savaş teklifi ve savaş sahası takibi.
- `CNIFAllianceGuild`: Lonca birlik (Union) ilişkileri.
- `CNIFHostileGuild`, `SHostileGuildInfo`: Düşman lonca savaş listesi ve kayıtları.

#### 4.2 Kale ve Kuşatma Sistemi (Fortress Siege)
- `CIFFortressBusiness`: Kale vergi ve ticaret yönetimi.
- `CIFFortressMakeItemWnd`: Kale demircisinde özel eşya ve canavar üretimi.
- `CIFFortressMap` & `CIFFortressMapFrame`: Kuşatma haritası ve kapı/kule canlılık durumu.
- `CIFTargetWindowFortressStructure`: Kale kapıları ve savunma kulelerinin hedef arayüzü.

#### 4.3 Simya, Açık Pazar ve Savaş Arenası
- `CIFAlchemyEnchantMagic` & `CNIFEnchantWnd`: Taş ve elixir basma penceresi.
- `CNIFOpenMarket` & `CIFOpenMarketAlramGuide`: Konsinye (Consignment) pazar sistemi.
- `CNIFBattleArenaGuildWnd` & `CNIFBattleArenaRuleWnd`: Battle Arena kayıt ve kural pencereleri.

---

### 5. Hata Ayıklama, Çökme Telemetrisi ve Günlük Kayıt Mimarisi

İstemci çöküşleri rastgele oluşmaz; Win32 SEH (Structured Exception Handling) filtresi ile yakalanı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


---

### 6. Eklenti (Plugin) Mimarisi ve Çoklu Çalıştırma Mutex Denetimi

İstemci ikilisinde harici dinamik kütüphanelerin çalışma zamanında yüklenmesine olanak tanıyan kancalar mevcuttur:
- **`SRO_Plugin.dll`:** Dinamik olarak aranan ve yüklenmeye çalışılan harici eklenti kütüphanesi.
- **`GIGame\TestGame-d.dll`:** Geliştirici oyun içi hata ayıklama eklentisi (`-d` soneki debug derlemesini belirtir).

#### Çoklu Çalıştırma (Clientless / Multi-Client) Engeli:
İstemci açılırken Windows Mutex nesnesi oluşturur. Eğer aynı Mutex sistemde mevcutsa:
```text
"Critical Error!! Mutex already created!!"
```
hatası verilir ve işlem derhal sonlandırılır. Çoklu istemci açma (Multi-Client) yamaları tam olarak bu Mutex kontrolünün `NOP` veya `JMP` ile atlatılması esasına dayanır.

---

### 7. Geliştiriciler İçin Tersine Mühendislik Standartları

1. **v80 ABI Dokunulmazlığı:** `sro_client.exe` ile etkileşime girecek DLL'ler mutlaka Visual Studio 2005 ABI uyumluluğunda derlenmeli; bellek tahsisatında (`malloc` / `new`) istemcinin kendi `IMemory` arayüzü ile uyumlu olunmalıdır.
2. **IAT Kancalama (Hooking):** Direct3D 9 veya Winsock kancalamalarında sanal bellek sayfalarının koruma bayrakları (`VirtualProtect` ile `PAGE_EXECUTE_READWRITE`) doğru ayarlanmalıdır.
3. **Mutex Yönetimi:** Özel istemci başlatıcıları geliştirilirken Joymax'ın Mutex anahtarı doğru analiz edilmeli ve oturum çakışmaları önlenmelidir.

🙏 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