Resultados 1 a 5 de 5
  1. #1
    Fundador PerfectZone Mentor's Avatar


    Data de Ingresso
    Jun 2013
    Posts
    2,850
    Thanks Thanks Given 
    784
    Thanks Thanks Received 
    2,188
    Thanked in
    355 Posts
    Mencionado
    804 Post(s)
    MEU HUMOR
    Twisted
    País
    Brazil

    Hookando uma DLL em um GameServer.exe

    Bom pessoal achei esse tutorial na net e decidir trazer para o fórum para ajudar aqueles que querem hookar sua dll com o Ollydbg.
    Lembrando que o tutorial foi elaborado para hookar uma dll em um GameServer.exe, mais acredito que o procedimento é o mesmo para quem deseja hokar dll no main.exe

    1ª Parte - Método de Hookar uma DLL:
    1ª Parte - Método de Hookar uma DLL:

    PUSH NOMEDADLL // Procure uma DB 00 Faça follow in dump e escreva em ASCII o nome de sua DLL.
    CALL LoadLibrary // Procure a offset LoadLibrary de sua maquina.
    OR EAX,EAX
    JE ERROR // Procure uma DB 00 e monte uma função de Error caso não tenha a DLL.
    PUSH FUNÇÃODADLL // Procure uma DB 00 Faça follow in dump e escreva em ASCII o nome da função de sua DLL.
    PUSH EAX
    CALL GetProcAddress // Procure a offset GetProcAddress de sua maquina.
    CALL EAX
    JMP EntryPoint // EntryPoint de seu GS Utilizado.


    Função de Error:

    PUSH 0
    PUSH MSGDEERRO // Procure uma DB 00 Faça follow in dump e escreva em ASCII msg de erro da bandeja Exemplo: Error!
    PUSH MSGDEERRO2 // Procure uma DB 00 Faça follow in dump e escreva em ASCII msg de erro completa Exemplo: JNTeam.dll esta ausente!
    PUSH 0
    CALL MessageBoxA // Procure a offset MessageBoxA de sua maquina.
    PUSH 0
    CALL ExitProcess // Procure a offset ExitProcess de sua maquina.


    Para procurar as offset’s utilizados ExitProcess, MessageBoxA, EntryPoint, GetProcAddress e LoadLibrary.

    1° - Vamos encontrar o nosso EntryPoint:
    • Encontrar o EntryPoint em seu GameServer é parte mais simples do processo, basta abrir o GameServer com o Ollydbg e não mecher em nada ele vai parar na OFFSET de seu EntryPoint. Basta anotar a OFFSET e utilaza-lá no seu Hook.

    2° - Vamos encontrar a OFFSET do LoadLibrary de seu GS:
    • Primeiro vamos clicar com botão direito em qualquer lugar de nosso GameServer e logo após Seach For e depois Names.
    • Agora basta aperta a tecla “L” de seu teclado e ele irá na seção dos nomes iniciados com “L”, e então procureLoadLibraryA e clique duas vezes em cima para ir na OFFSET. Agora basta anotar para usar em seu Hook.

    3° - Vamos encontrar a OFFSET do GetProcAdress de seu GS:

    • Primeiro vamos clicar com botão direito em qualquer lugar de nosso GameServer e logo após Seach For e depois Names.
    • Agora basta aperta a tecla “G” de seu teclado e ele irá na seção dos nomes iniciados com “G”, e então procureGetProcAdress e clique duas vezes em cima para ir na OFFSET. Agora basta anotar para usar em seu Hook.

    4° - Vamos encontrar a OFFSET do MessageBoxA de seu GS:
    • Primeiro vamos clicar com botão direito em qualquer lugar de nosso GameServer e logo após Seach For e depois Names.
    • Agora basta aperta a tecla “M” de seu teclado e ele irá na seção dos nomes iniciados com “M”, e então procureMessageBoxA e clique duas vezes em cima para ir na OFFSET. Agora basta anotar para usar em seu Hook.

    5° - Vamos encontrar a OFFSET do ExitProcess de seu GS:
    • Primeiro vamos clicar com botão direito em qualquer lugar de nosso GameServer e logo após Seach For e depois Names.
    • Agora basta aperta a tecla “E” de seu teclado e ele irá na seção dos nomes iniciados com “E”, e então procureExitProcess e clique duas vezes em cima para ir na OFFSET. Agora basta anotar para usar em seu Hook.

    Observação: Depois que terminar o processo de implantar o método de hook, salve o GameServer.exe mais antes de fechar o Ollydbg anote a OFFSET inicial de onde começou o HOOK - PUSH NOMEDADLL.


    2ª Parte – Usando o LordPE para Finalizar o Hook:

    1° - Abra o LordPE;
    2° - Abra o GameServer na opção PE Editor;
    3° - Na primeira linha note que vai ter EntryPoint ele vai ser igual ao EntryPoint que você pegou no Ollydbg a não ser pelo primeiro numero que vai estar 2 no lugar de 6.
    4° - Pegue a OFFSET inicial de onde começou o HOOK do Ollydbg e coloque no lugar da EntryPoint do Ollydbg e altere o 6pelo 2:


    Exemplo eu fiz o hook na offset: 00652721 no LordPE vai ficar 00252721.
    5° - Pronto agora só clicar em salvar e fechar o LordPE, seu hook está 100% terminado.




    Creditos:
    - João Neto - Elaborar o tutorial e aplicar metodo de hook e error.
    Last edited by Mentor; 24/03/2015 at 02:00 AM.
    Perfect Zone Brasil



    Inscreva-se no meu canal clicando [Somente membros podem ver os links. ]

  2. The Following User Says Thank You to Mentor For This Useful Post:


  3. #2
    Developer C++ Lucas M.'s Avatar
    Data de Ingresso
    Jan 2015
    Posts
    84
    Thanks Thanks Given 
    14
    Thanks Thanks Received 
    5
    Thanked in
    2 Posts
    Mencionado
    24 Post(s)
    Acho que já foi o tempo em que geral só hookava assim ! Hoje tem programas mais praticos , rápidos e que não dêem erros... Porém , eu prefiro sempre fazer pelo metodo olly !
    Ai vai da preferencia de cada.
    Belo tutorial mentor )))

  4. #3
    Lendário TonyAMT's Avatar

    Data de Ingresso
    Feb 2015
    Posts
    47
    Thanks Thanks Given 
    2
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    Mencionado
    6 Post(s)
    MEU HUMOR
    Relaxed
    País
    Brazil
    realmente hoje esta bem mais facil.. eu mesmo utilizo hook somente por Lord Pe e quando nao da certo o Stud Pe.

  5. #4
    Membro jeickenwes's Avatar
    Data de Ingresso
    Nov 2016
    Posts
    33
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    5
    Thanked in
    4 Posts
    Mencionado
    3 Post(s)
    MEU HUMOR
    Daring
    País
    Brazil
    para que server isto hook ? qual função disto


    2018-11-02 Votando brincar com Mu....

  6. #5
    Fundador PerfectZone Mentor's Avatar


    Data de Ingresso
    Jun 2013
    Posts
    2,850
    Thanks Thanks Given 
    784
    Thanks Thanks Received 
    2,188
    Thanked in
    355 Posts
    Mencionado
    804 Post(s)
    MEU HUMOR
    Twisted
    País
    Brazil
    @[Somente membros podem ver os links. ] isso serve para o GameServer.exe ler a dll que está sendo hokada nele. Geralmente quem utilizam esse método são os programadores que desenvolve sua propria dll com customizações fixes...
    @[Somente membros podem ver os links. ]
    @[Somente membros podem ver os links. ]
    Nem sempre os métodos que muitos utilizam hoje em dia com os programas Stud_PE, LordPe... que facilitam o hook, funcionam.
    Eu mesmo já tive experiencia em um projeto que só veio a funcionar após eu ter usado o método que postei.
    Perfect Zone Brasil



    Inscreva-se no meu canal clicando [Somente membros podem ver os links. ]

Permissões de Postagem

  • Você não pode iniciar novos tópicos
  • You may not post Resposta(s)
  • Você não pode enviar anexos
  • Você não pode editar suas mensagens
  •  
Sobre nós
Somos uma comunidade em atividade a 8 anos que aborda assuntos relacionados a games em geral, principalmente games MMORPG. e que busca sempre ajudar os membros através de conteúdos, tutoriais e suporte...
Nossos anunciantes
Hinetworks
VelozHost
InovHost
Rede Sociais