Lucas M.
25/01/2015, 12:50 AM
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 ([Only registered and activated users can see links]),
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:
[Only registered and activated users can see links]
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:
[Only registered and activated users can see links]
Feito isso ele vai indiciar que o main.exe foi carregado, logo após temos algumas opções,
deixe como especificado na imagem abaixo:
[Only registered and activated users can see links]
Logo após, clique na opção [add], e configure conforme a imagem:
[Only registered and activated users can see links]
Depois clique em submit, e a seguir o programa deve ficar dessa forma:
[Only registered and activated users can see links]
Se o programa estiver dessa forma, basta clicar em [Attach] para o Main estar hooked,
e você vai ver a mensagem:
[Only registered and activated users can see links]
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:
[Only registered and activated users can see links]
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
[Only registered and activated users can see links]
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
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 ([Only registered and activated users can see links]),
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:
[Only registered and activated users can see links]
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:
[Only registered and activated users can see links]
Feito isso ele vai indiciar que o main.exe foi carregado, logo após temos algumas opções,
deixe como especificado na imagem abaixo:
[Only registered and activated users can see links]
Logo após, clique na opção [add], e configure conforme a imagem:
[Only registered and activated users can see links]
Depois clique em submit, e a seguir o programa deve ficar dessa forma:
[Only registered and activated users can see links]
Se o programa estiver dessa forma, basta clicar em [Attach] para o Main estar hooked,
e você vai ver a mensagem:
[Only registered and activated users can see links]
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:
[Only registered and activated users can see links]
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
[Only registered and activated users can see links]
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