Por Marcio Silva Brasil
ml_s_brasil@hotmail.com
Marcio S. Brasil é líder do GANI.Net. Atualmente trabalha como analista-desenvolvedor com aplicações .Net em Windows, Web. Está cursando graduação em Sistemas de Informação.

Utilizando o Dotfuscator


O Dotfuscator é um ofuscador de código que faz parte do pacote de programas do Visual Studio .Net 2003. A utilização de um ofuscador de código em .Net e torna necessária, pois como sabemos um programa compilado não gera um código nativo, mas sim um código em IL (Intermediate Language) que é entendido pela CLR, então temos o seguinte problema, a partir da IL é possível descompilar o programa, com a possibilidade de que outra pessoa veja o código fonte da sua aplicação, e isto em mentes maldosas pode se tornar um desastre para sua aplicação.

Um exemplo de um programa que faz isso é o Anakrino, que pode ser baixado em http://www.saurik.com/net/exemplar/ , é um programa free e open source que faz uso de reflection para a descompilação. Baixem este programa pois vamos usá-lo em nosso exemplo.

Agora vamos criar uma aplicação para podermos fazer uso do Dotfuscator, por questões de agilidade o exemplo foi criado pelo template Dataform do Visual Studio .Net, que oferece um assistente para criação do form com a ligação dos dados, criação de um Dataset tipado e todas as subs necessárias para as operações básicas com o banco de dados. Então vamos lá:

 

Peça um novo projeto:


Exclua o form criado pelo Visual Studio, este não nos interessará, peça um New item, DataForm:


Use o assistente de modo que ele mostre alguma tabela, neste exemplo utilizei a tabela Custumers do Northwind:


Vamos compilar a aplicação em modo Release para gerar o arquivo em que vamos trabalhar.

Após baixar e descompactar o Anakrino, execute-o (para o Anakrino ser executado no Framework 1.1 é preciso fazer o download e a substituição do arquivo Anakrino.xml, disponível no mesmo link de download do programa), abra (File... Open...) o executável que você acabou de compilar. Note que ele ele é adcionado a guia "Reflection", como mostra a figura:


Neste ponto é possível vermos todas as propriedades, classes, subs e todo o código fonte de cada sub no painel da direita, note que os nomes das classes, namespaces e variáveis permanecem os mesmos, de fácil entendimento do código a quem vê-lo. No .Net não é possível bloquear essa engenharia reversa, por causa da arquitetura de IL, mas é possível que façamos com que o resultado dessa reversidade seja mais complicado de ser entendido. Vejamos como fazer isto:

 

Abra o Dotfuscator e peça um novo projeto e dê OK:


Na guia "Trigger" clique em "Browse" e selecione o arquivo a ser ofuscado (*.dll / *.exe). Crie um diretório dentro do diretório "bin" do seu executável chamado "Output" para podermos comparar a descompilação posterior dos executáveis.

Na guia build coloque o Temporary Directory e o Destination Directory para o diretório "Output" que acabamos de criar. Salve o projeto e dê um "File... Build", o arquivo da guia trigger será ofuscado. Execute novamente o Anakrino e abra o arquivo da pasta bin (não ofuscado) e o da pasta output, como podemos ver o Dotfuscator trocou o nome das classes e das variáveis de forma a tornar o código da descompilação menos entendível.

 

 


É importante para melhorarmos os próximos artigos ter um feedback, para opinões, sugestões, críticas ou sugestões de assuntos para artigos entre em contato pelo email ml_s_brasil@hotmail.com .

Dicas para quem está começando:
Veja os próximos eventos
que você não pode perder :

22/11/2008 SQL Launch -
Linhares - ES
Por : devASPNet


22/11/2008 SQL Launch- SQL Server 2008
Rio Paranaiba - Viçosa - MG
Por : devASPNet


22/11/2008 SQL Launch - SQL Server 2008
Volta Redonda - RJ
Por : devASPNet


22/11/2008 SQL Launch- SQL Server 2008
Franca - SP
Por : devASPNet


22/11/2008 SQL Launch - SQL Server 2008
Canoinhas - SC
Por : devASPNet


22/11/2008 SQL Launch - SQL Server 2008
Tefé - AM
Por : devASPNet


25/11/2008 SQL Launch - SQL Server 2008
Rio de Janeiro - RJ
Por : devASPNet


27/11/2008 SQL Lauch- SQL Server 2008
São Paulo - SP
Por : devASPNet


28/11/2008 SQL Launch - SQL Server 2008
São Paulo - SP
Por : devASPNet


29/11/2008 SQL Launch- SQL Server 2008
Pedro Leopoldo - MG
Por : devASPNet


29/11/2008 SQL Launch- SQL Server 2008
Petropolis - RJ
Por : devASPNet


29/11/2008 SQL Launch
Floriano - PI
Por : devASPNet


29/11/2008 SQL Launch - SQL Server 2008
Rio de Janeiro - RJ
Por : devASPNet


29/11/2008 SQL Launch - SQL Server 2008
Natal - RN
Por : devASPNet


29/11/2008 SQL Launch- SQL Server 2008
Santa Maria - RS
Por : devASPNet


29/11/2008 SQL Launch
Ituiutaba - MG
Por : devASPNet


5/12/2008 Cloud Computing e o Windows Azure
São Paulo - SP
Por : devASPNet


6/12/2008 SQL Server 2008 Community Launch
São Paulo - SP
Por : devASPNet

Leituras imperdíveis para quem está começando:

º Otimizando a performance no ASP.NET::..
º Criando objetos de paginação personalizados na grid::..
º Uma cesta de compras em ASP.NET::..
º Utilizando o Refresh de parâmetros no .NET::..
º ASP.NET FORMS Authentication::..
º Utilizando propriedades dinâmicas no .NET::..
º Corrigindo problemas de deleção em grid com paginação::..
º Cuidado com os componentes de validação::..
º Otimizando o InitializeComponent::..
º Movendo fonte de aplicações entre máquinas::..
º Agilizando a performance da IDE do VS.NET::..
º Utilizando Short Circuit no VB.NET::..


























  Parceiros:
20% de desconto para os membros do grupo na aquisição de livros e inscrição para eventos

Receba dicas de programação e programação .NET:
E-mail:
Incluir Excluir