Sosyal açıldı! Bir göz at → Hemen gir →

24XX 25xx Server Files 2026 Güncel

KY Üye
KAYIT
26 Ağu 2026
Mesajlar
15
Tepki puanı
27
Selamlar .Birkaç ciddi bug bulup Fixledim. Öyle rastgele indridim bir dosyadir. geliştirmek için baya sorunlari vardi fixledim yeni sorun bulursaniz direk konu altindan yazin fixlemeye devam ederim .test edecek cok fazla vaktim yok saygilarimla.

İçeresine kurulum talimati ekledim. yapamayan veya pus ayarlarina kadar hazir halde testlim de edebilirim özelden yazabilirisniz bunun için.


Son günlerde kaynakta debug yaparken üç şey bulduk, hepsi klasik "config hatası" değil, gerçek kod seviyesinde sorunlardı:

1) KOSocket'te uzaktan tetiklenebilen çökme (integer underflow)

shared/KOSocket.cpp → DecryptPacket() içinde şifreli paket işleme yolunda bir boyut kontrolü eksikti. Paket 4-7 bayt aralığında bir uzunlukla gelirse, kod bundan 8 çıkarıyor — uint16 olduğu için bu işlem taşıyor (underflow) ve boyut değişkeni ~65530 gibi anlamsız bir sayıya dönüşüyor. Hemen ardından o "boyut" kadar memcpy çalıştırılınca bellek sınırlarının çok dışına okuma yapılıyor, sonuç: anında access violation.

En zor kısmı buydu aslında: local/loopback testte bu hiç görünmüyor çünkü tüm paket tek recv() çağrısında geliyor. Gerçek internet bağlantısında TCP segmentasyonu yüzünden paket parçalı geldiğinde tetikleniyor. Bunu yakalamak için elle, byte-byte, gecikmeli TCP paketleri gönderen bir test scripti yazıp fragmentasyonu simüle ettik, ancak öyle reprodüklenebildi.

2) Debugger olmadan crash dump analizi

Sunucuda WinDbg/cdb kurulu değildi, internetten indirmeye de vakit yoktu. dbghelp.dll'i doğrudan P/Invoke ile çağırıp kendi sembol çözücümüzü yazdık — ham crash offset'ini PDB üzerinden gerçek dosya/satır numarasına çevirip bug'ı memcpy çağrısına kadar geriye izledik. Klasik "hatayı tahmin et" yöntemi değil, doğrudan kanıta dayalı debugging.

3) Launcher'da kasıtlı olarak gizlenmiş bir kilit mekanizması

Launcher, belirli bir IP'ye bağlanmaya çalışınca sahte bir hata mesajı ("Unknown data stream.") gösterip kapanıyordu — sanki ağ hatasıymış gibi. Kod tabanına inince bunun aslında bir IP whitelist kontrolü olduğunu, hata mesajının bilerek yanıltıcı yazıldığını gördük. Bulup düzelttik.


1788364468275.png

1788364532057.png
 
Moderatör tarafında düzenlendi:
KY Uzman Üye
Yardımsever
KAYIT
2 Ağu 2025
Mesajlar
396
Çözümler
4
Tepki puanı
509
Eline sağlık kral iş görür :)
 
KY Üye
KAYIT
26 Eyl 2025
Mesajlar
6
Tepki puanı
0
Selamlar .Birkaç ciddi bug bulup Fixledim. Öyle rastgele indridim bir dosyadir. geliştirmek için baya sorunlari vardi fixledim yeni sorun bulursaniz direk konu altindan yazin fixlemeye devam ederim .test edecek cok fazla vaktim yok saygilarimla.

İçeresine kurulum talimati ekledim. yapamayan veya pus ayarlarina kadar hazir halde testlim de edebilirim özelden yazabilirisniz bunun için.

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


Son günlerde kaynakta debug yaparken üç şey bulduk, hepsi klasik "config hatası" değil, gerçek kod seviyesinde sorunlardı:

1) KOSocket'te uzaktan tetiklenebilen çökme (integer underflow)

shared/KOSocket.cpp → DecryptPacket() içinde şifreli paket işleme yolunda bir boyut kontrolü eksikti. Paket 4-7 bayt aralığında bir uzunlukla gelirse, kod bundan 8 çıkarıyor — uint16 olduğu için bu işlem taşıyor (underflow) ve boyut değişkeni ~65530 gibi anlamsız bir sayıya dönüşüyor. Hemen ardından o "boyut" kadar memcpy çalıştırılınca bellek sınırlarının çok dışına okuma yapılıyor, sonuç: anında access violation.

En zor kısmı buydu aslında: local/loopback testte bu hiç görünmüyor çünkü tüm paket tek recv() çağrısında geliyor. Gerçek internet bağlantısında TCP segmentasyonu yüzünden paket parçalı geldiğinde tetikleniyor. Bunu yakalamak için elle, byte-byte, gecikmeli TCP paketleri gönderen bir test scripti yazıp fragmentasyonu simüle ettik, ancak öyle reprodüklenebildi.

2) Debugger olmadan crash dump analizi

Sunucuda WinDbg/cdb kurulu değildi, internetten indirmeye de vakit yoktu. dbghelp.dll'i doğrudan P/Invoke ile çağırıp kendi sembol çözücümüzü yazdık — ham crash offset'ini PDB üzerinden gerçek dosya/satır numarasına çevirip bug'ı memcpy çağrısına kadar geriye izledik. Klasik "hatayı tahmin et" yöntemi değil, doğrudan kanıta dayalı debugging.

3) Launcher'da kasıtlı olarak gizlenmiş bir kilit mekanizması

Launcher, belirli bir IP'ye bağlanmaya çalışınca sahte bir hata mesajı ("Unknown data stream.") gösterip kapanıyordu — sanki ağ hatasıymış gibi. Kod tabanına inince bunun aslında bir IP whitelist kontrolü olduğunu, hata mesajının bilerek yanıltıcı yazıldığını gördük. Bulup düzelttik.


Ekli dosyayı görüntüle 20180
Ekli dosyayı görüntüle 20181
nasıl indiricem serveri
 
KY Kıdemli Üye
KAYIT
31 Mar 2023
Mesajlar
598
Tepki puanı
47
Yaş
45
teşekkürler src side olsaydı daha güzel olucaktı fakat benim beklediğim 26xx şuanki usko yenede teşekkürler
 
KY Kıdemli Üye
KAYIT
26 Tem 2024
Mesajlar
205
Tepki puanı
28
Konum
Çin
Selamlar .Birkaç ciddi bug bulup Fixledim. Öyle rastgele indridim bir dosyadir. geliştirmek için baya sorunlari vardi fixledim yeni sorun bulursaniz direk konu altindan yazin fixlemeye devam ederim .test edecek cok fazla vaktim yok saygilarimla.

İçeresine kurulum talimati ekledim. yapamayan veya pus ayarlarina kadar hazir halde testlim de edebilirim özelden yazabilirisniz bunun için.

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


Son günlerde kaynakta debug yaparken üç şey bulduk, hepsi klasik "config hatası" değil, gerçek kod seviyesinde sorunlardı:

1) KOSocket'te uzaktan tetiklenebilen çökme (integer underflow)

shared/KOSocket.cpp → DecryptPacket() içinde şifreli paket işleme yolunda bir boyut kontrolü eksikti. Paket 4-7 bayt aralığında bir uzunlukla gelirse, kod bundan 8 çıkarıyor — uint16 olduğu için bu işlem taşıyor (underflow) ve boyut değişkeni ~65530 gibi anlamsız bir sayıya dönüşüyor. Hemen ardından o "boyut" kadar memcpy çalıştırılınca bellek sınırlarının çok dışına okuma yapılıyor, sonuç: anında access violation.

En zor kısmı buydu aslında: local/loopback testte bu hiç görünmüyor çünkü tüm paket tek recv() çağrısında geliyor. Gerçek internet bağlantısında TCP segmentasyonu yüzünden paket parçalı geldiğinde tetikleniyor. Bunu yakalamak için elle, byte-byte, gecikmeli TCP paketleri gönderen bir test scripti yazıp fragmentasyonu simüle ettik, ancak öyle reprodüklenebildi.

2) Debugger olmadan crash dump analizi

Sunucuda WinDbg/cdb kurulu değildi, internetten indirmeye de vakit yoktu. dbghelp.dll'i doğrudan P/Invoke ile çağırıp kendi sembol çözücümüzü yazdık — ham crash offset'ini PDB üzerinden gerçek dosya/satır numarasına çevirip bug'ı memcpy çağrısına kadar geriye izledik. Klasik "hatayı tahmin et" yöntemi değil, doğrudan kanıta dayalı debugging.

3) Launcher'da kasıtlı olarak gizlenmiş bir kilit mekanizması

Launcher, belirli bir IP'ye bağlanmaya çalışınca sahte bir hata mesajı ("Unknown data stream.") gösterip kapanıyordu — sanki ağ hatasıymış gibi. Kod tabanına inince bunun aslında bir IP whitelist kontrolü olduğunu, hata mesajının bilerek yanıltıcı yazıldığını gördük. Bulup düzelttik.


Ekli dosyayı görüntüle 20180
Ekli dosyayı görüntüle 20181
tesekkurler
 
Üst Alt