Metin2 Client Source HackShield Kaldırma

Whistle

Ruhsuz :/
Kurucu
Geliştirici
Yardımsever Üye
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.

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...

Client Source Kaldırılacaklar​

UserInterface içerisinde yer alan şu dosyaları kaldırın;
  • Hackshield.h
  • Hackshield.cpp
  • HackshieldLicense.h
  • HackshieldLicense_metin2.h
  • HackshieldLicense_metin2client.h

UserInterface/Packet.h aratın ve kaldırın;
C++:
Genişlet Daralt Kopyala
#ifdef USE_AHNLAB_HACKSHIELD
#include "Hackshield.h"
#include METIN2HS_INCLUDE_ANTICPXSVR
#else
#pragma pack(push) //기존 alignment 저장
#pragma pack(8)

#define ANTICPX_TRANS_BUFFER_MAX            400

typedef struct _AHNHS_TRANS_BUFFER
{
    unsigned char byBuffer[ANTICPX_TRANS_BUFFER_MAX/* 송수신 패킷의 최대 크기 */];
    unsigned short nLength;
} AHNHS_TRANS_BUFFER, *PAHNHS_TRANS_BUFFER;

#pragma pack(pop) // 기존 alignment 복구.
#endif /* !USE_AHNLAB_HACKSHIELD */

C++:
Genişlet Daralt Kopyala
    HEADER_CG_HS_ACK                            = 203,

C++:
Genişlet Daralt Kopyala
    HEADER_GC_HS_REQUEST                        = 207,

C++:
Genişlet Daralt Kopyala
    HEADER_GC_HS_REQUEST                        = 204,

C++:
Genişlet Daralt Kopyala
typedef struct packet_hs_check_req
{
    BYTE    bHeader;
    AHNHS_TRANS_BUFFER    Req;
} TPacketHSCheck;


UserInterface/AccountConnector.cpp dosyasında şu kodları kaldırın;
C++:
Genişlet Daralt Kopyala
#ifdef USE_AHNLAB_HACKSHIELD
        HackShield_SetUserInfo(m_strID.c_str());
#endif

Daha sonra şu satır bulunup kaldırılır:
C++:
Genişlet Daralt Kopyala
#include "Hackshield.h"


UserInterface/PythonApplication.cpp dosyasında şu kodları kaldırın;
C++:
Genişlet Daralt Kopyala
#ifdef USE_AHNLAB_HACKSHIELD
    if (HackShield_PollEvent())
        return false;
#endif

Daha sonra şunu kaldırın:
C++:
Genişlet Daralt Kopyala
#include "HackShield.h"

UserInterface/PythonNetworkStream.h dosyasında şu kodları kaldırın;
C++:
Genişlet Daralt Kopyala
        bool RecvHSCheckRequest();

UserInterface/PythonNetworkStream.cpp dosyasında şu satırı kaldırın;

C++:
Genişlet Daralt Kopyala
Set(HEADER_GC_HS_REQUEST, CNetworkPacketHeaderMap::TPacketType(sizeof(TPacketHSCheck), STATIC_SIZE_PACKET));

UserInterface/PythonNetworkPhaseGame.cpp dosyasında şu kodları kaldırın;
Burayı görüntülemek için üye girişi yapmalı veya kayıt olmalısınız.



UserInterface/PythonNetworkStreamPhaseHandShake.cpp dosyasında şu kodları kaldırın;
C++:
Genişlet Daralt Kopyala
#ifdef USE_AHNLAB_HACKSHIELD
#include METIN2HS_INCLUDE_HSHIELD
#endif

C++:
Genişlet Daralt Kopyala
#include "Hackshield.h"

C++:
Genişlet Daralt Kopyala
bool CPythonNetworkStream::RecvHSCheckRequest()
{
    TPacketHSCheck packet;

    if (!Recv(sizeof(packet), &packet))
    {
        TraceError("HShield: Recv failed");

        return false;
    }

#if defined(USE_AHNLAB_HACKSHIELD) || defined(LOCALE_SERVICE_GLOBAL)
    TPacketHSCheck pack_ret;
    memset(&pack_ret, 0, sizeof(pack_ret));
    pack_ret.bHeader = HEADER_CG_HS_ACK;

#if defined(USE_AHNLAB_HACKSHIELD)
    unsigned long ret = _AhnHS_MakeResponse( packet.Req.byBuffer, packet.Req.nLength, &pack_ret.Req );

    if (ERROR_SUCCESS != ret)
    {
        TraceError("HShield: _AhnHS_MakeResponse return error(%u)", ret);

        return false;
    }
#endif

    if (!Send(sizeof(pack_ret), &pack_ret))
    {
        TraceError("HShield: Send failed");

        return false;
    }

    return true;
#else
    return false;
#endif
}

UserInterface/UserInterface.cpp dosyasından şu kodları kaldırın;
Burayı görüntülemek için üye girişi yapmalı veya kayıt olmalısınız.


C++:
Genişlet Daralt Kopyala
#ifdef USE_AHNLAB_HACKSHIELD
    HackShield_Shutdown();
#endif

C++:
Genişlet Daralt Kopyala
#include "Hackshield.h"


PythonNetworkStreamPhaseLogin.cpp içinden şunu kaldırın:

C++:
Genişlet Daralt Kopyala
#include "Hackshield.h"



Server source kaldırılacaklar var. Şu konuya bakabilirsiniz: Metin2 Server Source HackShield Kaldırma
 
Bunlar basit şeyler :D
Uykusuzluk başa bela....
 
UserInterface/PythonNetworkPhaseGame.cpp dosyasında şu kodları kaldırın;

UserInterface/PythonNetworkStreamPhaseGame.cpp dosyasında şu kodları kaldırın;

Kod:
Genişlet Daralt Kopyala
imput_login.cpp
        case HEADER_CG_HACK:
            break;


        case HEADER_CG_HS_ACK:
            if (isHackShieldEnable)
            {
                CHackShieldManager::instance().VerifyAck(d->GetCharacter(), c_pData);
            }
            break;



input_main.cpp

    if (isHackShieldEnable)
    {
        if (! CHackShieldManager::instance().CreateClientHandle(ch->GetPlayerID()))
        {
            d->SetPhase(PHASE_CLOSE);
        }
        else
        {
            ch->StartHackShieldCheckCycle( HackShield_CheckCycleTime );
        }
    }


        if (isHackShieldEnable)
        {
            pChar->StartHackShieldCheckCycle( HackShield_FirstCheckWaitTime );
        }

imput_main.cpp
        case HEADER_CG_HACK:
            break;


        case HEADER_CG_HS_ACK:
            if (isHackShieldEnable)
            {
                CHackShieldManager::instance().VerifyAck(d->GetCharacter(), c_pData);
            }
            break;

kanıt
kanit.webp
 

Dosya Eklentileri

  • test.webp
    test.webp
    181,7 KB · Gösterim: 139
Geri
Üst