Ofusque seu aplicativo Silverlight com Dotfuscator

Página atualizada :
Data de criação de página :

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.

Dotfuscator

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.

Release ビルド

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.

XAP ファイル

Na verdade, este arquivo é compactado e compilado como um arquivo ZIP, então a extensão é ". zip".

拡張子を .zip に変更

Foi alterado para um arquivo ZIP.

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.

ZIP ファイルの中身

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".

PreEmptive Dotfuscator And Analytics を選択

Começa o Dotfuscator e Analytics Preventivos CE.

PreEmptive Dotfuscator And Analytics CE

Selecione "Entradas" na árvore à esquerda e clique no botão "Adicionar entrada".

入力の追加

Selecione o arquivo DLL gerado durante a compilação.

ビルドで生成した DLL ファイルを選択

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.

「ライブラリ モード」「XAML の変換」のチェックを外す

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.

Silverlight および WPF UserControls のフィールド

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.

ファイルを ZIP 化

Um arquivo ZIP é criado.

ZIP ファイル

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.

XAP ファイルに変更

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.