Metin2 Client Source HackShield Kaldırma

Whistle

Ruhsuz :/
Kurucu
Geliştirici
Yardımsever Üye
Mesaj
12.454
Çözümler
580
Beğeni
16.645
Puan
6.281
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: 194
Uyarı: Bu konu açıldığından bu yana baya zaman geçmiş.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.
Geri
Üst