Sobre a Comunidade Dotfuscator & Visual Studio
Proteção preventiva - O Dotfuscator fornece proteção abrangente de aplicativos .NET que se encaixa facilmente em seu ciclo de vida seguro de desenvolvimento de software. Utilize-o para fortalecer, proteger e podar aplicações de desktop, móveis, servidores e incorporadas para ajudar a proteger segredos comerciais e outras propriedades intelectuais (IP), reduzir a pirataria e a falsificação e proteger contra violação e depuração não autorizada. O Dotfuscator funciona em assemblies compilados sem a necessidade de mais programação ou mesmo acesso ao código-fonte.
Por que a proteção é importante
É importante proteger a sua propriedade intelectual (IP). O código do seu aplicativo contém detalhes de design e implementação, que podem ser considerados IP. No entanto, os aplicativos criados no .NET Framework contêm metadados significativos ede código intermediário de alto nível, tornando-os fáceis de fazer engenharia reversa, apenas usando uma das muitas ferramentas gratuitas e automatizadas. Ao impedir e interromper a engenharia reversa, é possível evitar a divulgação não autorizada de propriedade intelectual e demonstrar que o seu código contém segredos comerciais. O Dotfuscator pode ofuscar os seus assemblies .NET para dificultar a engenharia reversa, mantendo o comportamento original da aplicação.
Também é importante proteger a integridade da sua aplicação. Além da engenharia reversa, agentes mal-intencionados podem tentar piratear seu aplicativo, alterar o comportamento do aplicativo em tempo de execução ou manipular dados. Dotfuscator pode injetar no seu aplicativo a capacidade de detectar e responder a usos não autorizados, incluindo adulteração, depuração por terceiros e dispositivos com root.
Para obter mais informações sobre como o Dotfuscator se encaixa em um ciclo de vida de desenvolvimento de software seguro, consulte a página SDL App Protection da PreEmptive Solutions.
Sobre a Comunidade Dotfuscator
Sua cópia do Microsoft Visual Studio inclui uma cópia do PreEmptive Protection - Dotfuscator Community, gratuito para uso pessoal. (Esta versão gratuita era anteriormente conhecida como Dotfuscator Community Edition ou Dotfuscator CE.)
Para obter instruções sobre como instalar a versão do Dotfuscator Community incluída no Visual Studio, consulte a página Instalação .
A Dotfuscator Community oferece uma gama de serviços de proteção e fortalecimento de software para programadores, arquitetos e testers. Exemplos de de ofuscação do .NET e outros recursos do Application Protection incluídos na Comunidade Dotfuscator são:
- Renomear de identificadores para dificultar a engenharia reversa dos assemblies compilados.
- Anti-adulteração para detetar a execução de aplicativos adulterados e encerrar ou responder a sessões adulteradas.
- Anti-debug para deteção da ligação de um depurador a uma aplicação em execução e terminar ou responder a sessões depuradas.
- dispositivo anti-rooteado para detetar se o aplicativo está sendo executado em um dispositivo Android enraizado e encerrar ou responder a sessões nesses dispositivos.
- Comportamentos de expiração de aplicativos que codificam uma data de "fim de vida" e encerram sessões de aplicativos expirados.
Para obter detalhes sobre esses recursos, incluindo como eles se encaixam na sua estratégia de proteção de aplicações, consulte a página Capacidades do .
Dotfuscator Community oferece proteção básica desde o início. Ainda mais medidas de proteção de aplicativos estão disponíveis para usuários registrados da Comunidade Dotfuscator e para usuários de Proteção Preventiva - Dotfuscator Professional, líder mundial .NET Obfuscator. Para obter informações sobre como melhorar o Dotfuscator, consulte a página Melhorias de .
Primeiros passos
Para começar a usar a Dotfuscator Community no Visual Studio, digite dotfuscator
na Caixa de Pesquisa (Ctrl+Q).
- Se o Dotfuscator Community já estiver instalado, na Caixa de Pesquisa , aparece a opção para iniciar o Dotfuscator Community sob a seção Menus. Para obter detalhes, consulte a página "Introdução" no Guia Completo do Usuário da Comunidade Dotfuscator.
- Se a Comunidade Dotfuscator ainda não estiver instalada, em vez disso, a Caixa de Pesquisa mostra Instalar Proteção Preemptiva - Dotfuscator sob o cabeçalho Componentes Individuais. Consulte a página Instalação para obter detalhes.
Você também pode obter a versão mais recente da Comunidade Dotfuscator página de Downloads do Dotfuscator em preemptive.com.
Atualização da Comunidade Dotfuscator 5
Saiba como atualizar para o PreEmptive Protection - Dotfuscator Community 6.
Dependendo do seu histórico de instalação e da versão do Visual Studio, você pode estar executando o Dotfuscator Community 5, a versão principal anterior. Em caso afirmativo, você deve atualizar, porque é importante garantir que seu código esteja recebendo as medidas de proteção mais recentes. Os upgrades estão disponíveis gratuitamente.
Este artigo explica como determinar qual versão você tem atualmente, como atualizar para a versão 6, se necessário, e quais recursos foram substituídos ou removidos entre as duas versões.
Determinar a versão do Dotfuscator
Se você não tiver certeza de qual versão do Dotfuscator você está executando, você pode determinar a versão fazendo uma das seguintes opções:
Inicie a Comunidade Dotfuscator de interface gráfica do usuário (GUI) acessando o menu Ferramentas de do Visual Studio e selecionando Proteção preventiva - Comunidade Dotfuscator.
Na GUI do Dotfuscator, abra o menu Ajuda e selecione Sobre... para exibir a tela Sobre.
Esta tela lista a versão do Dotfuscator.
Se tiver o Dotfuscator integrado na sua compilação com a interface de linha de comandos , pode também verificar os seus registos de compilação para encontrar uma linha como o exemplo seguinte:
Dotfuscator Community Version 5.42.0.9514-e0e25f754
Você pode precisar aumentar a verbosidade da sua compilação para visualizar este texto. Para Visual Studio, consulte Configurações de Verbosidade.
O primeiro inteiro da versão, antes do primeiro ponto .
, indica a versão principal do Dotfuscator. Se o primeiro número inteiro estiver 5
, então você deve executar as etapas de atualização nesta página, para que você possa aproveitar os recursos mais recentes do Dotfuscator 6 e atualizações de proteção.
Instruções de atualização
Esta seção inclui conjuntos de instruções para atualizar usos típicos da Comunidade Dotfuscator da versão 5 para a versão 6.
Instale o Dotfuscator 6
Dotfuscator Community é distribuído como uma extensão para Visual Studio. As instruções para instalar o Dotfuscator 6 variam de acordo com a versão do Visual Studio que você tem:
Visual Studio 2022 Dotfuscator Community 6 está incluído no Visual Studio 2022.
Visual Studio 2019 Dotfuscator Community 6 está incluído em versões posteriores do Visual Studio 2019 (versão 16.10.0 e posterior). Atualize o Visual Studio 2019 para a versão mais recente. A atualização do Visual Studio atualiza automaticamente qualquer instalação do Dotfuscator Community 5 para o Dotfuscator Community 6.
Se ainda não tiver o Dotfuscator instalado, atualize o Visual Studio primeiro e, em seguida, consulte Instalação.
Além das versões com o Visual Studio, você sempre pode obter as versões mais recentes da Comunidade Dotfuscator na página Downloads do Dotfuscator.
Visual Studio 2017 Esta versão do Visual Studio só foi fornecida com o Dotfuscator Community 5. No entanto, você pode instalar ou atualizar para Dotfuscator Community 6 indo para a página Dotfuscator Downloads e selecionando o link de download apropriado.
Execute o arquivo de
.vsix
baixado e siga as instruções para instalar o Dotfuscator Community 6 no Visual Studio. As instalações existentes do Dotfuscator Community 5 também estão sendo atualizadas.Versões anteriores do Visual Studio Dotfuscator Community 6 não é suportado nestas versões do Visual Studio. Recomendamos atualizar para uma versão mais recente do Visual Studio, ou atualizar da Dotfuscator Community para o Dotfuscator Professional.
Se já tiveste registado Dotfuscator Community 5, esse registo é automaticamente convertido na primeira vez que executares o Dotfuscator Community 6.
Atualizar caminhos para a CLI
Se você usou anteriormente a de interface de linha de comando (CLI) do Dotfuscator 5 para proteger seu aplicativo, precisará atualizar o caminho para a CLI em todos os projetos e criar scripts que façam referência a ela.
A razão pela qual um caminho para a CLI do Dotfuscator agora pode ser inválido é porque os nomes de alguns dos executáveis instalados com a Comunidade Dotfuscator foram alterados no Dotfuscator 6. Essa alteração faz com que esses nomes executáveis sejam os mesmos na Comunidade Dotfuscator e no Dotfuscator Professional.
Executável para... | Dotfuscator 5 | Dotfuscator 6 |
---|---|---|
GUI | dotfuscator.exe |
dotfuscatorUI.exe |
CLI | dotfuscatorCLI.exe |
dotfuscator.exe |
Observação
O caminho da CLI também pode ser inválido se o utilizador atualizar entre versões principais do Visual Studio ou alternar entre edições do Visual Studio, pois a CLI do Dotfuscator está instalada no diretório de instalação do Visual Studio. Os sintomas e a solução listados abaixo também se aplicam a esse cenário.
Se sua compilação estiver usando um caminho de CLI Dotfuscator inválido, você pode obter erros como um dos seguintes exemplos:
'"[...]\PreEmptiveSolutions\DotfuscatorCE\dotfuscatorCLI.exe"' is not recognized as an internal or external command, operable program or batch file.
The command ""[...]\PreEmptiveSolutions\DotfuscatorCE\dotfuscatorCLI.exe" Dotfuscator.xml" exited with code 9009.
Para atualizar sua compilação para usar o caminho correto da CLI:
Inicie o GUI do da Comunidade Dotfuscator acedendo ao menu Ferramentas de do Visual Studio e selecionando PreEmptive Protection - Comunidade Dotfuscator.
Na GUI da Comunidade Dotfuscator, vá para o menu Ferramentas e selecione Prompt de Comando Dotfuscator.
No prompt de comando aberto, digite
where dotfuscator.exe
. Copie o primeiro caminho exibido para um documento de texto sem formatação para referência posterior. Este caminho é o novo caminho para a CLI do Dotfuscator Community 6.Abra o projeto ou a configuração de compilação conforme apropriado para seu sistema de compilação.
- Para projetos do Visual Studio, abra o arquivo de projeto (
.csproj
,.vbproj
ou.fsproj
) como texto sem formatação. Abra um arquivo de projeto no Visual Studio.
- Para projetos do Visual Studio, abra o arquivo de projeto (
Localize quaisquer locais dentro do seu projeto ou configuração de construção onde um caminho antigo para a CLI do Dotfuscator Community 5 é usado. Normalmente, é um caminho que termina em
dotfuscatorCLI.exe
.Substitua os caminhos antigos localizados na etapa 5 pelo novo caminho que você anotou na etapa 3.
Se um dos caminhos antigos não for um caminho absoluto, então você deve ajustar o novo caminho adequadamente com base no contexto. No exemplo abaixo, a variável de ambiente
VSInstallDir
foi usada no caminho antigo, portanto, o novo caminho correspondente deve fazer o mesmo.- Novo caminho da etapa 3:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\Common7\IDE\Extensions\PreEmptiveSolutions\DotfuscatorCE\dotfuscator.exe
- Caminho antigo no arquivo de projeto:
%VSInstallDir%\Common7\IDE\Extensions\PreEmptiveSolutions\DotfuscatorCE\dotfuscatorCLI.exe
- Novo caminho no arquivo de projeto:
%VSInstallDir%\Common7\IDE\Extensions\PreEmptiveSolutions\DotfuscatorCE\dotfuscator.exe
- Novo caminho da etapa 3:
Se você estiver usando um sistema de controle do código-fonte, como o Git, verifique se as alterações da etapa 6 estão refletidas nesse sistema. Distribua essas alterações para o resto da sua equipe, conforme apropriado para seu sistema e organização.
Advertência
Como dotfuscator.exe
se refere à interface gráfica do usuário (GUI) no Dotfuscator 5, mas se refere à interface de linha de comando (CLI) no Dotfuscator 6, tenha cuidado ao atualizar scripts de compilação compartilhados em várias máquinas.
Uma máquina com o Dotfuscator 5 instalado que executa um script atualizado para o Dotfuscator 6 faz com que o script inicie a interface gráfica do usuário, em vez da interface de linha de comando pretendida. Isso pode fazer com que a compilação seja bem-sucedida, apesar de não aplicar a proteção do Dotfuscator, o que significa que seus pacotes de saída NÃO serão protegidos.
Em outros casos, isso pode causar uma falha de compilação.
Para evitar esses cenários, atualize a Comunidade Dotfuscator da versão 5 para a versão 6 em todas as suas máquinas e crie scripts ao mesmo tempo.
Atualizar arquivos de configuração do Dotfuscator
Todos os arquivos de configuração do Dotfuscator (como Dotfuscator.xml
) que foram criados antes do Dotfuscator 6 precisam ser atualizados.
Se você tentar executar a CLI Dotfuscator com um arquivo de configuração antigo, obterá erros como os seguintes exemplos:
Dotfuscator Engine Initialization error: PreEmptive Analytics, Authenticode signing, and the Introduce Explicit Method Overrides setting are no longer supported. Please open your Dotfuscator config in the Config Editor which automatically upgrades it.
Importante
Você recebe esse erro e precisa atualizar seu arquivo de configuração, mesmo se você não estava usando os recursos mencionados.
Para atualizar um arquivo de configuração:
Inicie a Comunidade Dotfuscator de interface gráfica do usuário (GUI) acessando o menu Ferramentas de do Visual Studio e selecionando Proteção preventiva - Comunidade Dotfuscator.
Abra o arquivo de configuração do Dotfuscator em questão (Ctrl+O).
A seguinte mensagem é apresentada no separador Build Output:
PreEmptive Analytics, Authenticode signing, and the Introduce Explicit Method Overrides setting are no longer supported. The associated settings have been removed. Please save your upgraded Dotfuscator config.
Salve o arquivo de configuração Dotfuscator atualizado (Ctrl+S).
Se você estiver usando um sistema de controle do código-fonte, como o Git, certifique-se de que as alterações no arquivo de configuração do Dotfuscator sejam refletidas nesse sistema. Distribua essas alterações para o resto da sua equipe, conforme apropriado para seu sistema e organização.
Atualizar referências a bibliotecas de atributos
O Dotfuscator permite que o utilizador configure determinados recursos através de atributos .NET no seu código-fonte. Se seus projetos estavam usando esses atributos, talvez seja necessário atualizá-los para abordar as alterações no Dotfuscator 6.
Atributos de ofuscação
Não houve alterações nos Atributos de ofuscação. Esses atributos são definidos nas bibliotecas de classes base do .NET e a Comunidade Dotfuscator 6 continua a honrá-los.
Verificar atributos
A biblioteca contendo o Verificação de Atributos foi alterada. No Dotfuscator Community 5, ele foi distribuído como um arquivo ao lado do próprio Dotfuscator. A partir do Dotfuscator Community 6, ele é distribuído como um pacote NuGet público.
Se você tentar criar um projeto do Visual Studio que ainda faz referência ao local antigo, você pode obter erros como os seguintes exemplos:
The type or namespace name 'PreEmptive' could not be found (are you missing a using directive or an assembly reference?)
The type or namespace name 'TamperCheckAttribute' could not be found (are you missing a using directive or an assembly reference?)
Você também pode receber este aviso:
Could not resolve this reference. Could not locate the assembly "PreEmptive.Attributes". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
Para atualizar seu projeto para usar o novo local:
Remova a referência de assembly do projeto para
PreEmptive.Attributes.dll
.Adicione o
PreEmptive.Protection.Checks.Attributes
de referência do pacote NuGet ao projeto. O pacote está disponível no feed padrão do NuGet, nuget.org.
Os parâmetros ExtendedKey
de cada atributo de verificação também foram removidos.
Esses parâmetros foram ignorados no Dotfuscator Community 5, mas se o seu código-fonte os usou independentemente disso, remova esses usos para que seu projeto seja compilado.
Atributos de instrumentação
Os atributos de instrumentação foram usados para configurar o recurso PreEmptive Analytics no Dotfuscator 5. No entanto, o PreEmptive Analytics foi removido no Dotfuscator 6; consulte a subseção Recurso removido PreEmptive Analytics. Como resultado, os atributos de instrumentação também foram removidos.
Se tentar compilar um projeto do Visual Studio que utiliza atributos de instrumentação, poderá obter os mesmos tipos de erros e avisos observados em Verificar atributos, embora os nomes dos atributos possam diferir (por exemplo, FeatureAttribute
em vez de TamperCheckAttribute
).
Se você tentar executar Dotfuscator em assemblies já criados que contêm usos de atributos de instrumentação, obterá erros como os seguintes exemplos:
The PreEmptive.Attributes.FeatureAttribute attribute (annotating SomeNamespace.SomeType::SomeMethod) is not recognized by this version of Dotfuscator.
Para corrigir esses problemas, remova todos os usos de atributos de instrumentação do código-fonte.
Você também precisa remover as referências de assembly para a biblioteca que definiu os atributos, PreEmptive.Attributes.dll
.
(Se também estavas a usar os atributos de verificação que foram definidos nesta biblioteca, eles foram movidos: consulte Atributos de verificação acima.)
Recursos removidos
Dotfuscator Community 6 introduz alterações incompatíveis em relação ao Dotfuscator Community 5. Se você estiver usando o Dotfuscator Community 5, esta seção descreve como lidar com as alterações que podem exigir modificações de compilação ou afetar a saída do Dotfuscator.
Uma lista completa das alterações está disponível no changelog.
Análise preventiva
O Dotfuscator 6 não suporta PreEmptive Analytics, incluindo Telemetria de Verificação. No entanto, as próprias Verificações (incluindo Notificação de Aplicação e Ações de Verificação ) ainda são suportadas.
Para usar o Dotfuscator 6, atualize o arquivo de configuração para remover as configurações do PreEmptive Analytics.
Se você estava usando atributos in-code para configurar o PreEmptive Analytics, removê-los do código-fonte e reconstruir seus assemblies de entrada antes que o Dotfuscator 6 possa proteger esses assemblies.
Se estava a usar a verificação de telemetria para relatar quando uma verificação deteta um estado inválido (como quando a adulteração é detetada), pode substituí-la por uma notificação personalizada da aplicação que relata o incidente ao Azure Application Insights ou a outro serviço da sua escolha.
Tipos de aplicativos não suportados
Os seguintes tipos de aplicativo não são mais suportados no Dotfuscator 6:
- Telefone Windows
- WinRT (aplicativos do Windows 8)
- Luz de prata
- Unity (motor de jogo)
- Plataforma Universal do Windows (UWP)
Para proteger outros tipos de aplicativos UWP, atualize para o Dotfuscator Professional e siga as instruções Proteja seu aplicativo.
Entradas não suportadas
Dotfuscator Community já não suporta pacotes da Plataforma Universal do Windows (UWP) .appx
como entradas . Para proteger aplicativos UWP, atualize para o Dotfuscator Professional e siga as instruções Proteja seu aplicativo.
Além disso, .xap
pacotes não podem mais ser usados como entradas porque o Silverlight não é mais suportado.
Introduzir sobrescrições explícitas de método
A opção Renomear para introduzir substituições explícitas de método foi removida do Dotfuscator. Para usar o Dotfuscator 6, atualize o arquivo de configuração para remover essa configuração.
Documentação completa
Consulte o Guia do Usuário da Comunidade Dotfuscator completo em preemptive.com para obter instruções detalhadas de uso, incluindo como começar a usar a interface do usuário da Comunidade Dotfuscator.