Engenharia Reversa com dotPeek da JetBrains

Muitas vezes quando trabalhamos em uma software house precisamos trabalhar com software legado, e/ou precisamos migrar um sistema que foi desenvolvimento por outra empresa e o cliente apenas possui o projeto finalizado (somente dlls) e nada do código fonte do projeto.

O que fazer quando estamos nesse mato sem cachorro? Bueno, poderíamos tentar inúmeras vezes solicitar ao cliente que entrasse em contato com o desenvolvedor do projeto para verificar se ele ainda possui o código fonte do projeto e torcer para que ele tenha salvo em algum lugar seguro que não tenha perdido.

Porém caso não exista a possibilidade de executar o caminho feliz informado anteriormente ainda existe a possibilidade de realizar a engenharia reversa do projeto, e hoje irei descrever sobre o dotPeek decompiler da JetBrains.

A utilização da ferramenta é super simples, i.e. File > Open (depois é só selecionar a dll que deseja obter o código fonte).
Obs.: Torça para que a dll não esteja com o código ofuscado.

Na aba Assembly Explorer irá mostrar a dll com todas as classes contidas no projeto, será apenas necessário abrir a árvore para obter acesso aos métodos, propriedades e atributos.

dotPeek assembly explorer

Na imagem acima solicitei para que seja exibido o código-fonte do método btnProducao_Click da classe iniciarproducao e o resultado dotPeek faz todo o resto para nós, e o resultado é o código abaixo.

dotPeek assembly explorer decompiler

O bom da ferramenta é que nos ajuda a trabalhar com software legados, onde não temos acesso ao código fonte.
Porém o ruim é saber que muitos projetos que estão sendo utilizados pelas empresas a equipe de programação não possui muita instrução com relação a segurança do software, pois além de não efetuar a ofuscação do código, as vezes não se preocupa como é realizado a comunicação com a base de dados (aka banco de dados), como pode ser ser observado na imagem acima o desenvolvedor não se preocupou em realizar as buscas utilizando os próprios recursos do entity framework e sim fiz o código na mão.

Ao começar a utilizar o dotPeek sem querer descobri que ele funciona igual ao Visual Studio, i.e. com as mesmas teclas de atalho, onde eu vou no método e pressiono a tecla de atalho F12 e aplicativo vai indo através das definições (Impressionante!)

Para quem não conhece como proteger o acesso ao sistema, sugiro uma boa leitura The Open Web Application Security Project (OWASP)

Deixe uma resposta

Nome *
E-mail *
Site