Uma pergunta! o que qui esse define ta fazendo ai dentro oO
extern "C" _declspec(dllexport)void Inicio()
{
DWORD OldProtect;if(VirtualProtect(LPVOID(#define GS_BASE),3543191,PAGE_EXECUTE_READWRITE,&OldProtect)
{
Ficou assim depois de Muito trabalho ;!
Código:#include<windows.h> #define GS_BASE(0x401000) BYTE ProtocolServer(BYTE Tipo) { switch(Tipo) { case 0x1D: return 0xD3; case 0xD6: return 0xDF; case 0xDC: return 0xD7; case 0xD7: return 0x10; } return Tipo; } BYTE ProtocolClient (BYTE Tipo) { switch(Tipo) { case 0xD3: return 0x1D; case 0xDF: return 0xD6; case 0xD7: return 0xDC; case 0x10: return 0xD7; } return Tipo; } extern "C" _declspec(dllexport)void Inicio() { DWORD OldProtect; if(VirtualProtect(LPVOID(GS_BASE),3543191,PAGE_EXECUTE_READWRITE,&OldProtect)) { _asm { Mov Dword Ptr Ds:[00600060H],Offset ProtocolServer Mov Dword Ptr Ds:[00600064H],Offset ProtocolClient } } else { MessageBoxA(NULL,"Não foi possivel a dll","Protocol.dll",MB_OK); } }
Última edição por Mr.TwoHam; 12-10-2009 às 04:43 PM.
Uma pergunta! o que qui esse define ta fazendo ai dentro oO
extern "C" _declspec(dllexport)void Inicio()
{
DWORD OldProtect;if(VirtualProtect(LPVOID(#define GS_BASE),3543191,PAGE_EXECUTE_READWRITE,&OldProtect)
{
iSSO EU JA TINHA RESOLVIDO ..!! tA DANDO ERRO DE identificador não declarado
aki ta errado tb -> #define GS_BASE(x401000)
tem um 0 antes do X ficando 0x401000
e aqui tb deve ter
_asm
{
Mov Dword Ptr Ds:[00600060H],Offset ProtocolServer
Mov Dword Ptr Ds:[00600064H],Offset ProtocolClient
}
0x00....
sempre inicie com 0x
Lucaas! manow
Posso da uma Dica Bem pelo que vi se gosta Mesmo de Mu e como GSs são em C++ se quer começar direto por ela^^
Bem isso nao é usado nem em cursinhos por ai
Atualmente faço Curso de Analise de Sistemas (Sistemas de informação)
Bem Vim te dar uma Dica que tal começar pelo Pascal?
Te dou Apoio Total caso queria continuar com C++
Mais como to num Nível Muito baixo Não Poderei TE ajudar [To no Pascal]
Bem você me Pergunta por que o pascal
R: é uma linguagem de Programação Muito Simples de ser "entendida"
Só para você ter uma noção melhor de variaveis registros etc.
caso já Domina essa Linguagem Ignore esse Flood^^ e só uma dica Mesmo
Boa Sorte e Bons Estudos
mudo as propriedades do projeto para ser uma .dll ao invés de um .exe?
Forum Owner & Admin - Imperyus Games Brasil
segredo , eu quero fazer Faculdade de Analise de Sistema .. Sua Dica foi muito Util e eu Baixe Apostilas de Pascal e Estou Estudando e Fico Feliz em Saber que tem Pessoas Como Você Aqui No Forum.. Muito Obrigado Pela ajuda ..
Willerson , eu Mudei de exe para dll sim .. !
Meus Unicos Erros Agora Está Sendo Esses :
Código:Error 1 error C2010: '0' : unexpected in macro formal parameter list c:\documents and settings\lucaas !\desktop\mprotocolo\lucas.dll\lucas.dll\dllmain.cpp 2 Lucas.dll
e
EDITTTT _______________Código:Error 2 error C2065: 'GS_BASE' : undeclared identifier c:\documents and settings\lucaas !\desktop\mprotocolo\lucas.dll\lucas.dll\dllmain.cpp 39 Lucas.dll
Da um Closed no topico aee que o Diel deu uma Ajuda Aqui =)
Obrigado a Todos que Tentaram me Ajudar !
Última edição por Mr.TwoHam; 12-10-2009 às 06:31 PM. Razão: :P
Faz assim!
Código:#include<windows.h> #include "offset.h" #include "StdAfx.h" BYTE ProtocolServer(BYTE Tipo) { switch(Tipo) { case 0x1D: return 0xD3; case 0xD6: return 0xDF; case 0xDC: return 0xD7; case 0xD7: return 0x10; } return Tipo; } BYTE ProtocolClient (BYTE Tipo) { switch(Tipo) { case 0xD3: return 0x1D; case 0xDF: return 0xD6; case 0xD7: return 0xDC; case 0x10: return 0xD7; } return Tipo; } extern "C" _declspec(dllexport)void MProtocol() { DWORD OldProtect; if(VirtualProtect((LPVOID) 0x00401000, 3543191, PAGE_EXECUTE_READWRITE, &OldProtect)) { _asm { Mov Dword Ptr Ds:[00600060H],Offset ProtocolServer Mov Dword Ptr Ds:[00600064H],Offset ProtocolClient } } else { MessageBoxA(NULL,"Não foi possivel a dll","Lucas.dll",MB_OK); } }
Última edição por Diel; 12-10-2009 às 06:41 PM.
Lucas !,
desculpa a intromissão no tópico, mas o código que você colocou é estruturado, ou seja, C puro, apesar de ser compilado em compiladores C++ ele não é propriamente C++.
Outra comentário para deixar sua vida mais fácil:
Ao utilizar esse método de hook, você será forçado a fazer modificações no gameserver em linguagem de muito baixo nível, assembly, fica a dica para que ao invés disso você simplesmente faça um hook no protocolcore e faça a seguinte função_asm
{
Mov Dword Ptr Ds:[00600060H],Offset ProtocolServer
Mov Dword Ptr Ds:[00600064H],Offset ProtocolClient
}
void protocolcoreEx(argumentos)
{
tratamento de código
protocolcore(argumentos);
}
desse modo você não precisará nada mais que dar hook em sua dll no gameserver( caso não seja a WzAg ) para carregar as funções de hook.
Qualquer dúvida mande PM que estarei respondendo-as.
Abraços.
Quero agradecer a Todos Que tentaram me Ajudar , Principalmente WingsOfHeaven .. e Diel Por Te me Dado suporte Via TeamViewer ! ..
Problema Resolvido Da um Closed no Topico Awee !
Vlws ImperyuGames pela oportunidade "!
Há 1 usuários navegando neste tópico. (0 registrados e 1 visitantes)
Marcadores