Aplicativos ofuscados criados usando Dotfuscator

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

resumo

Como os aplicativos baseados no Framework .NET são criados no que é chamado de linguagem intermediária comum, eles podem ser lidos de forma próxima ao código-fonte original usando ferramentas de desmontagem e afins. Esta seção descreve como ofuscar Dotfuscator, o ofuscador que vem com o Visual Studio, para ofuscar nomes de classe e método em um formato que não é facilmente legível.

Estamos falando sobre isso aqui usando o Visual Studio 2010, mas você pode usar o Dotfuscator em 2005 e 2008 também.

Dotfuscator を使用して作成したアプリケーションを難読化する

Ambiente Operacional

Versões de estúdio visual suportadas

  • 2005
  • 2008
  • 2010

Verifique a versão visual do estúdio

  • 2005
  • 2008
  • 2010

substância

Sobre Dotfuscator

Dotfuscator é uma ferramenta de ofuscação que dificulta a leitura do código fonte quando desmontado em aplicativos escritos com o Framework .NET. Dotfuscator vem com Visual Studio gratuitamente e por uma taxa.

A versão gratuita não está disponível a menos que muitos de seus recursos sejam limitados ou visual Studio seja iniciado, mas qualquer pessoa pode usá-la desde que tenha o Visual Studio instalado. A versão paga tem muitos recursos poderosos de ofuscação que não são encontrados na versão gratuita, mas é oferecido a um preço que é difícil para o público em geral pagar.

O Dotfuscator tem diferentes características, preços e edições, dependendo da versão, então consulte a seguinte página inicial para obter detalhes.

Procedimento de ofuscação

難読化していないアプリケーションの逆アセンブル結果

Mencionei anteriormente que os aplicativos criados com o Framework .NET podem desmontar e ler facilmente o código-fonte original, mas a situação real é que se você desmontar o arquivo exe como mostrado na figura à direita, você pode quase reproduzir o código fonte original, como namespace, nome da classe, nome do método, etc.

Descreve os passos para tornar esses nomes confusos e ofuscados.

Dotfuscator Software Services

Criar um aplicativo no Visual Studio e criar um arquivo exe é exatamente a mesma maneira normal de criá-lo.

Depois de construir e criar o arquivo exe, selecione Ferramentas no menu Visual Studio e selecione Dotfuscator Software Services.

使用許諾契約書

Quando você começa pela primeira vez, o diálogo "Contrato de Licença" é exibido como mostrado na figura à direita, então leia o conteúdo cuidadosamente, verifique "Sim, eu concordo com o contrato de licença" e clique no botão "OK".

Dotfuscator Software Services

O Dotfuscator Software Services é iniciado.

入力アセンブリの追加

O exe (ou arquivo dll) a ser ofuscado não precisa ser do projeto atualmente aberto.

Selecione Conjuntos de entrada da árvore à esquerda e clique nos Conjuntos de Entrada à direita para clicar no ... botão.

難読化する exe ファイル

Selecione o arquivo exe que deseja ofuscar.

追加したアセンブリ

O arquivo exe selecionado é adicionado à lista. Se você quiser ofuscar vários arquivos, clique no botão "..." após a segunda linha para adicioná-los.

プロジェクトのビルド

Depois de selecionar o exe que deseja ofuscar, clique no botão Construir projetos na barra de ferramentas.

プロジェクトの保存

Se houver alguma alteração 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". O arquivo exe ofuscado também será salvo no mesmo local, então salve o arquivo .xml para qualquer pasta.

ビルド

A construção começará e esperará até que esteja completa. Note que quanto maior o programa, mais tempo leva para ser construído. Se parecer com a figura à direita, a construção está completa.

O campo de mensagens exibe resultados simples, como o progresso da compilação e o quão ofuscada ela foi.

難読化結果

Se você selecionar "Resultado" da árvore à esquerda, poderá ver detalhes de como os nomes da classe e do método foram alterados.

Abaixo dos nomes de classe e método, há um ícone Dotfuscator e um nome como "a" ou "b", que é o nome ofuscado. Ao alterar o nome da classe ou do método para um nome sem sentido como este, você pode tornar o conteúdo do código fonte difícil de ler mesmo que seja desmontado.

難読化したアセンブリ

Arquivos exe ofuscados são criados na pasta de .xml arquivos salvos no Save Project, chamado "Dotfuscated", e são criados nele. Além do arquivo exe, um arquivo "Map .xml" foi criado, mas este é o resultado da ofuscação e não deve ser usado.

難読化したアセンブリの実行時エラー

Ex-ofuscados podem ser executados e usados como são. No entanto, há casos em que não pode ser iniciado devido a um erro desconhecido, como mostrado na figura à direita.

Desta vez, escrevi um aplicativo no WPF, mas como o arquivo XAML da primeira janela a ser exibida é especificado como uma sequência, o renomeo devido à ofuscação fará com que a referência seja perdida, resultando em um erro.

Os aplicativos do Windows Form fazem referência diretamente à classe From, para que possam ser executados sem erros, mesmo que estejam ofuscados. No entanto, se você especificar um nome de classe, um tipo de enum, etc. pelo nome, você precisa ter cuidado porque existe a possibilidade de que o mesmo erro ocorra.

難読化の除外

Se você não quiser ofuscar uma classe ou algo assim, selecione Renomear da árvore no lado esquerdo do Dotfuscator e selecione Excluir na guia do meio.

Cada namespace, nome da classe, etc. serão exibidos na lista à direita, então verifique os itens que você não deseja ofuscar.

Aqui, eu não quero mudar o nome da classe da janela para ser exibido primeiro, então eu checo "MainWindow".

難読化から除外されたクラス

Quando você faz a compilação, você pode ver que não há nome alterado sob o nome de classe em MainWindows. (A classe app foi convertida em "a")

難読化したアセンブリの実行

Quando você executa o arquivo exe ofuscado, você pode ver que a janela é exibida corretamente.

難読化後の逆アセンブル

Se você desmontar o arquivo exe ofuscado, você pode ver que o nome da classe e o nome do método foram alterados para "a" ou "b" corretamente.

Mas como um aparte. Bibliotecas do NET Framework, como nomes de classe, não estão sujeitas à renomeação porque são montagens que já estão instaladas no Windows e em outros lugares.

Desta vez, ofusco o projeto padrão criado como ele é, então eu acho que há uma imagem que não é tão ofuscada, mas eu acho que o efeito da ofuscação fica claro porque o número de classes etc. aumenta à medida que o projeto cresce.

Além disso, embora tenhamos incluído o procedimento na versão gratuita desta vez, a versão paga permite uma ofuscação mais complexa e também evita a própria desmontagem. No entanto, a ofuscação tem vários efeitos adversos e potencial para ocorrer, por isso, quando o ofuscante é realizado, é necessário fazê-lo considerando se funcionará corretamente desde o início do projeto.