Bem a dll so tem o protocolo.
Código:
#include "StdAfx.h"
#include "Fixs.h"
#define GS_BASE (0x401000)
//=======================Protocolo Phillipines=========================\\
BYTE ProtocolServer(BYTE Tipo)
{
switch(Tipo)
{
case 0x1D:
return 0xDD;
case 0xD6:
return 0xDF;
case 0xDC:
return 0xD6;
case 0xD7:
return 0x11;
}
return Tipo;
}
BYTE ProtocolClient(BYTE Tipo)
{
switch(Tipo)
{
case 0xDD:
return 0x1D;
case 0xDF:
return 0xD6;
case 0xD6:
return 0xDC;
case 0x11:
return 0xD7;
}
return Tipo;
}
//=======================Protocolo Phillipines Fim=========================\\
extern "C" _declspec(dllexport) void GamePlugin()
{
DWORD OldProtect;
if(VirtualProtect(LPVOID(GS_BASE),3543191,PAGE_EXECUTE_READWRITE,&OldProtect))
{
Fixs();
_asm
{
Mov Dword Ptr Ds:[00652800H],Offset ProtocolServer
Mov Dword Ptr Ds:[00652804H],Offset ProtocolClient
}
}
else
{
MessageBoxA(NULL,"Não foi possivel iniciar a dll","GamePlugin.dll",MB_OK);
}
}
Ou seja estou iniciando ainda este GS, porem ao deixar assim como esta, ao abrir o gameserver ele abre, trava, fecha e aparece o arquivo .dmp
Apos acrescentar o fix do crash .dmp
// Fix Crash Dump File
SetByte(0x004C7041,0xE9); //C
SetByte(0x004C7042,0x2E); //R
SetByte(0x004C7043,0x01); //A
SetByte(0x004C7044,0x00); //S
SetByte(0x004C7045,0x00); //H
SetByte(0x004C7046,0x90); //Dmp
O GameServer abre e fecha rapidamente.
Eu so estou estranhando isso, porque os offsets estao correto ( creio eu )