- Mesaj
- 11.943
- Çözümler
- 567
- Beğeni
- 13.653
- Puan
- 5.915
- Ticaret Puanı
- 2
Merhaba arkadaşlar,
Bilmeyenler varsa Metin2 Sıfırdan Altyapı Server Files Hazırlama Rehberi hazırlıyorum. Bu rehberin bir parçası olan bu konumuzda HackShield'i kaldırmayı anlatacağım.
Srcs/Server altındaki libhachshield klasörünü tamamen siliniz.
Srcs/Server/game/src/Makefile dosyasını açın ve şunları silin;
Aynı dosyada CPPFILE karşısında şunu aratın silin;
game/src içerisindeki şu dosyalarını silin.
game/src/main.cpp dosyasını açın ve sırasıyla verdiğim şu kodları aratıp kaldırınız;
game/src/char.h dosyasını açın ve şunları kaldırınız;
game/src/char.cpp dosyasını açın ve şunları kaldırın;
game/src/config.h dosyasını açın ve şunları kaldırın;
game/src/config.cpp dosyasını açın ve şunları kaldırın;
game/src/desc.cpp dosyasını açın ve şunları kaldırınız;
game/src/input.cpp dosyasını açın ve şunları kaldırınız;
game/src/input_db.cpp dosyasını açın ve şunları kaldırınız;
game/src/input_login.cpp dosyasını açın ve şunları kaldırınız;
game/src/input_main.cpp dosyasını açın ve şunları kaldırınız;
game/src/log.h dosyasını açın ve şunları kaldırınız;
game/src/log.cpp dosyasını açın ve şunları kaldırınız;
game/src/packet_info.cpp dosyasını açın şunları kaldırın;
game/src/packet.h dosyasını açın ve şunları kaldırın;
Client source kaldırılacaklar için şu konuya bakınız: Metin2 Client Source HackShield Kaldırma
Bilmeyenler varsa Metin2 Sıfırdan Altyapı Server Files Hazırlama Rehberi hazırlıyorum. Bu rehberin bir parçası olan bu konumuzda HackShield'i kaldırmayı anlatacağım.
hackshield nedir?
Oyuncuların şüpheli aktivitelerini inceleyip bunu rapora döken bir eklentidir. Hileleri tespit etmek amacı ile kullanılıyor.Neden kaldırıyoruz?
Çünkü bu eklentiyi kullanamıyoruz. Bu yüzden durmasının bir amacı yok...Server Source Kaldırılacaklar
Kaldırmak için sırayla anlatacaklarımı uygulayınız.Srcs/Server altındaki libhachshield klasörünü tamamen siliniz.
Srcs/Server/game/src/Makefile dosyasını açın ve şunları silin;
Makefile:
INCDIR += -I../../libhackshield/include
LIBDIR += -L../../libhackshield/lib
LIBS += -lanticpxsvr
Aynı dosyada CPPFILE karşısında şunu aratın silin;
Makefile:
HackShield.cpp HackShield_Impl.cpp char_hackshield.cpp
game/src içerisindeki şu dosyalarını silin.
- HackShield.h
- HackShield.cpp
- HackShield_Impl.h
- HackShield_Impl.cpp
- char_hackshield.cpp
game/src/main.cpp dosyasını açın ve sırasıyla verdiğim şu kodları aratıp kaldırınız;
C++:
#include "HackShield.h"
C++:
CHackShieldManager HSManager;
C++:
//hackshield
if (isHackShieldEnable)
{
if (!HSManager.Initialize())
{
fprintf(stderr, "Failed To Initialize HS");
CleanUpForEarlyExit();
return 0;
}
}
C++:
if (!g_bAuthServer)
{
if (isHackShieldEnable)
{
sys_log(0, "<shutdown> Releasing HackShield manager...");
HSManager.Release();
}
}
game/src/char.h dosyasını açın ve şunları kaldırınız;
C++:
public:
void StartHackShieldCheckCycle(int seconds);
void StopHackShieldCheckCycle();
bool GetHackShieldCheckMode() const { return m_HackShieldCheckMode; }
void SetHackShieldCheckMode(bool m) { m_HackShieldCheckMode = m; }
LPEVENT m_HackShieldCheckEvent;
private:
bool m_HackShieldCheckMode;
game/src/char.cpp dosyasını açın ve şunları kaldırın;
C++:
#include "HackShield.h"
C++:
m_HackShieldCheckEvent = NULL;
m_HackShieldCheckMode = false;
C++:
if( IsPC() )
{
if (isHackShieldEnable)
{
CHackShieldManager::instance().DeleteClientHandle(GetPlayerID());
}
}
C++:
StopHackShieldCheckCycle();
game/src/config.h dosyasını açın ve şunları kaldırın;
C++:
extern bool isHackShieldEnable;
extern int HackShield_FirstCheckWaitTime;
extern int HackShield_CheckCycleTime;
game/src/config.cpp dosyasını açın ve şunları kaldırın;
C++:
bool isHackShieldEnable = false;
int HackShield_FirstCheckWaitTime = passes_per_sec * 30;
int HackShield_CheckCycleTime = passes_per_sec * 180;
C++:
TOKEN("hackshield_enable")
{
int flag = 0;
str_to_number(flag, value_string);
//if (1 == flag && LC_IsEurope() )
if (1 == flag)
{
isHackShieldEnable = true;
}
}
TOKEN("hackshield_first_check_time")
{
int secs = 30;
str_to_number(secs, value_string);
HackShield_FirstCheckWaitTime = passes_per_sec * secs;
}
TOKEN("hackshield_check_cycle_time")
{
int secs = 180;
str_to_number(secs, value_string);
HackShield_CheckCycleTime = passes_per_sec * secs;
}
game/src/desc.cpp dosyasını açın ve şunları kaldırınız;
C++:
#include "HackShield.h"
game/src/input.cpp dosyasını açın ve şunları kaldırınız;
C++:
#include "HackShield_Impl.h"
game/src/input_db.cpp dosyasını açın ve şunları kaldırınız;
C++:
#include "HackShield.h"
C++:
if (isHackShieldEnable)
{
if (! CHackShieldManager::instance().CreateClientHandle(ch->GetPlayerID()))
{
d->SetPhase(PHASE_CLOSE);
}
else
{
ch->StartHackShieldCheckCycle( HackShield_CheckCycleTime );
}
}
Burayı görüntülemek için üye girişi yapmalı veya kayıt olmalısınız.
game/src/input_login.cpp dosyasını açın ve şunları kaldırınız;
C++:
#include "HackShield.h"
Burayı görüntülemek için üye girişi yapmalı veya kayıt olmalısınız.
game/src/input_main.cpp dosyasını açın ve şunları kaldırınız;
C++:
#include "HackShield.h"
C++:
case HEADER_CG_HS_ACK:
if (isHackShieldEnable)
{
CHackShieldManager::instance().VerifyAck(d->GetCharacter(), c_pData);
}
break;
game/src/log.h dosyasını açın ve şunları kaldırınız;
C++:
void HackShieldLog(unsigned long ErrorCode, LPCHARACTER ch);
game/src/log.cpp dosyasını açın ve şunları kaldırınız;
C++:
void LogManager::HackShieldLog(unsigned long ErrorCode, LPCHARACTER ch)
{
struct in_addr st_addr;
#ifndef __WIN32__
if (0 == inet_aton(ch->GetDesc()->GetHostName(), &st_addr))
#else
unsigned long in_address;
in_address = inet_addr(ch->GetDesc()->GetHostName());
st_addr.s_addr = in_address;
if (INADDR_NONE == in_address)
#endif
{
Query( "INSERT INTO hackshield_log(time, account_id, login, pid, name, reason, ip) "
"VALUES(NOW(), %u, '%s', %u, '%s', %u, 0)",
ch->GetDesc()->GetAccountTable().id, ch->GetDesc()->GetAccountTable().login,
ch->GetPlayerID(), ch->GetName(),
ErrorCode);
}
else
{
Query( "INSERT INTO hackshield_log(time, account_id, login, pid, name, reason, ip) "
"VALUES(NOW(), %u, '%s', %u, '%s', %u, inet_aton('%s'))",
ch->GetDesc()->GetAccountTable().id, ch->GetDesc()->GetAccountTable().login,
ch->GetPlayerID(), ch->GetName(),
ErrorCode,
ch->GetDesc()->GetHostName());
}
}
game/src/packet_info.cpp dosyasını açın şunları kaldırın;
C++:
#include "HackShield_Impl.h"
C++:
Set(HEADER_CG_HS_ACK, sizeof(TPacketGCHSCheck), "HackShieldResponse", false);
game/src/packet.h dosyasını açın ve şunları kaldırın;
C++:
HEADER_CG_HS_ACK = 203,
C++:
HEADER_GC_HS_REQUEST = 204,
Veritabanında Kaldırılacaklar
Daha sonra log.hackshield_log tablosunu kaldırınız.Client source kaldırılacaklar için şu konuya bakınız: Metin2 Client Source HackShield Kaldırma
Son düzenleme: