Siga-nos em...
Follow us on Twitter Follow us on Facebook Watch us on YouTube
Registro

Alpha Servers
Resultados 1 a 1 de 1
  1. #1

    Avatar de Getulio
    Data de Ingresso
    Mar 2010
    Localização
    char
    Idade
    31
    Posts
    95
    Agradecido
    289
    Agradeceu
    92
    Peso da Avaliação
    0

    Padrão Proteção contra Trade Hack

    Há um tempo atrás, briguei com um dos moderadores que pertencia a equipe (não sei se ainda pertence, não me lembro mais quem é), que fez com que eu tomasse raiva do fórum e de toda a sua equipe, por causa de algumas infranções que recebi (realmente mereci, afinal, não estava de acordo com as regras). Assim, deixei-me levar por um lado imaturo, inconseqüente, que levou-me a 'defamar' o fórum e sua equipe. Por isso, nesse tópico, peço minhas sinceras e humildes desculpas aos administradores do fórum e a todos membros que aqui frequentam (mesmo que não estejam por dentro do assunto).

    -----------------------------------------------------------------------------------------

    Voltando ao objetivo do tópico...
    Não possuo mais interesse por MuOnline, estou partindo para outros jogos. Então, pretendo a cada dia, liberar funções/proteções que havia feito para um dos meus projetos que seria vendido e não será mais.

    Está é uma possível solução (proteção), contra Trade Hack.
    Ao invez de bloquear diversos packets usados pelo WPE Pro, ele verifica se o usuário já está com o trade aberto (caso um novo pedido de trade seja solicitado) e impede que o GameServer processe essa ação, assim, impedindo o Trade Hack.
    Óbviamente, existe outros modos, mas esse é um método simples e muito útil.
    O código abaixo, foi feito para servidores: 0.96.40, ou como muitos chamam: 97d, mas, o mesmo é compatível com outras versões, porém, o código terá de ser reajustado de acordo com a versão do servidor (Pegar os valores das structs PMSG_TRADE_REQUEST, PMSG_TRADE_RESPONSE caso os valores sejam diferentes e reanalizar as funções solicitação de trade e resposta, para ter certeza que não possui novos argumentos [se possuir, basta adiciona-los na função], e os devidos offsets para hook).

    Trade.h:
    Código:
    #pragma once
    
    #include <Windows.h>
    #include <stdio.h>
    
    namespace Network
    {
    	struct PMSG_TRADE_REQUEST
    	{
    		PBMSG_HEAD h;
    		unsigned char NumberH;
    		unsigned char NumberL;
    	};
    
    	struct PMSG_TRADE_RESPONSE
    	{
    		PBMSG_HEAD h;
    		unsigned char Response;
    		unsigned char Id[10];
    		unsigned short Level;
    		int GuildNumber;
    	};
    
    	class Trade
    	{
    	public:
    		static void Request(PMSG_TRADE_REQUEST* lpMsg, DWORD dwIndex);
    		static void Response(PMSG_TRADE_RESPONSE* lpMsg, DWORD dwIndex);
    	};
    }
    Trade.cpp:
    Código:
    #include "Trade.h"
    
    namespace Network
    {
    	void Trade::Request(PMSG_TRADE_REQUEST* lpMsg, DWORD dwIndex)
    	{
    		WORD szTarget = (WORD)Object[dwIndex].TargetNumber;
    
    		if(Object[dwIndex].m_IfState.use == 1 && Object[dwIndex].m_IfState.type == 1 && Object[dwIndex].pTransaction == 1)
    		{
    			if(Object[szTarget].Type == 1)
    			{
    				return;
    			}
    		}
    
    		ServerRequestTrade(lpMsg, dwIndex);
    	}
    
    	void Trade::Response(PMSG_TRADE_RESPONSE* lpMsg, DWORD dwIndex)
    	{
    		WORD szTarget = (WORD)Object[dwIndex].TargetNumber;
    
    		if(Object[dwIndex].m_IfState.use == 1 && Object[dwIndex].m_IfState.type == 1 && Object[dwIndex].pTransaction == 1)
    		{
    			if(Object[szTarget].Type == 1)
    			{
    				return;
    			}
    		}
    
    		ServerResponseTrade(lpMsg, dwIndex);
    	}
    }
    Hook:
    Código:
    Hook((DWORD)&Network::Trade::Request, 0x402216);
    Hook((DWORD)&Network::Trade::Response, 0x4018E3);
    Defines:
    Código:
    #define ServerRequestTrade		((void(*)(Network::PMSG_TRADE_REQUEST*, DWORD)) 0x41D3B0)
    #define ServerResponseTrade		((void(*)(Network::PMSG_TRADE_RESPONSE*, DWORD)) 0x41D990)

    Créditos:
    Network.
    Última edição por Getulio; 02-04-2012 às 01:49 AM.

 

 

Informações de Tópico

Usuários Navegando neste Tópico

Há 1 usuários navegando neste tópico. (0 registrados e 1 visitantes)

Tópicos Similares

  1. |Dúvida| Proteção contra ataque a site.
    Por rodrigopf no fórum Dúvidas|Pedidos
    Respostas: 3
    Último Post: 14-10-2015, 06:32 PM
  2. |Source| Proteção contra debuggers e Ant Inject
    Por Sain no fórum Delphi
    Respostas: 3
    Último Post: 11-04-2014, 09:42 PM
  3. |Source| Proteção contra Disconnect Hack & Ataques (Flood) no GS
    Por Getulio no fórum Sources
    Respostas: 13
    Último Post: 21-08-2012, 07:02 PM
  4. |Source| Proteção contra Ring Bug e algumas correções para 97d
    Por Getulio no fórum Sources
    Respostas: 0
    Último Post: 03-04-2012, 09:21 PM
  5. |Source| Proteção contra Skill Bug
    Por Getulio no fórum Sources
    Respostas: 0
    Último Post: 02-04-2012, 01:39 AM

Marcadores

Permissões de Postagem

  • Você não pode iniciar novos tópicos
  • Você não pode enviar respostas
  • Você não pode enviar anexos
  • Você não pode editar suas mensagens
  •