- Mesaj
- 11.946
- Çözümler
- 567
- Beğeni
- 13.708
- Puan
- 5.915
- Ticaret Puanı
- 2
Merhaba arkadaşlar,
Hala bazı paylaşılan fileslerde p2p açığı bulunuyor. Bunu nasıl kapatacağınızı anlatacağım. Kendim kullandığım ve başarılı bi koruma sağladığından dolayı paylaşıyorum.
Bunu yapmak için Metin2 kaynak kodlarınızın olması gerekecek.
game/desc_p2p.cpp dosyasını açın ve importların bulunduğu kısımı bunu ekleyin. (Sizde varsa eklemeyin)
Aratın;
Altına ekleyiniz;
game/input.cpp açın ve aratın;
Altına ekleyiniz;
db/src/PeerBase.cpp açın ve aratın;
Altına ekleyiniz;
Not: Bunları yaptıktan sonra bu konuda anlatılanları uygulayınız. Metin2 PvP Sunucu Güvenliği İçin Config Dosyasına Eklememiz Gerekenler
Açığın kapanıp kapanmadığını test etmek için ekteki dosyayı indirip deneyebilirsiniz. İyi çalışmalar dilerim.
Kaynaklar
Bu fixi yazan kişinin web sitesi:
Hala bazı paylaşılan fileslerde p2p açığı bulunuyor. Bunu nasıl kapatacağınızı anlatacağım. Kendim kullandığım ve başarılı bi koruma sağladığından dolayı paylaşıyorum.
Bunu yapmak için Metin2 kaynak kodlarınızın olması gerekecek.
game/desc_p2p.cpp dosyasını açın ve importların bulunduğu kısımı bunu ekleyin. (Sizde varsa eklemeyin)
C++:
#include "config.h"
Aratın;
C++:
m_iMinInputBufferLen = 1024 * 1024;
Altına ekleyiniz;
C++:
if (strcmp(host, g_szPublicIP))
{
sys_log(0, "SYSTEM: new p2p connection from [%s] to [%s] fd: %d BLOCKED", host, g_szPublicIP, m_sock);
SetPhase(PHASE_CLOSE);
return true;
}
game/input.cpp açın ve aratın;
C++:
if (bHeader == HEADER_CG_TEXT)
{
Altına ekleyiniz;
C++:
if (IsEmptyAdminPage() || !IsAdminPage(inet_ntoa(d->GetAddr().sin_addr))) // block if adminpage is not set or if not admin
{
sys_log(0, "SOCKET_CMD: BLOCK FROM(%s)", d->GetHostName());
return -1;
}
db/src/PeerBase.cpp açın ve aratın;
C++:
if ((m_fd = socket_accept(fd_accept, &peer)) == INVALID_SOCKET)
{
Destroy();
return false;
}
Altına ekleyiniz;
C++:
// refuse if remote host != localhost (only the same machine must be able to connect in here)
std::string targetIP = inet_ntoa(peer.sin_addr);
if (targetIP.rfind("127.0.0.1", 0) && targetIP.rfind("192.168.", 0) && targetIP.rfind("10.", 0))
{
sys_log(0, "BLOCK CONNECTION FROM %s", inet_ntoa(peer.sin_addr));
Destroy();
return false;
}
Not: Bunları yaptıktan sonra bu konuda anlatılanları uygulayınız. Metin2 PvP Sunucu Güvenliği İçin Config Dosyasına Eklememiz Gerekenler
Açığın kapanıp kapanmadığını test etmek için ekteki dosyayı indirip deneyebilirsiniz. İyi çalışmalar dilerim.
Kaynaklar
Bu fixi yazan kişinin web sitesi:
Linkleri görebilmek için
giriş yap veya kayıt ol.
Dosya Eklentileri
Son düzenleme: