Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Um pouco sobre Obfuscated Code

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

  • Font Size
    #1

    Artigo Um pouco sobre Obfuscated Code

    Provavelmente você já ouviu falar sobre Obfuscated Code , isso nada mais é do que ofuscar o código original do programa para dificultar sua compreensão , ela é usada para dificultar engenharia reversa , para melhor camuflar um vírus entre outras coisas .Hoje eu irei exemplificar como pode ser usada para dificultar um pouco a ER.

    Eu irei fazer um simples exemplo em C para ofuscar uma string , com essa simples ofuscação diminuimos cerca de 10% de chance de um Reverser iniciante conseguir quebrar nosso programa , muitas vezes as strings dentro dos programas são usadas pelos reversers como referencias para chegar a certos pontos de comparação do software , como comparações de serial number ou até mesmo outras informações vitais.

    Esse simples tipo de ofuscação eu consegui retirar quando estava programando em Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... eu percebi que para escrevermos uma string devemos primeiramente alocar os valores de cada letra (ASCII) em células da memória e depois voltar e imprimi-las uma a uma , mas séria muito trabalhoso alocar valor por valor em cada célula(vamos chamar de variavél agora) então podemos fazer loops para alocar determinados valores e depois ir trabalhando somente com as variaveis usadas.

    Eu irei usar meu nome como exemplo mostrarei como ela é apresentada pelo Debugger antes e depois da ofuscação, primeiramente vou observar qual a maior letra lembrando sempre de procurar a maior letra em alguma tabela ASCII , por exemplo no meu nome a letra com maior valor é "v" e a de menor valor é "G" tendo respectivamente 118 e 71 , bem se já sabemos que o maior valor é 118 podemos declara-lo em uma variavel ,mas resolvi usar um loop com usando o comando while para ficar mais interessante , vou começar da primeira letra , postarei o source em C comentando linha por linha depois:

    Bem o que eu fiz foi colocar um contador valendo 10 e a variavel nome valendo 61 , o primeiro while trata de imprimir a primeira letra que é G , o que vou fazer é um while que adicione 1 a cada loop isso sera feito 10 vezes assim chegando a letra G , depois adiciono o valor de 46 a variavel atual 71+46=117 que é u depois subtraio 2 que resulta em um s , em seguida uso o comando nome++ que seria é incrementa essa variavel em 1 resultando em t , depois subtraio 9 resultando em k mais não a imprimo , novamente temos um loop usando while que faz com que a variavel nome seja decrementada 10 vezes ou seja k=107 - 10=97 que é a letra a e imprimimos , depois adicionamos a ela a soma de 7*3 e resulta em v e por ultimo subtraimos 7 que resulta em o.

    Como pode notar é meio trabalhoso ,mais muito eficiênte , as limitações de Obfuscated vem somente da sua limitação mental , existe muitos outros jeitos e maneiras basta você ver qual é a melhor para você usar , vamos ver nosso exemplo com obfuscated e sem usa-la , primeiro vamos comparar o tempo de execução de cada um usando o comando time do linux:


    Como podemos ver o tamanho dos sources é diferente o comob.c que está com o Obfuscated tem 565 bytes enquanto o outro tem apenas 83 bytes , depois da compilação o tamanho é igual para os dois 8,9 K e o tempo de execução dos dois é quase que identico variando no máximo de 1 milisegundo de um para outro.

    Sem Obfuscated:


    Com Obfuscated:


    Como pode ver a string não aparece no OllyDbg , bem é isso missão cumprida , até a próxima

    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...
    @creatinguseless
    Similar Threads

  • Font Size
    #2
    Mais um tutorial exemplar do Gustavo!
    ja crackiei mto programa com o OllyDbg mais nunca utilizei esse metodo
    tais de parabéns brother..
    ~# Criado pela [IN]Segurança #~

    Comment


    • Font Size
      #3
      Valeu Arthur , o Olly é realmente um grande Debugger
      @creatinguseless

      Comment


      • Font Size
        #4
        Muito Bom, Gustavo.
        Nota 10 =P

        Flws
        Black-Hat.

        Comment


        • Font Size
          #5
          mais um bom tuto gustavo...
          sigpic

          Comment

          X
          Working...
          X