Skip to main content

O que é um ofuscador?

Um ofuscador é um processo ou dispositivo cujo objetivo é tornar um programa mais difícil de entender. Geralmente, a abordagem do ofuscador é adotar um programa relativamente simples e tornar o código subjacente mais complexo. Embora o usuário final provavelmente não note uma diferença na maneira como o código é executado, a função do ofuscador dificulta a invasão do código e o seqüestro do programa. Nessa perspectiva, o uso desse tipo de ferramenta pode ser visto como uma medida de segurança.

O nome do dispositivo ou processo é emprestado da palavra "ofuscar", que se refere a complicar uma apresentação verbal na tentativa de confundir ou desconcertar. Da mesma maneira, o ofuscador procura tornar o processo de compreensão do código um tanto desconcertante. Isso basicamente torna mais difícil o comprometimento do código, pois a verdadeira essência do código é tão profundamente oculta ou ofuscada que é difícil extrair as partes essenciais do código.

Existem várias linguagens de programa que tendem a responder muito bem ao processo de ofuscação. O C ++ está entre as linguagens mais populares e permite empregar um ofuscador com relativa facilidade, sem danificar a função do código base. Da mesma maneira, C e Perl também tendem a funcionar bem com o uso de ofuscação, tornando relativamente fácil adicionar um elemento de proteção a qualquer programação escrita nessas três linguagens.

Embora o objetivo de um ofuscador seja intencionalmente tornar o código mais difícil de desvendar, também é necessário garantir que as pessoas autorizadas a trabalhar com a programação possam fazê-lo sem serem prejudicadas pelo processo de ofuscação. Para esse fim, é possível empregar várias técnicas para solucionar as complicações adicionadas e obter o código base. Esse processo é conhecido como engenharia reversa, pois envolve essencialmente desfazer as complicações para ver a imagem verdadeira. A divisão de programas é um exemplo de técnicas de engenharia reversa usadas para ocultar um conjunto de códigos.

Embora o ofuscador ofereça algum grau de proteção, é importante perceber que esse processo não deve ser o único meio de segurança empregado para proteger a programação. Outras estratégias de segurança também devem ser empregadas para garantir que inserções malévolas não sejam recebidas pela rede e permitidas a entrada nos códigos existentes.