Oyunun yeni bi sürümünü bulursanız hocam bu kademeleri tek tek baştan mı yapmanız gerekecek yoksa aynı şeyleri tekrar yapmak yeterli oluyor mu ?Gameguard neymiş böyle... Themida bu kadar yormadı gerçekten. @Gareka hocam ilerleme için tebrik ederim. Themidanın 2.x sürümü var. O da, HW BP üzerinden Validation Bypass + Input Rigging yaparak geçiliyor. Önemli olan gerisinde. Gelişmeler olursa yazacağım.
Çok hakim değilim. Arkadaşım, efsaneler olmadan önceki sürüm dedi. 2014-2015 arası olması gerekir diye yorumladık. Oyunu bir açalım zaten öğreneceğiz.
Detaylar
Kim cevapladı?- Katılım
- 20 Aralık 2023
- Mesajlar
- 1.034
- Makaleler
- 20
- Çözümler
- 55
- Beğeniler
- 3.343
Ana logic aynıdır, GameGuard daha güçlüdür o kadar. Bu kadar uzun sürmez diye düşünmekteyim.Oyunun yeni bi sürümünü bulursanız hocam bu kademeleri tek tek baştan mı yapmanız gerekecek yoksa aynı şeyleri tekrar yapmak yeterli oluyor mu ?
Beklemedeyiz hocam gelişmeleri. Kolay gelsin.Ana logic aynıdır, GameGuard daha güçlüdür o kadar. Bu kadar uzun sürmez diye düşünmekteyim.
Gareka
Üyecik
- Katılım
- 19 Mayıs 2026
- Mesajlar
- 4
- Beğeniler
- 3
Ellerine Sağlık Hocam Öncelikle. Efsaneleri Koyarsan Oyun 1 Ay sonra yalan olur emeğin bişiye yaramaz. Nacizane Dost Tavsiyesi kesinlikle koyma derim. Goley bundan dolayı kaybetti. Server İşine Gelirsekte Kendi p2p serverini yapacaksın ama hocam bu seferde jp sistemi falan nasıl düşündün yada ayarlayacaksın? İşin bence bu kısmına gelince kendinide düşün derim. Emeğinin karşılığı olsunGameguard neymiş böyle... Themida bu kadar yormadı gerçekten. @Gareka hocam ilerleme için tebrik ederim. Themidanın 2.x sürümü var. O da, HW BP üzerinden Validation Bypass + Input Rigging yaparak geçiliyor. Önemli olan gerisinde. Gelişmeler olursa yazacağım.
Çok hakim değilim. Arkadaşım, efsaneler olmadan önceki sürüm dedi. 2014-2015 arası olması gerekir diye yorumladık. Oyunu bir açalım zaten öğreneceğiz.
UmU Tardy Pakiron
Gelişen
Merhaba,
Goley'i bilmeyen yoktur diye düşünüyorum. Bilmeyenler de kısa bir Google araması yaparak ulaşabilir. BGY isimli grupta bu oyun sürekli paylaşılıyor "flood" şeklinde benim de geçen aklıma geldi acaba ne yapabiliriz diye baktım. Tüm süreci adım adım anlatacağım çünkü her aşama kendi içinde ders niteliğinde.
Tam client'ı çıkardım
buradaki linkten setup dosyasını indirdim.
Engine stack: DirectX 9 + PhysX + Miles Sound System + nProtect GameGuard + MFC native UI. Tipik 2010-2014 Kore MMO stack'i. Yani teknoloji açısından eski ama taş gibi sağlam, modern Win11'de bile launcher'ı açabiliyor.
- Goley.exe (2.7 MB) > launcher
- BinaryTr\BinaryTr.bin (8.3 MB) > asıl game code (PE dosyası, sadece .bin uzantısı kamuflaj)
- BinaryTr\GameGuard\ > anti-cheat (nProtect GameGuard, eski Kore standardı)
- Data\ ve DataTr\ altında devasa VLH/VLD/VLPH/VLPD dosyaları (toplam yaklaşık 900 MB, hepsi şifreli)
- GoleyTR.ini > şifreli config dosyası
Network akışını yakaladım
Goley'i çalıştırıp pktmon ve canlı memory dump kombinasyonu ile launcher'ın ne yaptığını izledim. Çıkan tablo:
Patch sunucusu (HTTP, port 80):http://cdn.joygamedl.com/chagu/Real_Server_Patch/
URL path'inde
PatchInfo.bin?p=<unix_timestamp>> patch metadata- HashV2.VLL?p=<unix_timestamp> > hash verification listesi
- Goley.exe?p=<unix_timestamp> > self-update için exe karşılaştırması
- LauncherRestarter.exe?p=<unix_timestamp> > exe replace utility
/chagu/geçiyor. Korece orijinal ismin izi.cdn.joygamedl.com'un DNS'i ölü ama parent domainjoygamedl.comCloudflare'de hala duruyor.
Launcher arayüzü (HTTPS):https://joygame.com/launchers/cj/goley/
Game sunucusu (TCP):
- "cj" muhtemelen "Chagu Joy" kısaltması
- Sadece duyuru paneli + nav butonları (statik HTML, AJAX yok)
- Login formu burada değil, native MFC dialog'da yani (BinaryTr.bin içinde)
213.74.179.12:2270(login/auth) +213.74.179.12:20260(game/world)
- Bu IP'nin reverse DNS'i: host-213-74-179-12.superonline.net
- Yani Joygame Türkiye sunucusunu Superonline'da host etmiş
- Tabii ki şu an ölü (TCP timeout veriyor), 2018'den beri öyle
Sahte sunucu kurup launcher'ı kandırmaya çalıştım
hosts dosyasına127.0.0.1 cdn.joygamedl.comekleyip port 80'de Python ile basit bir HTTP server kurdum. Launcher gerçekten benim sunucuma istek attı, log'a şöyle düştü:
Kod:GET /chagu/Real_Server_Patch/PatchInfo.bin?p=1778976811 GET /chagu/Real_Server_Patch/HashV2.VLL?p=1778976811 GET /chagu/Real_Server_Patch/Goley.exe?p=1778976811 GET /chagu/Real_Server_Patch/LauncherRestarter.exe?p=1778976811
User-Agent olarak "Goley" yazıyor. Her seferinde anlık Unix timestamp gönderiyor. Cache-Control: no-cache.
Bu noktada GameGuard araya girdi. hosts dosyası değişikliğini anti-cheat olarak tespit ediyor, oyun açılır açılmaz sessizce kapanıyor.
Memory dump ile içerideki her şeyi açığa çıkardım
SeDebugPrivilege'i manuel enable edip admin shell'den MiniDumpWriteDump ile 240 MB'lık full memory dump aldım çalışan Goley process'inden. Bu dump göbeği içinde decrypted halde her şey var. Çıkardıklarım:
Dump'tan tek bir hata mesajının template'i bile çıktı: "Yama başarısız.\r\nOyunu yeniden çalıştırın.\r\nPatchInfo.bin?p=%d\r\ndosya indirme hatası. Kod (%d)"
- Tüm Goley URL'leri (38 unique)
- Tüm hostname'ler (12 unique: bill.joygame.com, cdn.joy.ac, promo.joygame.com vs.)
- Game server IP+port'ları
- 27 Türkçe UI string'i ("Yama başarısız", "ID/Şifre Girin", "Ana sayfa", "Üye Ol", "Stadyum", "Kart" vs.)
- Patch flow'unun tam haritası
- Tam HTTP request örneği (Host header, User-Agent, vs.)
Eski launcher HTML'ini Wayback Machine'de buldum.
15 KB'lık HTML. İçinde Goley'in eski launcher arayüzü tıpkı hatırladığımız gibi: ÜYE OL / JOYPARA / FORUM / SIRALAMA / GÜVENLİK / DESTEK / SSS butonları, "Duyurular" paneli ve sosyal medya linkleri.
Server iskeleti Go ile yazıldı (çalıştığını düşünüyorum)
Şu an çalışan halde:
Kod:goley-server/ ├── cmd/ │ ├── patch-server/main.go # Port 80 HTTP cdn.joygamedl.com taklit eder │ ├── launcher-web/main.go # Port 8080 joygame.com/launchers/cj/goley/ taklit eder │ └── login-server/main.go # Port 2270 + 20260 TCP packet logger ├── internal/common/ # Hexdump, logger ├── web/launcher/index.html # Wayback Machine'de bulunan launcher HTML └── scripts/ # hosts setup, restore, run-all
Bana göre en heyecanlı kısım: Anipark'ın packer'ını kırdım
İşte burada kafayı yedim. Hem Goley.exe hem BinaryTr.bin packed. Section isimleri rastgele (yehajuci,sidtlktc,wnumgecr,jfsgvjtb), IDA'da sadece 3 fonksiyon görünüyor, hiç string yok, import tablosu 2 fonksiyon (lstrcpy,InitCommonControls) yani gerçek game logic statik analizle okunamıyor.
İlk önce bilinen packer'ları denedim: UPX? Hayır. Themida? Hayır. VMProtect? Hayır. ASPack, ASProtect, WinLicense, FSG, PECompact, Petite, yodaCrypter? Hiçbiri değil. Anipark kendi packer'ını yazmış.
IDA Pro kullanarak ilk entry kısmına baktım:
Kod:start: call sub_197F00B int 3 ; debugger trap
Asıl işsub_197F00B'de. Onu decompile edince algoritma çıktı:
Kod:sub_197F046(target_addr, 4096, 0x5835B25F, 0x0D971CC0); int sub_197F046(uint32* ptr, uint size, uint xor_key, uint add_const) { for (uint i = size >> 2; i; --i) { *ptr ^= 0x5835B25F; // XOR *ptr++ += 0x0D971CC0; // ADD } }
Yani basit XOR + ADD döngüsü. 4-byte word'ler için. Key'ler sabit:XOR 0x5835B25F,ADD 0x0D971CC0.
Bu cipher'ı Python'da implement edip oyunun ilk 4096 byte'lık şifreli bölgesine uyguladım ve gerçek kod ortaya çıktı.
Stage 2 kodu şöyle görünüyor:
Kod:sub_18AC000: pusha jz loc_18AC072 ; fast path ; PE base finder (relocation desteği için) call $+5; pop eax ; klasik EIP alma trick'i and eax, 0FFFFF000h ; page align cmp [eax], 'MZ' ; MZ magic ara ... cmp [edx], 'PE' ; PE magic ara ; Stage 3'e atlama mov eax, 17B0014h mov ecx, offset unk_18AC222 call sub_18AC0CF ; <-- STAGE 3 DECRYPTOR ; Self-patching (kendi kodunu değiştiriyor) mov [eax+1], ecx mov byte ptr [eax], 0E9h ; JMP opcode yaz popa call sub_18AC0B2 ; <-- STAGE 4, muhtemelen OEP'ye JMP retn
Yani packer multi-stage. Birkaç katman var, her biri öbürünü açıyor. Stage 1 stage 2'yi açtı, stage 2 stage 3'ü çağırıyor, stage 3 stage 4'ü açacak, stage 4 muhtemelen OEP'ye JMP atacak.
Tahmin ettiğim üzere, 3-4 stage daha var, sonra OEP'ye ulaşırım. OEP'de 17 MB'lık asıl game code açık halde olacak. VLD/VLH dosyalarının decryption key'i, network packet handler'ları, login protocol falan hepsi orada.
Güncel Durum:
Biten:
Sırada:
- Recon (URL/IP/port/file format'lar tamamen haritalı)
- 240 MB memory dump (decrypted strings altın madeni)
- Patch flow tam haritalı
- Game server IP onaylı (213.74.179.12, Superonline'da, ölü)
- Launcher HTML kurtarıldı
- Go server iskeleti çalışıyor
- Packer cipher kırıldı, stage 2 deşifre edildi
- Tüm bulgular doküman halinde
Zor / Belirsiz:
- Stage 3 + stage 4 + OEP bulma
- VLD/VLH archive cipher (OEP'den sonra ulaşılabilir)
- Login packet protokolü (aynı şekilde)
- GameGuard bypass?
- Database schema (kullanıcı, kart, takım, sezon, lig tabloları)
- Match simülasyon engine'i (en zor kısım, oyunun ruhu)
Bu arada, Korece kaynaklarda "차구차구 프리서버" (Chagu Chagu private server) diye aradım hiçbir şey yok. Anipark community RE projesi yok. Magu Magu için bile özel bir RE çalışması bulamadım. Sebebi Korece kaynaklarda yazıldığı gibi lisanslı spor oyunları için özel sunucu kurmak sıkıntlı bi iştir çünkü oyuncu lisansları (futbolcu isimleri vs.) ek bir telif sorunu doğuruyor, bu da topluluğu caydırıyor.
- Kart havuzunu yeniden oluşturmak (orijinal verilerin VLD'den çıkması lazım)
- Eski oyuncuların karakter/kart sahipliklerini geri getirmek imkansız (Joygame'in DB'si ölü, kimsenin elinde yok)
- Lisanslı takım isimleri (Galatasaray, Real Madrid vs.) Jenerik isimler ya da takım rengine göre isim çözümleri lazım
International Soccer Game (ISG) diye bir community projesi Goley'den ilham alarak başlamış ama açık kaynak değil ve son durumu belirsiz. Yani bu projede yalnız ilerliyorum. Bu yüzden buraya yazıyorum.
TLDR;
Şunlardan birinde uzmansan ya da ilgileniyorsan çok yardımcı olursun:
Recon scriptleri, memory dump bulguları, Go server source'u, IDA analiz çıktıları, hepsini yakında bir GitHub repo'sunda public yapacağım. Şu an kod temizliği yapıyorum.
- x86 reverse engineering: IDA / Ghidra / x64dbg kullanmasını biliyorsan, packer stage'lerinin kalanını birlikte çözebiliriz. Tek başına yapabilirim ama 2 kişi 3-4 kat hızlı olur.
- Go backend: Server iskeleti hazır, üzerine login/lobby/match logic yazılacak.
- Eski Goley deneyimi: Kart sistemi, oyuncu seviyeleri, maç akışı nasıldı tam hatırlayan biri lazım dökümantasyon için. Wiki çıkarsak içeriği o belirler.
- Web tarafı: Launcher UI'yı modernize etmek eski HTML duruyor ama estetik olması açısından güncellenebilir.
- VM uzmanı: Temiz Win10 VM'de GameGuard bypass deneyebilecek biri, server testleri için kritik.
Sorularınızı, önerilerinizi bekliyorum. Özellikle eski Goley oyuncularından "şu özelliği unutma" tarzı katkılar çok iyi olur.
Teşekkür ederim.
Yasal taraf: Bu proje kapanmış bir oyunu hayata döndürme amaçlı, hiçbir ticari kullanım planım yok. Joygame ve Netmarble haklarına saygı duyuyorum, eğer resmi bir itiraz gelirse projeyi tamamiyle kapatırım. Yapıyor olduğum şey "abandonware preservation" kategorisinde server emulation, RetroReversing gibi yıllardır var olan topluluk projeleriyle aynı çizgide. Lisanslı takım isimleri/futbolcu isimleri için jenerik karşılıklar kullanılacak.
Elinize sağlık hocam.
- Katılım
- 22 Aralık 2023
- Mesajlar
- 3.777
- Makaleler
- 10
- Çözümler
- 33
- Beğeniler
- 4.417
Maksimum 10. seviye kartların olduğu güncelleme olmalı kesinlikle. O sarı kartlar gelmeden önce çok iyiydi. Kadroyu zar zor kırmızı kart (7-8) ile doldururduk, bir de uzman yani morları (9) koyardık 1-2 tane. Çok nadir 10 numara gökkuşağı-beyaz kart görürdük.Gameguard neymiş böyle... Themida bu kadar yormadı gerçekten. @Gareka hocam ilerleme için tebrik ederim. Themidanın 2.x sürümü var. O da, HW BP üzerinden Validation Bypass + Input Rigging yaparak geçiliyor. Önemli olan gerisinde. Gelişmeler olursa yazacağım.
Çok hakim değilim. Arkadaşım, efsaneler olmadan önceki sürüm dedi. 2014-2015 arası olması gerekir diye yorumladık. Oyunu bir açalım zaten öğreneceğiz.
iamnoobhas
Uzman
- Katılım
- 18 Şubat 2025
- Mesajlar
- 624
- Çözümler
- 2
- Beğeniler
- 253
Merhabalar, hevesini kırmak istemem ama Joygame Goley'in haklarını satışa çıkardı. Birisi alırsa sana telif hakkı nedeniyle onu açtırmayabilir. Anonim olarak açarsan tabi yakalayamazlar orası başka.
Yeni konular
-
-
-
-
-
-
30.000 TL'ye kadar kahve makinesi önerisi
- derindevlethikmet
- Mesaj: 1
-
Red ve linear Black Switch'lerden daha sessiz Switch'ler hangileridir?
- Koneko Toujou
- Mesaj: 12
-