Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

[Tutorial] Code Inject

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Tutorial [Tutorial] Code Inject

    Bom pessoal vou falar sobre Code Inject , essa técnica é muito útil para desvio de rotinas particularmente em ER , hoje eu vou ser bem sucinto , vou envolver Code Inject e AutoKeygenning.

    Vou também tentar exemplificar bem o que vou fazer , para isso escolhi novamente o crackme que meu amigo Rafael fez para teste , então vamos lá.

    Primeiramente cheguei até a rotina principal por referência as strings de mensagem de erro ,dei um breakpoint no inicio dela e executei meu alvo , preenchi meus campos , e agora vou seguir trançando com F8.

    Em 4531E4 eu tenho a instrução MOV EDX,[EBP-4] , essa instrução move o conteúdo armazenado em 16F620 para EDX que é a senha para nosso nome (em BASE64) , essa instrução é importante pra nós por isso vamos usá-la mais adiante.

    Na linha seguinte temos uma Call zera nossos registros , logo após um JNZ que nos joga na mensagem de erro, aqui vemos a estrutura da nossa MessageBox , nós também vamos altera-la para ficar com um aspecto melhor:

    453203 PUSH 10 Style MB_OK
    453205 MOV ECX,0045330C Title "Tente Novamente"
    45320A MOV EDX,00453324 Text "Valores Incorretos !"

    Bem é essas três estruturas que iremos modificar , o nosso style de janela , o title e o text que vai ser nosso valor correto para o nome , depois dessa pequena analise vamos voltar a executar o programa e perceber que a CALL que vem depois de 4531E4 limpa nossos registros , se irmos ao dump e digitar o endereço 16F620 vamos notar que mesmo essa CALL tendo limpado nossos registros , ainda temos o nosso serial guardado na memória , então poderemos fazer referência por esse endereço , mas não especificamente ele porque em outros casos o programa pode altenar de endereço ao guardar esse conteúdo , então vamos gerar vicios bons, vamos usar a operação de MOV EDX,[EBP-4] já que mesmo depois desse CALL nosso EBP não é limpo.

    Bem já que não vamos acertar de primeira mesmo vamos usar o JNZ que há em 4531EC para nos jogar para um code cave , eu por exemplo usei o endereço 4535E1 e 4535E4 , respectivamente para injetar o serial em EDX e pular novamente pra rotina , para exemplificar melhor :



    Então no meu ficou assim :

    4531EC JMP 4535E1
    453203 PUSH 30
    453205 MOV ECX,4532F0
    45320A MOV EDX,EDX
    4535E1 MOV EDX,[EBP-4]
    4535E4 JMP 453203

    Agora é só pegar o OFFSET dos endereços e modificar pelos bytes correspondentes , como essa parte é muito chata e exige muita atenção coisa que não tenho muito (conheço alguém que ira discordar) , eu já fiz pra vocês e apliquei em um source para "patchear" escrito em C :

    Código:
    #include <stdio.h> 
    #define name "gg.exe"
    
      void patchr(long int offset,int byte)
        {
          FILE *arquivo;
          arquivo=fopen(name,"rb+");
          fseek (arquivo,offset,SEEK_CUR);
          fprintf(arquivo,"%c",byte);
          fclose(arquivo);
        } 
    
       main()
         {  
     
             patchr(0x525EC,0xE9);patchr(0x529E4,0xE9);
             patchr(0x525ED,0xF0);patchr(0x52606,0xF0);
             patchr(0x525EE,0x03);
             patchr(0x525EF,0x00);patchr(0x525F0,0x00);
             patchr(0x52604,0x30);
             patchr(0x52607,0x32);
             patchr(0x5260A,0x8B);patchr(0x529E1,0x8B);
             patchr(0x5260B,0xD2);
             patchr(0x529E2,0x55);
             patchr(0x529E3,0xFC);patchr(0x529E6,0xFC);
             patchr(0x529E5,0x1A);
             patchr(0x529E7,0xFF);patchr(0x529E8,0xFF);
    
             return 0; 
         }
    Abaixo o link com o alvo , o meu script para calcular o OFFSET e o source em C , e espero que tenham entendido

    Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...

    Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...

    OBS:O alvo do meu inject está infectado por um Virtob , sim eu realmente não sei onde eu consegui me infectar , mas como a matéria estava pronta já sugiro que executem ele em uma máquina virtual
    Last edited by Gustavo; 15-07-2009, 13:05.
    @creatinguseless

  • Font Size
    #2
    puttzz!
    fico muito bem explicado..
    tais de parabéns jhow \O
    ~# Criado pela [IN]Segurança #~

    Comment


    • Font Size
      #3
      Muito bom seu tuto eu ja havia visto , ta de parabens gustavo
      Last edited by R4VNOS; 11-07-2009, 19:08.

      Comment


      • Font Size
        #4
        Otimo tutorial cara, bem explicado mesmo
        abraços

        Comment


        • Font Size
          #5
          Realmente tutorial excelente...

          Abraços fera.
          Eu Vim pra Revolucionar!!

          Comment


          • Font Size
            #6
            Cara, muuito util o tutorial.

            valeeu
            .
            NÃO ME RESPONSABILIZO PELOS SEUS ATOS!

            Ajude o GH : |Recrutamento de Divulgadores |Doação| Camisa Guia Do Hacker|


            |Rádio GH||Regras e Termos de Uso|SEGURANÇA GH|


            sigpic


            Comment


            • Font Size
              #7
              Parabéns, ótimo tutorial, continue assim

              vlw
              sigpic
              Faça parte você também pela campanha da vida: Eu cuido da Minha, você cuida da sua!

              Comment

              X
              Working...
              X