Avatar utilizator
SCOOB
Administrator
Administrator
  • Mesaje: 4898
    Membru din: 07 Aug 2024, 18:53
  • Reacții: 119594
  • Mesaje utile: 47
  • Status: Pe aici.. 🤠
    Server: Saga2 - Soon
  • Regat: Jinno
  • [ID Discord]
  • Avatar utilizator
    SCOOB
    Administrator
    Administrator
    *Descriere:

    Metin2 Buffer & Packet Security Fix – Protecție Network

    Thanks @SystemPolaris :x

    Acest fix îmbunătățește securitatea și stabilitatea sistemului de buffer și a pachetelor de rețea din Metin2. Sunt adăugate mai multe verificări pentru dimensiuni invalide, overflow-uri, citirea datelor și procesarea pachetelor dinamice.
    - blochează lungimile negative și dimensiunile invalide;
    - previne citirea în afara datelor existente în buffer;
    - adaugă verificări pentru overflow la alocarea memoriei;
    - reutilizează spațiul consumat din buffer înainte de realocare;
    - validează pachetele dinamice și pachetele HybridCrypt;
    - adaugă verificări suplimentare pentru Guild Mark și Symbol Data.

    *Link download / Code:

    Deschide libthecore/src/buffer.c si cauta:
    Code:
    void buffer_realloc(LPBUFFER& buffer, int length);
    Adauga dedesubt:

    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    Cauta in ambele functii buffer_get_pool_index si buffer_get_exac_pool_index:
    Code:
    for (i = 0; i < 32; ++i) {
    Inlocuieste in ambele cu:

    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    Cauta:
    Code:
    LPBUFFER buffer_new(int size)
    Adauga la inceputul functiei:

    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    Cauta:
    Code:
    void buffer_write(LPBUFFER& buffer, const void *src, int length)
    Inlocuieste toata functia cu:

    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    Cauta:
    Code:
    void buffer_read(LPBUFFER buffer, void * buf, int bytes)
    Inlocuieste toata functia cu:

    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    Cauta aceste trei functii:
    Code:
    buffer_byte
    buffer_word
    buffer_dword
    Inlocuieste-le cu:

    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    Cauta:
    Code:
    void buffer_read_proceed(LPBUFFER buffer, int length)
    Asigura-te ca functia incepe cu:

    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    Cauta:
    Code:
    void buffer_write_proceed(LPBUFFER buffer, int length)
    Inlocuieste toata functia cu:

    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    Cauta:
    Code:
    void buffer_adjust_size(LPBUFFER& buffer, int add_size)
    Inlocuieste toata functia cu:

    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    Cauta:
    Code:
    void buffer_realloc(LPBUFFER& buffer, int length)
    Inlocuieste toata functia cu:

    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.



    Deschide EterLib/NetStream.cpp si cauta:
    Code:
    void CNetworkStream::SetRecvBufferSize(int recvBufSize)
    void CNetworkStream::ReleaseRecvBuffer()
    Inlocuieste ambele functii cu:

    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    Cauta:
    Code:
    void CNetworkStream::SetSendBufferSize(int sendBufSize)
    Adauga la inceputul functiei:

    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    Dupa m_sendBuf si m_sendTEABuf adauga:

    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    Cauta in CNetworkStream::CNetworkStream:
    Code:
    m_sendTEABuf
    Foloseste:

    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    Cauta:
    Code:
    bool CNetworkStream::Peek(int size)
    Adauga la inceput:

    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    Cauta:
    Code:
    bool CNetworkStream::Peek(int size, char * pDestBuf)
    Adauga la inceput:

    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    Cauta:
    Code:
    bool CNetworkStream::Send(int size, const char * pSrcBuf)
    Inlocuieste validarea cu:

    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    Cauta toate aparitiile:
    Code:
    if (recvSize < 0)
    din __RecvInternalBuffer si foloseste in toate cele trei cazuri:

    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.



    Deschide UserInterface/PythonNetworkStream.cpp si cauta:
    Code:
    TDynamicSizePacketHeader DynamicSizePacketHeader;
    Adauga imediat dedesubt:

    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.



    Deschide UserInterface/Packet.h si cauta:
    Code:
    SPacketGCHybridCryptKeys
    SPacketGCHybridSDB
    Foloseste in locul constructorilor existenti:

    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.



    Deschide UserInterface/PythonNetworkStreamPhaseHandShake.cpp si cauta:
    Code:
    bool CPythonNetworkStream::RecvHybridCryptKeyPacket()
    Inlocuieste toata functia cu:

    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    Cauta:
    Code:
    bool CPythonNetworkStream::RecvHybridCryptSDBPacket()
    Inlocuieste toata functia cu:

    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.



    Deschide UserInterface/AccountConnector.cpp si cauta:
    Code:
    bool CAccountConnector::__AuthState_RecvHybridCryptKeys(int iTotalSize)
    Inlocuieste toata functia cu:

    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    Cauta:
    Code:
    bool CAccountConnector::__AuthState_RecvHybridCryptSDB(int iTotalSize)
    Inlocuieste toata functia cu:

    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    Cauta in CAccountConnector::__AnalyzeVarSizePacket:
    Code:
        TDynamicSizePacketHeader dynamicHeader;
        if (!Peek(sizeof(dynamicHeader), &dynamicHeader))
            return true;
    Adauga imediat dedesubt:

    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.



    Deschide UserInterface/GuildMarkDownloader.cpp si cauta:
    Code:
    __LoginState_RecvMarkBlock
    Adauga dupa header:

    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    Inainte de bucla pentru block-uri adauga:

    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    Valideaza fiecare block comprimat cu:

    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    Dupa bucla adauga:

    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    Cauta:
    Code:
    __LoginState_RecvSymbolData
    Adauga inainte de header:

    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.

    Nou Cum descarc de pe TeraBox?

    Afișează detalii Ascunde detalii
    • Este asemănător cu Mega.nz
    • Instalați-vă clientul lor de Download de aici
    • Faceți-vă un cont (vă puteți loga cu Facebook / Google / etc)
    • Nou Dacă nu vreți să descărcați clientul de Download, folosiți acest site
    • Gata! Acum puteți descărca resursele rapid & simplu.

    De ce folosim TeraBox?

    • Este gratuit
    • Primești 1TB de spațiu gratuit la orice cont creat!
    • Este ușor de folosit și varianta premium este foarte ieftină
    • Fișierele nu sunt șterse niciodată
    TeraBox logo
    Comunitatea Metin2 Romania este si pe Discord! :ymcowboy:

    2500+ membri • Chat activ zilnic • Support • Cereri & Resurse

    ► discord.gg/jWxeDSf7HP ◄





    See full signature
    Avatar utilizator
    SystemPolaris
    Membru Începător
    Membru Începător
    Mesaje: 7
    Membru din: 25 Aug 2026, 10:26
  • Reacții: 28
  • Mesaje utile: 0
  • Status: Work
    Server: Project Polaris
  • Regat: Shinsoo
  • [ID Discord]
  • Medalii

    Avatar utilizator
    SystemPolaris
    Membru Începător
    Membru Începător

    Mesaj

    You forgot to mention me
    And also thank you for posting the translated version for others as well xD
    See full signature
    Avatar utilizator
    SCOOB
    Administrator
    Administrator
  • Mesaje: 4898
    Membru din: 07 Aug 2024, 18:53
  • Reacții: 119594
  • Mesaje utile: 47
  • Status: Pe aici.. 🤠
    Server: Saga2 - Soon
  • Regat: Jinno
  • [ID Discord]
  • Avatar utilizator
    SCOOB
    Administrator
    Administrator

    Mesaj

    SystemPolaris scrie: ↑ You forgot to mention me
    And also thank you for posting the translated version for others as well xD
    Sorry mate, fixed!
    Comunitatea Metin2 Romania este si pe Discord! :ymcowboy:

    2500+ membri • Chat activ zilnic • Support • Cereri & Resurse

    ► discord.gg/jWxeDSf7HP ◄





    See full signature

    Înapoi la “FIX-uri”

    Discord ID copiat: