vSro Paylaşım Silkroad Online — Old Menu & Login System Client Hook Kaynak Kodları (f8lib)

Cevaplar3
Görüntüleme54
Katılım
19 Ocak 2026
Mesajlar
123
Tepkime puanı
115
Puanları
0
Web sitesi
www.youtube.com
Discord
ayzekk.
Mevcut Bakiye
2605 ₺
🔧 Silkroad Online — Old Menu & Login System Client Hook Kaynak Kodları (f8lib)

> Bu paylaşım, Silkroad Online istemcisinin (sro_client.exe / vSRO 1.188) çeşitli arayüz (UI) bileşenlerini runtime'da inline ASM hook'lar ve bellek yamaları (memory patch) ile değiştiren C++ header dosyalarını içerir. Tüm modüller SroPP framework'ü üzerine inşa edilmiştir ve DLL injection ile çalışır.

--------------------------------------------------------------------------------

📑 İçindekiler


--------------------------------------------------------------------------------

1️⃣ OldAlchemy.hpp — Simya Penceresi Hook'ları

🔍 Ne Yapıyor?
- Simya (Alchemy / Enchant) penceresinin kapatma butonuna tıklandığında gösterilen DDJ ikonunu özelleştirir.
- Kapatılan pencerenin CNIFEnchantWnd veya CNIFMiniConfirm olup olmadığını kontrol eder; eşleşme varsa özel alcm_windowclose.ddj görseli yüklenir.
- Alchemy slotlarının boş/kapalı durumundaki görselini alcm_slot_closed.ddj ile değiştirir (9 farklı adres yamanır).
- VirtualProtect ile bellek koruması geçici olarak PAGE_READWRITE yapılır, PUSH imm32 instruction'ı üzerinden string pointer değiştirilir.



--------------------------------------------------------------------------------

2️⃣ OldChat.hpp — Sohbet Penceresi Görünürlük Hook'u

🔍 Ne Yapıyor?
- sro_client.exe'nin sohbet penceresini oluşturduğu noktada (0x007AD3E4), pencerenin varsayılan görünürlük bayrağını 1 (görünür) olarak zorlar.
- Orijinal kodda mov byte ptr ds:[esi+0x48C], bl ile bl registerından gelen değer yazılır. Bu hook bl yerine sabit 1 yazar → pencere her zaman açık başlar.



--------------------------------------------------------------------------------

3️⃣ OldItemMall.hpp — Item Mall Pencere Remapleme & Buy All Kilidi

🔍 Ne Yapıyor?
1. Pencere ID Remapleme: 0x008B51F3 adresinde Item Mall arayüzünün GetIFWnd() çağrısını kancalar. Belirli bir pencere pointer'ı (0x110F80C + 0x36C) ile eşleştiğinde, parametre 0x32 (50) ise 0xA7 (167) olarak değiştirir. Bu, istemcinin farklı bir mall sekmesini/görünümünü göstermesini sağlar.
2. "Buy All" Buton Kilidi: 0x00797B97 adresinde "Buy All" butonuna basıldığında, satın alma işlemini engelleyip kullanıcıya bilgilendirme mesajı gösterir.
3. Fonksiyon Çağrı Yaması: 0x00652C87 adresinde bir CALL instruction'ının hedef offset'ini değiştirerek farklı bir fonksiyona yönlendirir.



--------------------------------------------------------------------------------

4️⃣ OldItemTooltip.hpp — Eşya Tooltip Geliştirmeleri

🔍 Ne Yapıyor?
Bu modül Silkroad istemcisinin eşya tooltip sistemini kapsamlı şekilde genişletir:
1. Rare Item İsim Renklendirmesi: ItemRareName veri tablosundan eşyanın nadir (rare) ismini ve ARGB rengini çeker. Tooltip yazı fonksiyonunu (0x00776D20) hook'layarak, "Seal" ile başlayan satırlarda rare ismi kendi rengiyle gösterir.
2. SOX (Seal of X) String Görüntüleme: Silah ve zırh tooltip'lerinde SOX string'ini doğru sırada yazdırır. 4 farklı adresteki orijinal çağrılar hook'lanır.
3. Character/Account Bound Bilgisi: can_trade == 0 olan eşyalar için "Character-bound" (kırmızı), can_borrow != 0 olanlar için "Account-bound" (kırmızı) etiketi eklenir.
4. Model Switcher Desteği: ItemModelSwitch tablosundan eşyanın model değiştirici olup olmadığı sorgulanır; varsa tooltip sonuna bilgi satırı eklenir.
5. Adv Elixir Metin Kaldırma: Config'de disable_adv_elixir_ aktifse, gelişmiş iksir bilgi metnini tooltip'ten kaldırır.



--------------------------------------------------------------------------------

5️⃣ OldLogin.hpp — Login & Karakter Seçim Ekranı Sahne Değişikliği

🔍 Ne Yapıyor?
Bu modül istemcinin login ve karakter seçim ekranının tüm 3D sahne geometrisini değiştirir:
1. Kamera Hareketi: asm_fn00D74B80 fonksiyonu, login ekranındaki kamera yörüngesinin tüm keyframe noktalarını (X, Y, Z koordinatları, rotasyon, zoom) yeniden tanımlar. Toplamda 19 float sabiti ile 7 farklı sahne pozisyonu (0xEC2DCC .. 0xEC2E44 bellek bloğu) üzerine yazılır.
2. Karakter Oluşturma Sahne Pozisyonları: asm_fn0085E900 fonksiyonu, karakter oluşturma ekranındaki karakter start/end pozisyonlarını, rotasyonu ve duruş açısını değiştirir. FPU stack operasyonlarıyla karakter arası mesafe hesaplanır.
3. Karakter Seçim Kamerası: charselect_cam_dist değişkeni ile kamera uzaklığı, ch_idol_x/z ve eu_idol_x/z ile CH/EU karakter modeli konumları ayarlanır.
4. Bölge Yaması: 0x0085F4FD adresinde 2 byte'lık region patch uygulanarak farklı bir login bölgesi aktif edilir.
5. NPC/İdol Pozisyonları: Login ekranındaki kertenkele NPC'si (lizard_x) ve bilinmeyen rotasyon (uk_rot) değerleri 3 farklı adreste yamanır.
6. Sadece CH Modu: only_ch = true parametresi ile EU karakter oluşturma devre dışı bırakılabilir.



--------------------------------------------------------------------------------

6️⃣ OldTargetWnd.hpp — Hedef Penceresi Canavar Gem & TID Tespiti

🔍 Ne Yapıyor?
1. Canavar Gem İkonu Takibi: DrawCICMonsterGem() fonksiyonu, hedef penceresinde gösterilen canavar gem (mücevher) ikonunun DDJ yolunu latest_used_gem buffer'ına kopyalar. Bu, son kullanılan gem ikonunun diğer modüller tarafından okunabilmesini sağlar.
2. TID Bazlı Canavar Tespiti: IsMonster() fonksiyonu, Type ID (TID) bitfield'larını kontrol ederek hedefin gerçek bir canavar olup olmadığını belirler.
3. Level Bilgisi Gizleme: Hedef penceresindeki level gösterimini boş string ile değiştirerek gizler.



--------------------------------------------------------------------------------

📋 Genel Teknik Notlar

 
Son düzenleme:
🔧 Silkroad Online — Old Menu & Login System Client Hook Kaynak Kodları (f8lib)

> Bu paylaşım, Silkroad Online istemcisinin (sro_client.exe / vSRO 1.188) çeşitli arayüz (UI) bileşenlerini runtime'da inline ASM hook'lar ve bellek yamaları (memory patch) ile değiştiren C++ header dosyalarını içerir. Tüm modüller SroPP framework'ü üzerine inşa edilmiştir ve DLL injection ile çalışır.

--------------------------------------------------------------------------------

📑 İçindekiler

*** Gizli metin: alıntı yapılamaz. ***


--------------------------------------------------------------------------------

1️⃣ OldAlchemy.hpp — Simya Penceresi Hook'ları

🔍 Ne Yapıyor?
- Simya (Alchemy / Enchant) penceresinin kapatma butonuna tıklandığında gösterilen DDJ ikonunu özelleştirir.
- Kapatılan pencerenin CNIFEnchantWnd veya CNIFMiniConfirm olup olmadığını kontrol eder; eşleşme varsa özel alcm_windowclose.ddj görseli yüklenir.
- Alchemy slotlarının boş/kapalı durumundaki görselini alcm_slot_closed.ddj ile değiştirir (9 farklı adres yamanır).
- VirtualProtect ile bellek koruması geçici olarak PAGE_READWRITE yapılır, PUSH imm32 instruction'ı üzerinden string pointer değiştirilir.

*** Gizli metin: alıntı yapılamaz. ***


--------------------------------------------------------------------------------

2️⃣ OldChat.hpp — Sohbet Penceresi Görünürlük Hook'u

🔍 Ne Yapıyor?
- sro_client.exe'nin sohbet penceresini oluşturduğu noktada (0x007AD3E4), pencerenin varsayılan görünürlük bayrağını 1 (görünür) olarak zorlar.
- Orijinal kodda mov byte ptr ds:[esi+0x48C], bl ile bl registerından gelen değer yazılır. Bu hook bl yerine sabit 1 yazar → pencere her zaman açık başlar.

*** Gizli metin: alıntı yapılamaz. ***


--------------------------------------------------------------------------------

3️⃣ OldItemMall.hpp — Item Mall Pencere Remapleme & Buy All Kilidi

🔍 Ne Yapıyor?
1. Pencere ID Remapleme: 0x008B51F3 adresinde Item Mall arayüzünün GetIFWnd() çağrısını kancalar. Belirli bir pencere pointer'ı (0x110F80C + 0x36C) ile eşleştiğinde, parametre 0x32 (50) ise 0xA7 (167) olarak değiştirir. Bu, istemcinin farklı bir mall sekmesini/görünümünü göstermesini sağlar.
2. "Buy All" Buton Kilidi: 0x00797B97 adresinde "Buy All" butonuna basıldığında, satın alma işlemini engelleyip kullanıcıya bilgilendirme mesajı gösterir.
3. Fonksiyon Çağrı Yaması: 0x00652C87 adresinde bir CALL instruction'ının hedef offset'ini değiştirerek farklı bir fonksiyona yönlendirir.

*** Gizli metin: alıntı yapılamaz. ***


--------------------------------------------------------------------------------

4️⃣ OldItemTooltip.hpp — Eşya Tooltip Geliştirmeleri

🔍 Ne Yapıyor?
Bu modül Silkroad istemcisinin eşya tooltip sistemini kapsamlı şekilde genişletir:
1. Rare Item İsim Renklendirmesi: ItemRareName veri tablosundan eşyanın nadir (rare) ismini ve ARGB rengini çeker. Tooltip yazı fonksiyonunu (0x00776D20) hook'layarak, "Seal" ile başlayan satırlarda rare ismi kendi rengiyle gösterir.
2. SOX (Seal of X) String Görüntüleme: Silah ve zırh tooltip'lerinde SOX string'ini doğru sırada yazdırır. 4 farklı adresteki orijinal çağrılar hook'lanır.
3. Character/Account Bound Bilgisi: can_trade == 0 olan eşyalar için "Character-bound" (kırmızı), can_borrow != 0 olanlar için "Account-bound" (kırmızı) etiketi eklenir.
4. Model Switcher Desteği: ItemModelSwitch tablosundan eşyanın model değiştirici olup olmadığı sorgulanır; varsa tooltip sonuna bilgi satırı eklenir.
5. Adv Elixir Metin Kaldırma: Config'de disable_adv_elixir_ aktifse, gelişmiş iksir bilgi metnini tooltip'ten kaldırır.

*** Gizli metin: alıntı yapılamaz. ***


--------------------------------------------------------------------------------

5️⃣ OldLogin.hpp — Login & Karakter Seçim Ekranı Sahne Değişikliği

🔍 Ne Yapıyor?
Bu modül istemcinin login ve karakter seçim ekranının tüm 3D sahne geometrisini değiştirir:
1. Kamera Hareketi: asm_fn00D74B80 fonksiyonu, login ekranındaki kamera yörüngesinin tüm keyframe noktalarını (X, Y, Z koordinatları, rotasyon, zoom) yeniden tanımlar. Toplamda 19 float sabiti ile 7 farklı sahne pozisyonu (0xEC2DCC .. 0xEC2E44 bellek bloğu) üzerine yazılır.
2. Karakter Oluşturma Sahne Pozisyonları: asm_fn0085E900 fonksiyonu, karakter oluşturma ekranındaki karakter start/end pozisyonlarını, rotasyonu ve duruş açısını değiştirir. FPU stack operasyonlarıyla karakter arası mesafe hesaplanır.
3. Karakter Seçim Kamerası: charselect_cam_dist değişkeni ile kamera uzaklığı, ch_idol_x/z ve eu_idol_x/z ile CH/EU karakter modeli konumları ayarlanır.
4. Bölge Yaması: 0x0085F4FD adresinde 2 byte'lık region patch uygulanarak farklı bir login bölgesi aktif edilir.
5. NPC/İdol Pozisyonları: Login ekranındaki kertenkele NPC'si (lizard_x) ve bilinmeyen rotasyon (uk_rot) değerleri 3 farklı adreste yamanır.
6. Sadece CH Modu: only_ch = true parametresi ile EU karakter oluşturma devre dışı bırakılabilir.

*** Gizli metin: alıntı yapılamaz. ***


--------------------------------------------------------------------------------

6️⃣ OldTargetWnd.hpp — Hedef Penceresi Canavar Gem & TID Tespiti

🔍 Ne Yapıyor?
1. Canavar Gem İkonu Takibi: DrawCICMonsterGem() fonksiyonu, hedef penceresinde gösterilen canavar gem (mücevher) ikonunun DDJ yolunu latest_used_gem buffer'ına kopyalar. Bu, son kullanılan gem ikonunun diğer modüller tarafından okunabilmesini sağlar.
2. TID Bazlı Canavar Tespiti: IsMonster() fonksiyonu, Type ID (TID) bitfield'larını kontrol ederek hedefin gerçek bir canavar olup olmadığını belirler.
3. Level Bilgisi Gizleme: Hedef penceresindeki level gösterimini boş string ile değiştirerek gizler.

*** Gizli metin: alıntı yapılamaz. ***


--------------------------------------------------------------------------------

📋 Genel Teknik Notlar

*** Gizli metin: alıntı yapılamaz. ***
tesekkurler
 

Konuyu şu anda görüntüleyenler

Yükleniyor...
Etiketler
Etiketler Etiketler
alchemy hook silkroad vsro
Şu anda sitemizde 51 Aktif Kullanıcı
Çevrimiçi üyeler
Konular 773
Mesajlar 3,282
Kullanıcılar 1,291
Son üye SEOFX 
Geri
Üst