Ofusque seu aplicativo Silverlight com Dotfuscator
Sobre Dotfuscator
Dotfuscator é um ofuscador que dificulta a leitura do código fonte quando os aplicativos escritos com o Framework .NET são desmontados. Dotfuscator está disponível em versões de varejo gratuitas e pagas que vêm com o Visual Studio.
A versão gratuita só está disponível com muitos recursos limitados e a suposição de que o Visual Studio está em execução, mas qualquer pessoa com visual studio instalado pode usá-lo. A versão paga tem muitos recursos poderosos de ofuscação que não estão disponíveis na versão gratuita, mas pode ser irritante que seja oferecido a um preço que é difícil para o público em geral pagar.
O Dotfuscator pode ter diferentes recursos, preços e edições, dependendo da versão, então consulte o site a seguir para obter detalhes.
Código analisado
Como mencionado acima, os aplicativos criados com o Framework .NET podem facilmente ler o código-fonte original desmontando, mas o que realmente acontece é que quando você desmonta um arquivo de montagem como mostrado na figura, a maioria do código-fonte original, como espaços de nome, nomes de classe e nomes de métodos podem ser reproduzidos.
Procedimento de ofuscação
Comece criando o aplicativo Silverlight como de costume e fazendo uma compilação de lançamento. Aqui, estamos criando um aplicativo que só coloca dois botões.
Na pasta Bin\Release da pasta onde o projeto está localizado, digite . xap" é um arquivo de pacote que resume os programas e arquivos usados em aplicativos Silverlight.
Na verdade, este arquivo é compactado e compilado como um arquivo ZIP, então a extensão é ". zip".
Foi alterado para um arquivo ZIP.
Quando você abre o arquivo, ele contém um arquivo manifesto e um DLL. Esta DLL é a versão compilada do programa que é executado como um aplicativo.
A propósito, o arquivo DLL também é colocado na pasta Liberação quando ele é construído, então desta vez ofuscaremos este arquivo.
No menu Visual Studio, selecione Ferramentas e selecione Dotfuscator e Analytics preventivos.
Ao iniciar pela primeira vez, o diálogo "Contrato de Licença" será exibido, então leia o conteúdo cuidadosamente, verifique "Sim, aceito o contrato de licença" e clique no botão "OK".
Começa o Dotfuscator e Analytics Preventivos CE.
Selecione "Entradas" na árvore à esquerda e clique no botão "Adicionar entrada".
Selecione o arquivo DLL gerado durante a compilação.
Selecione o arquivo DLL adicionado e desmarque o modo de biblioteca > conversão XAML.
Se o "modo biblioteca" for verificado, as classes e métodos definidos em público não serão ofuscados.
Se a "conversão XAML" for verificada, as classes definidas em XAML serão ofuscadas, mas dependendo de como você criá-la, causará um erro de inicialização, portanto, se ocorrer, por favor, desmarque-o.
Basicamente, todas as classes, métodos, propriedades e nomes de variáveis são ofuscados, mas se você não quiser ofuscar um espaço de nome ou classe específico devido à serialização, selecione "Renomear" da árvore à esquerda, selecione a guia "Excluir" e verifique o espaço de nome ou classe de destino.
Em Regras Incorporadas, certifique-se de que fields for Silverlight e WPF UserControls sejam verificados. A verificação disso fará com que o campo UserControls seja ofuscado e será executado com sucesso. Você pode desmarcar se parece funcionar corretamente mesmo depois de ofuscar.
Quando terminar, clique no botão "Construir projeto" na barra de ferramentas.
Se houver alterações no projeto, o diálogo de confirmação de salvamento do projeto será exibido, então clique em "Sim" para salvar.
O projeto é chamado de ". arquivo xml". Arquivos ofuscados são salvos no mesmo local.
Aguarde a construção ser concluída quando começar. Note que quanto maior o programa, mais tempo leva para ser construído. Quando parece a figura, a construção está completa.
O campo de mensagens mostra o progresso da compilação e um breve resultado, como o quão ofuscada ela foi.
Se você selecionar resultados da árvore à esquerda, você pode ver detalhes sobre como os nomes de classe e método foram alterados.
Sob os nomes de classe e método, haverá um ícone Dotfuscator e nomes como "a" e "b", que será o nome ofuscado. Ao alterar o nome da classe ou nome do método para um nome sem sentido desta forma, mesmo que seja desmontado, ele pode tornar o conteúdo do código-fonte difícil de ler.
O arquivo ofuscado é criado em uma pasta chamada "Dotfuscated" na pasta do arquivo .xml salvo no Projeto Salvar. Além do arquivo ofuscado, um arquivo "Map.xml" foi criado, mas este é o resultado da ofuscação e não é usado.
Se você desmontar o arquivo ofuscado, você pode ver que alguns nomes de classe e método foram alterados para "a" ou "b".
Desta vez, o projeto padrão criado foi ofuscado quase como era, então acho que há uma imagem de que não é tão ofuscada, mas acho que o efeito da ofuscação fica mais claro porque o número de classes etc. aumenta à medida que o projeto cresce.
Como um aparte, . Bibliotecas do NET Framework e não estão sujeitas a renomeação porque são montagens que já estão instaladas no Windows, por exemplo.
Silverlight não usa DLLs como está, então eles são embalados como arquivos XAP. Como mencionado no início, um arquivo XAP é apenas uma alteração na extensão do arquivo ZIP, por isso cria um arquivo ZIP coletando os arquivos contidos no arquivo XAP e os DLLs ofuscados.
A criação de um arquivo ZIP pode ser feita usando recursos padrão do SISTEMA OPERACIONAL.
Um arquivo ZIP é criado.
A extensão é alterada para '. xap" e se o nome do arquivo for diferente, altere-o para o nome do arquivo do pacote original.
Coloque o arquivo XAP em um local de distribuição.
Por favor, verifique a operação e veja se funciona corretamente.
Se ele não começar, verifique até que funcione normalmente reduzindo o código ofuscado. Note que silverlight muitas vezes fica preso em assuntos relacionados ao XAML.
Embora as instruções não estejam listadas aqui, se você quiser assinar um programa, construa-o em um estado assinado por atraso, ofusque a montagem e, em seguida, re-assine. Mesmo se você ofuscá-lo enquanto ele é assinado, o código de assinatura anexado no momento da compilação e o código de assinatura após ofuscação não corresponderão, então você não será capaz de iniciá-lo.
Neste artigo, listei os passos para a versão gratuita, mas se você usar a versão paga, você pode realizar ofuscação mais complexa e evitar a própria desmontagem. No entanto, a ofuscação tem o potencial de causar vários efeitos adversos, por isso, quando a ofuscação é feita, é necessário considerar se funcionará corretamente desde o início do projeto.