- Katılım
- 18 Kas 2013
- Konular
- 26
- Mesajlar
- 471
- Online süresi
- 29d 10h
- Reaksiyon Skoru
- 413
- Altın Konu
- 1
- TM Yaşı
- 12 Yıl 6 Ay 23 Gün
- Başarım Puanı
- 139
- MmoLira
- 1,329
- DevLira
- 9
ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!
son günlerde serverlere girip item dupelayıp serveri crashleyen arkadaştan kurtulmanız için basit fix
isteyen kullansın istemeyende şu bu yazmasın dönemeyecem öptüm
[CODE lang="cpp" title="input_main.cpp arat"]int CInputMain::Analyze(LPDESC d, BYTE bHeader, const char * c_pData)
{
LPCHARACTER ch;
if (!(ch = d->GetCharacter()))
{
sys_err("no character on desc");
d->SetPhase(PHASE_CLOSE);
return (0);
}
int iExtraLen = 0;
if (test_server && bHeader != HEADER_CG_MOVE)
sys_log(0, "CInputMain::Analyze() ==> Header [%d] ", bHeader);[/CODE]
[CODE lang="cpp" title="altına ekle"]if (ch->GetDesc()->GetPhase() != PHASE_GAME && ch->GetDesc()->GetPhase() != PHASE_DEAD)
{
sys_err("no character in game");
sys_log(0, "no character in game %u %u %u", ch->GetPlayerID(), ch->GetDesc()->GetPhase(), bHeader);
d->SetPhase(PHASE_CLOSE);
return (0);
}[/CODE]
[CODE lang="cpp" title="desc.h ara"]bool IsPhase(int phase) const { return m_iPhase == phase ? true : false; }[/CODE]
[CODE lang="clike" title="altına ekle"]int GetPhase() const { return m_iPhase; }[/CODE]
isteyen kullansın istemeyende şu bu yazmasın dönemeyecem öptüm
[CODE lang="cpp" title="input_main.cpp arat"]int CInputMain::Analyze(LPDESC d, BYTE bHeader, const char * c_pData)
{
LPCHARACTER ch;
if (!(ch = d->GetCharacter()))
{
sys_err("no character on desc");
d->SetPhase(PHASE_CLOSE);
return (0);
}
int iExtraLen = 0;
if (test_server && bHeader != HEADER_CG_MOVE)
sys_log(0, "CInputMain::Analyze() ==> Header [%d] ", bHeader);[/CODE]
[CODE lang="cpp" title="altına ekle"]if (ch->GetDesc()->GetPhase() != PHASE_GAME && ch->GetDesc()->GetPhase() != PHASE_DEAD)
{
sys_err("no character in game");
sys_log(0, "no character in game %u %u %u", ch->GetPlayerID(), ch->GetDesc()->GetPhase(), bHeader);
d->SetPhase(PHASE_CLOSE);
return (0);
}[/CODE]
[CODE lang="cpp" title="desc.h ara"]bool IsPhase(int phase) const { return m_iPhase == phase ? true : false; }[/CODE]
[CODE lang="clike" title="altına ekle"]int GetPhase() const { return m_iPhase; }[/CODE]
Log ;
Bazı crash örnek;
Bazı crash örnek;
C++:
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x0813869a in CItem::GetSize (this=0x4e0c7680) at item.h:46
46 item.h: No such file or directory.
[Current thread is 1 (LWP 101075)]
(gdb) backtrace
#0 0x0813869a in CItem::GetSize (this=0x4e0c7680) at item.h:46
#1 CInputMain::SafeboxCheckin (this=0x4e6a5d9c, ch=0x33418640,
c_pData=0x4d431d40 "F\027\a\a") at input_main.cpp:2074
#2 0x0813eaf3 in CInputMain::Analyze (this=0x4e6a5d9c, d=0x4e6a5d00,
bHeader=70 'F', c_pData=0x4d431d40 "F\027\a\a") at input_main.cpp:4013
#3 0x081288f5 in CInputProcessor::Process (iBytes=5,
r_iBytesProceed=@0xffff9d38: 0, c_pvOrig=0x4d431d40, lpDesc=0x4e6a5d00,
this=0x4e6a5d9c) at input.cpp:102
#4 CInputProcessor::Process (this=0x4e6a5d9c, lpDesc=0x4e6a5d00,
c_pvOrig=0x4d431d40, iBytes=5, r_iBytesProceed=@0xffff9d38: 0)
at input.cpp:62
#5 0x080fe52e in DESC::ProcessInput (this=0x4e6a5d00) at desc.cpp:313
#6 0x08219a65 in io_loop (fdw=0x2988f260) at main.cpp:1004
#7 0x08219cb1 in idle () at main.cpp:887
#8 idle () at main.cpp:856
#9 0x0806e1e5 in main (argc=<optimized out>, argv=<optimized out>)
at main.cpp:533
(gdb) bt full
#0 0x0813869a in CItem::GetSize (this=0x4e0c7680) at item.h:46
No locals.
#1 CInputMain::SafeboxCheckin (this=0x4e6a5d9c, ch=0x33418640, c_pData=0x4d431d40 "F\027\a\a") at input_main.cpp:2074
p = 0x4d431d40
pkSafebox = 0x4d852d00
pkItem = 0x4e0c7680
szHint = "\360\000\000\000\320\341\377\377\b\340\377(\024\234\377\377\277\a\366(\314\342\377\377\000\234\377\377O\276\036\000\003\000\000\000\b\340\377(\240\363\214e\210\225\360\n&\362\320O\003\000\000\000\320\037\233\b\201h<\000 \234\377\377+\016{\aY;M(N\000\000\000\320\037\233\b\b\340\377(<\234\377\377\022\a\366(\001\000\000\000\224\063ka\206\235|\307}\252\a\225Y;M(x\234\377\377\000\000\000\000\b\340\377("
#2 0x0813eaf3 in CInputMain::Analyze (this=0x4e6a5d9c, d=0x4e6a5d00, bHeader=70 'F', c_pData=0x4d431d40 "F\027\a\a") at input_main.cpp:4013
ch = 0x33418640
__FUNCTION__ = "Analyze"
iExtraLen = 0
#3 0x081288f5 in CInputProcessor::Process (iBytes=5, r_iBytesProceed=@0xffff9d38: 0, c_pvOrig=0x4d431d40, lpDesc=0x4e6a5d00, this=0x4e6a5d9c) at input.cpp:102
iExtraPacketSize = <optimized out>
bHeader = 70 'F'
c_pszName = 0x4a98cf1c "SafeboxCheckin"
c_pData = 0x4d431d40 "F\027\a\a"
bLastHeader = 0 '\000'
iLastPacketLen = 0
iPacketLen = 5
c_pData = <optimized out>
bLastHeader = <optimized out>
iLastPacketLen = <optimized out>
iPacketLen = <optimized out>
__FUNCTION__ = "Process"
bHeader = <optimized out>
c_pszName = <optimized out>
iExtraPacketSize = <optimized out>
#4 CInputProcessor::Process (this=0x4e6a5d9c, lpDesc=0x4e6a5d00, c_pvOrig=0x4d431d40, iBytes=5, r_iBytesProceed=@0xffff9d38: 0) at input.cpp:62
c_pData = 0x4d431d40 "F\027\a\a"
bLastHeader = 0 '\000'
iLastPacketLen = 0
iPacketLen = <optimized out>
__FUNCTION__ = "Process"
bHeader = <optimized out>
c_pszName = <optimized out>
iExtraPacketSize = <optimized out>
#5 0x080fe52e in DESC::ProcessInput (this=0x4e6a5d00) at desc.cpp:313
iBytesProceed = 0
bytes_read = 5
__FUNCTION__ = "ProcessInput"
#6 0x08219a65 in io_loop (fdw=0x2988f260) at main.cpp:1004
iRet = <optimized out>
d = 0x4e6a5d00
num_events = 118
event_idx = 103
__FUNCTION__ = "io_loop"
#7 0x08219cb1 in idle () at main.cpp:887
now = {tv_sec = 1634415508, tv_usec = 541315}
passed_pulses = <optimized out>
t = 948579
pta = {tv_sec = 1634415508, tv_usec = 23440}
process_time_count = 13
now = {tv_sec = <optimized out>, tv_usec = <optimized out>}
passed_pulses = <optimized out>
t = <optimized out>
#8 idle () at main.cpp:856
now = {tv_sec = <optimized out>, tv_usec = <optimized out>}
passed_pulses = <optimized out>
t = <optimized out>
pta = {tv_sec = 1634415508, tv_usec = 23440}
process_time_count = 13
--Type <RET> for more, q to quit, c to continue without paging--Quit
Son düzenleme:
En Çok Reaksiyon Alan Mesajlar
Paylaşım için teşekkürler baya bir gecikti bunun farkedilmesi ama geç olsun güç olmasın. Geriden gelmek hiç gelmemekten iyidir.
bool CInputProcessor : Process(LPDESC lpDesc
içerisinden düzeltmek desc bağlantısının şu an ki phase durumunu analiz yapanın phase türüyle karşılaştırıp fixlemek daha doğru olur bu şekilde bu yarım bir engel ve paketlerin ekstra kontrol ve güvenliği amaçlı ekstra birşeyler yazılabilir daha güvenli olabilir.
typedef struct command_safebox_checkin
{
uint8_t bHeader;
uint8_t bSafePos;
TItemPos ItemPos;
} TPacketCGSafeboxCheckin;
char szHint[128];
snprintf(szHint, sizeof(szHint), "%s %u", pkItem->GetName(), pkItem->GetCount());
LogManager::instance().ItemLog(ch, pkItem, "SAFEBOX PUT", szHint);
böyle bir yerden bu coreyi nasıl yediğini çok merak ediyorum hala şaşıyorum leak dan dolayı core yemişsin gibi duruyor envanter slotundan yang olarak item bulunması aşırı anormal bir durum. bu durum %99.9 leakı işaret eder vnum stununundaki değerler de leak olduğunu doğrular nitelikte ama senin paylaştığın şey gerekli ama bu coreyle alakası yok bilgin olsun detaylı src ni incelemelisin bir yerde kaçak var gibi duruyor.
1. resimdeki işaretlediğin yerlerdeki ve onların altındaki toplam 3 satırın vnum değerleri aynı ama isimler farklı leak olduğunun bir başka göstergesi.
GDB Sonucu üzerine;
Kayda değer görmüyorum ama yinede söyleyeyim forumda gdb diye konu olmasa harbiden ne olduğunu bilmeyecekmişsin, kankam orada dikkat etmen gereken "header" ne geliyor bir bak daha sonra fonksiyonlara bir bak neyi put edebiliyorsun. 128 char vermiş sence orada bir artık veri mümkün mü?
Bunun dışında kişisel fikrim;
Madem hatayı biliyordun neden paylaşmadın? Kaç gündür açılan büyük serverlerin onca yatırılmış miktarı olmasına rağmen hepsi açılış gününde itemciden battı niye paylaşmadın? Belkide yapan sendin bilemiyorum yapan sen değilsen bile göz yumdun çünkü yükselmek için birisinin batmasına göz yummayı normal bir davranış olarak görüyorsunuz.
Bunu paylaşıp veya paylaşmamak normalde benim umurumda olur mu? Açtığım projeler ortada buradan kimseyede ihtiyacım yok, kimsenin onayınada ihtiyacım yok. Sözde siz topluluk için birşeyler yapmaya çalışıyor görünüp ama bildiğiniz kritik tüm hataları saklayıp "salyalarınızı akıta akıta" el altı birbirinize dağıtıyorsunuz, sonra gelip biri planlarınızın dışında hareket edip paylaşınca nasıl saldıracağınızı şaşırıyorsunuz.
Sürekli olarak insanların iyiliğini düşünüyormuşsunuz gibi sorsak bir kanadınız eksik melekten ama aslında "hiçlikten" öteye gitmiyorsunuz, sırf tanımıyorsunuz diye insanların yaptığı şeyleri linçlediğinizi görmüyor muyum?
Lütfen kullanıcaksanız kullanın (ki adım gibi eminim bilmem ne korkusundan kullanacaksın buna yemin bile edebilirim ama ispatlayamam xd). Kullanmayacaksanızda sorun değil ben bu çözümü buradaki insanlar için paylaştım.
Buradaki insanlar belki son parasıyla server açacak hani bir kazanç umudu sonuçta hepimiz bu işe girerken bir umutla bir kazanç umudu ile giriyoruz. Hepimizin hayatında kaygıları var, geçinmek zorundayız paylaşmamın tek amacı insanların tek umudunu elinden almaya yeltenen bir aptalın bunu yapmasını engellemek. Yoksa ben zaten kazanıyorum, zaten projelerim tutuyor "banane" diyip geçmek inan bana çok kolay benim için fakat vicdanım elvermedi.
Arkadaşlar cevap veremiyorum veya geç veriyorum kusura bakmayın çünkü malum işlerim var tanıyanlar bilecektir taşınma mevzum var. Hepinizi tek tek etiketlemeye gerek var mı bilmiyorum ama hepinize yorumlarınız için teşekkür ederim, seviyom böyle commentleri muck
LoL kitlesinden daha kanser bir kitle metin2 developmentte varmış. Allah yardımcınız olsun.
Paylaşım için teşekkürler, eline sağlık.
kanka hiçbir zaman çalışma mantığına anlam veremiyorum ya@cBaraN
Hayır zaten vermişsinde bunu aratın diye millete
2 denetim için ekstra bir fonksiyon tanımına ne gerek vardı ki..
[CODE lang="cpp" title=".."] if (!ch->GetDesc()->IsPhase(PHASE_GAME) && !ch->GetDesc()->IsPhase(PHASE_DEAD)) {
d->SetPhase(PHASE_CLOSE);
return (0);
}[/CODE]
Dediğin yere şöyle yapsalar tamam işte
- Katılım
- 29 Kas 2020
- Konular
- 89
- Mesajlar
- 1,403
- Çözüm
- 6
- Online süresi
- 1mo 24d
- Reaksiyon Skoru
- 744
- Altın Konu
- 38
- Başarım Puanı
- 189
- MmoLira
- 4,637
- DevLira
- -12
Teşekkürler.
- Katılım
- 14 Ocak 2021
- Konular
- 11
- Mesajlar
- 482
- Çözüm
- 9
- Online süresi
- 6mo 10d
- Reaksiyon Skoru
- 403
- Altın Konu
- 0
- TM Yaşı
- 5 Yıl 4 Ay 24 Gün
- Başarım Puanı
- 130
- MmoLira
- 10,545
- DevLira
- 12
Paylaşım için teşekkürler baya bir gecikti bunun farkedilmesi ama geç olsun güç olmasın. Geriden gelmek hiç gelmemekten iyidir.son günlerde serverlere girip item dupelayıp serveri crashleyen arkadaştan kurtulmanız için basit fix
isteyen kullansın istemeyende şu bu yazmasın dönemeyecem öptüm
[CODE lang="cpp" title="input_main.cpp arat"]int CInputMain::Analyze(LPDESC d, BYTE bHeader, const char * c_pData)
{
LPCHARACTER ch;
if (!(ch = d->GetCharacter()))
{
sys_err("no character on desc");
d->SetPhase(PHASE_CLOSE);
return (0);
}
int iExtraLen = 0;
if (test_server && bHeader != HEADER_CG_MOVE)
sys_log(0, "CInputMain::Analyze() ==> Header [%d] ", bHeader);[/CODE]
[CODE lang="cpp" title="altına ekle"]if (ch->GetDesc()->GetPhase() != PHASE_GAME && ch->GetDesc()->GetPhase() != PHASE_DEAD)
{
sys_err("no character in game");
sys_log(0, "no character in game %u %u %u", ch->GetPlayerID(), ch->GetDesc()->GetPhase(), bHeader);
d->SetPhase(PHASE_CLOSE);
return (0);
}[/CODE]
[CODE lang="cpp" title="desc.h ara"]bool IsPhase(int phase) const { return m_iPhase == phase ? true : false; }[/CODE]
[CODE lang="clike" title="altına ekle"]int GetPhase() const { return m_iPhase; }[/CODE]
Log ;
bool CInputProcessor : Process(LPDESC lpDesc
içerisinden düzeltmek desc bağlantısının şu an ki phase durumunu analiz yapanın phase türüyle karşılaştırıp fixlemek daha doğru olur bu şekilde bu yarım bir engel ve paketlerin ekstra kontrol ve güvenliği amaçlı ekstra birşeyler yazılabilir daha güvenli olabilir.
Son düzenleme:
- Katılım
- 9 Nis 2016
- Konular
- 157
- Mesajlar
- 1,729
- Çözüm
- 59
- Online süresi
- 2mo 26d
- Reaksiyon Skoru
- 836
- Altın Konu
- 0
- TM Yaşı
- 10 Yıl 2 Ay
- Başarım Puanı
- 224
- MmoLira
- 4,315
- DevLira
- 51
teşekkürler beybilito 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 12
- Görüntüleme
- 575
- Cevaplar
- 9
- Görüntüleme
- 435
- Cevaplar
- 0
- Görüntüleme
- 271
- 5.00 yıldız(lar) 1 Değerlendirme
- Cevaplar
- 3
- Görüntüleme
- 351








