PDA

View Full Version : |Tutorial| Hook no Main (Insira ou remova sua própria DLL)



Goten
09-07-2022, 03:41 PM
Ola galera, resolvi compartilhar uma experiência que tive recentemente com cliente de MuOnline.
Como estou desenvolvendo um MuServer e (2) clientes para o mesmo, resolvi criar um projeto para eles.

Antes de começarmos, gostaria de destacar que há varias maneiras de inserir uma DLL em qualquer arquivo .exe,
mas pelo que andei testando, algumas não dão certo ou simplesmente apresentam falhas em alguns casos.

Também gostaria de deixar anexado ao post um projeto em C++ para que você consiga programar seu próprio cliente.
Gostaria ainda de destacar que o tutorial a seguir serve para vários Mains, se algum não funcionar gostaria que deixasse aqui qualquer informação


Vamos ao que interessa:

Primeiramente, vocês vão precisar do programa DLib Attacher (http://www.mediafire.com/download/bl3tbk3mfwudob3/DLib+Attacher+v1.3a.rar),
ele quem vai inserir ou 'injetar' a DLL no seu main.exe.

Após realizado o download, execute o programa (Como administrador se usa Windows 7+), e você vai ver essa tela:
http://i.imgur.com/irCuSUf.png

Em seguida, você só vai precisar escolher o local do seu main.exe,
para isso clique em [...], e escolha o main.exe do seu cliente:
http://i.imgur.com/4WEEe84.png

Feito isso ele vai indiciar que o main.exe foi carregado, logo após temos algumas opções,
deixe como especificado na imagem abaixo:
http://i.imgur.com/rgESYP5.png

Logo após, clique na opção [add], e configure conforme a imagem:
http://i.imgur.com/FtjqCzm.png

Depois clique em submit, e a seguir o programa deve ficar dessa forma:
http://i.imgur.com/nLNzRGz.png

Se o programa estiver dessa forma, basta clicar em [Attach] para o Main estar hooked,
e você vai ver a mensagem:
http://i.imgur.com/S2W6V4r.png

Tudo pronto! seu main esta apto a carregar a DLL especificada.

Concordo plenamente que há varias maneiras de carregar uma DLL,
mas essa para mim foi a mais fácil, e ate mostra errros casso a DLL nao for encontrada pelo main.exe:
http://i.imgur.com/SXtTuOm.png

Ao contrario de mostrar aquela mensagem horrorosa do *Ruwindows

E ainda o programa oferece a oportunidade de remover o Hook (SIM, REMOVER A DLL INJETADA POR ELE!)
Para isso basta você abrir novamente o main, e clicar no botão [Detach].

E ainda tem mais, você não precisa necessariamente iniciar uma função na DLL,
já que quando se cria uma Dynamic Link Library, o visual studio cria uma função APIENTRY DllMain.

Que vai ser carregada quando o main iniciar, mas isso fica para um outro post

Download do projeto Visual Studio 2010 para seu main
http://www.mediafire.com/download/w7dfc96eg4atc9j/Main+xXx+%28Source%29.rar

Moderação, por favor deixem o segundo post reservado tenho mais conteúdo para colocar nele.
Pois preciso deixar a outra opção de não carregar a Procedure e ainda por cima alguns códigos da DLL

Oh claro os créditos: JKornev

Bom Hook