antiblock
Cyphriun
  • Chatbox

    Did you check out our Discord? https://discord.gg/FFdvMjk9xA
    You don't have permission to chat.
    Load More
  • 0
Sign in to follow this  
gigargon

Como funciona Hack Log

Question

Tenho dúvidas acerca de como funciona o Hack Log.
Sempre que alguém modifica algo na pasta do metin, consigo detetar hacks pelo log ?
Também se abrirem o metin e usarem um injector, consigo obter essa informação ?
Agradeço desde já a quem consiga ajudar.

Share this post


Link to post
Share on other sites

1 answer to this question

  • 0

O sistema de hacklog é gerido pelo nucleo do servidor e com base em algumas operações regista o tipo de hack, quanto, posição e id do jogador(algumas coisas se alteram para cada tipo de verificação)

 

Segundo o código escrito na versão mainline clean, tem as seguintes funções:


Velocidade de ataque:

Spoiler

 

bool    IS_SPEED_HACK(LPCHARACTER ch, LPCHARACTER victim, DWORD current_time);

 

Esta função verifica a data do ultimo ataque realizado de uma personagem a outra(ou qualquer outro tipo de instância como monstros, etc) e verifica se o ultimo ataque mais a velocidade de ataque dessa personagem é menor que o proxima tempo em que se pode atacar novamente e anula o dano, além disso regista a quantidade de vezes que aconteceu aumentado o numero por 1, porque isto pode também acontecer por lag ou outro motivo qualquer, chegando a um limite expulsa o jogador do jogo e regista no hacklog, como mostra abaixo:

 

if (IS_SPEED_HACK_PLAYER(ch))
    {
        // write hack log
        LogManager::instance().SpeedHackLog(ch->GetPlayerID(), ch->GetX(), ch->GetY(), ch->m_speed_hack_count);

 

 

 

 

 

Combo(combos de ataque básico):

Spoiler

 

bool CheckComboHack(LPCHARACTER ch, BYTE bArg, DWORD dwTime, bool CheckSpeedHack)

 

Esta função em conjunto com a verificação de movimento verifica se a personagem usa hack de combo, calculando o tempos de ataque disponivel pelos items, bonus etc em conjunto com o tempo das animações do combo, se não for igual faz o mesmo que a verificação de ataque, aumenta a contagem e regista no hacklog como mostra abaixo:

 

LogManager::instance().HackLog("Hacker", ch);

 

 

 

 

Velocidade de movimento

Spoiler

 

bool CheckSpeedHack = (false == ch->GetDesc()->IsHandshaking() && dwCurTime - ch->GetDesc()->GetClientTime() > 7000);

 

Esta operação verifica se o tempo decorrido pelo cliente, a distançia percorrida, se o servidor e cliente estão em "handshaking"(o que acontece quando se faz login e estão a trocar dados essenciais para a ligação se manter) são aceitaveis, se não forem, não regista no hacklog mas regista no syslog(registos não cruciais do nucleo)

NOTA: a verificação de velocidade de movimento está em conjunto com esta verificação na função de mover uma personagem, mas não encontro nenhuma função que registe no hacklog

 

 

 

Teleporte(Warp)

Spoiler

 

const float fDist = DISTANCE_SQRT((ch->GetX() - pinfo->lX) / 100, (ch->GetY() - pinfo->lY) / 100);

 

Esta operação verifica se o passo que o jogador deu não é grande de mais, e se passar dos limites de tamanho de um passo, bem, tem calma com a elasticidade, o servidor mete o personagem no mesmo sitio e tranca o movimento do mesmo até que ele faça o proximo passo e regista no hacklog, como mostra abaixo:

 

const PIXEL_POSITION & warpPos = ch->GetWarpPosition();

                if (warpPos.x == 0 && warpPos.y == 0)
                    LogManager::instance().HackLog("Teleport", ch); // 부정확할 수 있음

 

 

Eciste também o CRC(integridade de ficheiros) mas estadesativado ou não funciona de todo creio, e os items em loja sempre preço(0 yang) também regista no hacklog.

 

Estas foram as verificações que vi assim de repente, é capaz existir mais uma ou duas(não mexo no codigo de metin faz algum tempo, muito menos nesta parte logo não me recordo bem) e peço desculpa por não ter sido mais completo, foram meio ao despachar as explicações

 

Cumprimentos.

 

 

Share this post


Link to post
Share on other sites
antiblock
https://i.imgur.com/aJ17bf7.gif

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this