xranzei 1
xranzei
quickxd 1
quickxd
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Scarlet 1
Scarlet
Hikaye Ekle

[C++, BSD]Metin2 CH Düşmesiyle Alakalı <game.core fixed>

  • Konuyu başlatan Konuyu başlatan SunRisee
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 5
  • Görüntüleme Görüntüleme 4K

HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!

Herkese Merhaba..

1- game taraflı olabilir.
2- sunucu taraflı olabilir.
3- serverside taraflı olabilir.


tabi bu 4-5 diye'de çıkabilir öncelikle ilk ch düştüğü zaman ne yapmamız gerek?


MySQL bootlog tablosunu açalım ch'nin düştüğü saat'e bakalım,baktıktan sonra

Syserr ve syslog'u açayım bunların içine girip en son yapılan işlem ne? eğer game taraflı ch düştüyse <shutdown> tarzında bir yazı olacaktır.


Game kaynak dosyasını yazan kişiler (YMİR) zaten güvenlik amacıyla "thecore_shutdown();" böyle bir fonksiyon oluşturmuş, yani siz mesela item_proto.sql'den bir itemi sildiniz ama bu ayritten mob_drop_item.txt'de var güvenlik amacıyla serverin çökmeme amacıyla "thecore_shutdown();" komudunu verdiriyor ve CH hiç açılmadan otomatik kapatıyor sistem.


Örnek fonksiyon ;

Kod:​
C++:
    if (decode_2bytes(data) != sizeof(TItemTable))    {

        sys_err("item table size error");

        thecore_shutdown();

        return;

    }
Bu tür taraflı ch kapanmalarında veya açılmadığı zaman hangi ch açılmıyorsa hemen oranın syserr ve syslogdosyalarına girin orada ne olduğu yazar.


CH ayritten saldırılardan dolayıda kapanabilir botnet saldırısı ddos attack gibi sürekli CH portuna paket gönderir ve o port iptal olur vefaf haline gelir :) Güzel yazılımsal bir firewall yazın CH portlarına 15 limit koyun ve 15 paket gönderdikten sonra karşı taraf bir daha paket gönderemesin.


Ve en büyük sorunumuz "game.core"

Game.core problemi birden bire ch'nin düşmesi ve bazen syserr-syslog hatta bootlog'a bile chnin düştüğünü yazmama problemidir.Aslında bu bir ch düşme sorunu değil direk o CH'nin çökmesi anlamına gelir, bu sorun herşeyden olabilir Game taraflı , quest taraflı , item_proto taraflı hatta hatırlarmısınız bilmem eski fileslerdeKafasız Savaşçı adlı bir boss mu slot mu artık neyse o vardı onu kesincede game.core veriyordu tabi o zaman syserr'e büyük ihtimal yazıyordur KILL:NPC kod vs diye ama 40K'ya geçmemle birlikte game.core veriyor ve hiçbir şekilde ne syserr ne syslog tutuyordu.


Ben kendi kendi game dosyamı (kendi dediğim mainline editlediğim dosyamı olacaktı :D ) FreeBSD 9.2'de compile ediyordum ama oyun sunucusu için yani serverimde FREEBSD 10.1 kullanıyordum ve game.core vermeye başladı bende syserr syslog göremeyince GDB ile game.core'yi debugger etmeye çalıştım.

Ama malesef FreeBSD 9.2'de compile ettiğim ve 10.1 kullandığım için debugger edemedim şu hatayı aldım;

Kod:
"/usr/game/cores/channel1/egegame.core" is not a core dump: File format is ambiguous
Farkettim ki hangi BSD versiyonunda compile ettiyseniz sadece onla debugger edebilirsiniz yani ben 9.2'ye geçiş yaptım.

Ve bundan sonrada ch düşmesi yaşamadım büyük ihtimal sunucu taraflıydı bir lib herhangibi bir versiyon bilmiyorum bu olay çok kapsamlı birşey ama eğer ki siz aynı Versiyonda compile edp çalıştırdığınız halde ch düşüyorsa yani game.core alıyorsanız.

FreeBSD'ye GDB yükleyin kurulum ;

Kod:​
[CODE lang="bash" title="Putty"]cd /usr/ports/devel/gdb/ && make install clean

pkg install devel/gdb[/CODE]

Yükleme işlemi bittikten sonra eğer game.core verirse şu kodlarla açaçağız;

Kod:​
[CODE lang="bash" title="Putty"]gdb game game.core

core game.core

bt

.[/CODE]

CH Düşmesine sebeb olacak belirli nedenler;

Kod:
HACK_DETECD
CHECK POINT
/WAR -777777777
/DICE -777777777
KAFASIZ SAVAŞÇI
 
Moderatör tarafında düzenlendi:
Herkese Merhaba..

1- game taraflı olabilir.
2- sunucu taraflı olabilir.
3- serverside taraflı olabilir.


tabi bu 4-5 diye'de çıkabilir öncelikle ilk ch düştüğü zaman ne yapmamız gerek?


MySQL bootlog tablosunu açalım ch'nin düştüğü saat'e bakalım,baktıktan sonra

Syserr ve syslog'u açayım bunların içine girip en son yapılan işlem ne? eğer game taraflı ch düştüyse <shutdown> tarzında bir yazı olacaktır.


Game kaynak dosyasını yazan kişiler (YMİR) zaten güvenlik amacıyla "thecore_shutdown();" böyle bir fonksiyon oluşturmuş, yani siz mesela item_proto.sql'den bir itemi sildiniz ama bu ayritten mob_drop_item.txt'de var güvenlik amacıyla serverin çökmeme amacıyla "thecore_shutdown();" komudunu verdiriyor ve CH hiç açılmadan otomatik kapatıyor sistem.


Örnek fonksiyon ;

Kod:
if (decode_2bytes(data) != sizeof(TItemTable)) {
sys_err("item table size error");
thecore_shutdown();
return;
}
Bu tür taraflı ch kapanmalarında veya açılmadığı zaman hangi ch açılmıyorsa hemen oranın syserr ve syslogdosyalarına girin orada ne olduğu yazar.


CH ayritten saldırılardan dolayıda kapanabilir botnet saldırısı ddos attack gibi sürekli CH portuna paket gönderir ve o port iptal olur vefaf haline gelir :) Güzel yazılımsal bir firewall yazın CH portlarına 15 limit koyun ve 15 paket gönderdikten sonra karşı taraf bir daha paket gönderemesin.


Ve en büyük sorunumuz "game.core"

Game.core problemi birden bire ch'nin düşmesi ve bazen syserr-syslog hatta bootlog'a bile chnin düştüğünü yazmama problemidir.Aslında bu bir ch düşme sorunu değil direk o CH'nin çökmesi anlamına gelir, bu sorun herşeyden olabilir Game taraflı , quest taraflı , item_proto taraflı hatta hatırlarmısınız bilmem eski fileslerde
Kafasız Savaşçı adlı bir boss mu slot mu artık neyse o vardı onu kesincede game.core veriyordu tabi o zaman syserr'e büyük ihtimal yazıyordur KILL:NPC kod vs diye ama 40K'ya geçmemle birlikte game.core veriyor ve hiçbir şekilde ne syserr ne syslog tutuyordu.


Ben kendi kendi game dosyamı (kendi dediğim mainline editlediğim dosyamı olacaktı :D ) FreeBSD 9.2'de compile ediyordum ama oyun sunucusu için yani serverimde FREEBSD 10.1 kullanıyordum ve game.core vermeye başladı bende syserr syslog göremeyince
GDB ile game.core'yi debugger etmeye çalıştım.

Ama malesef FreeBSD 9.2'de compile ettiğim ve 10.1 kullandığım için debugger edemedim şu hatayı aldım;

Kod:
"/usr/game/cores/channel1/egegame.core" is not a core dump: File format is ambiguous
Farkettim ki hangi BSD versiyonunda compile ettiyseniz sadece onla debugger edebilirsiniz yani ben 9.2'ye geçiş yaptım.

Ve bundan sonrada ch düşmesi yaşamadım büyük ihtimal sunucu taraflıydı bir lib herhangibi bir versiyon bilmiyorum bu olay çok kapsamlı birşey ama eğer ki siz aynı Versiyonda compile edp çalıştırdığınız halde ch düşüyorsa yani game.core alıyorsanız.

FreeBSD'ye GDB yükleyin kurulum ;

Kod:
cd /usr/ports/devel/gdb/ && make install clean
pkg install devel/gdb

Yükleme işlemi bittikten sonra eğer game.core verirse şu kodlarla açaçağız;

Kod:
gdb game game.core
core game.core
bt
.

CH Düşmesine sebeb olacak belirli nedenler;

Kod:
HACK_DETECD
CHECK POINT
/WAR -777777777
/DICE -777777777
KAFASIZ SAVAŞÇI
bari egeözdemir yazsaydın hiç değilse sonuna :s
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst