Como usar a ofuscação para clickonce?
-
26-09-2019 - |
Pergunta
Se alguém lançar um ClickOnce versão, como pode ser ofuscado por Dotfuscator?
Solução
Você pode usar a versão comercial do Dotfuscator para ofuscar automaticamente um aplicativo ClickOnce, adicionando o manifesto de implantação ("foo.application") como uma entrada para o seu projeto dotfuscator. O Dotfuscator permitirá que você adicione as exclusões necessárias aos montagens contidos no aplicativo ClickOnce e criará manifestos de implantação e aplicativo atualizados contendo os conjuntos ofuscados.
A versão gratuita do Dotfuscator incluída no Visual Studio (incluindo o Visual Studio 2010) não possui o recurso para ofuscar automaticamente os aplicativos ClickOnce. Para obter um aplicativo de clickonce ofuscado em funcionamento, você precisará recriar ou atualizar os manifestos de cliques, pois a ofuscação altera as assinaturas dos assemblies.
Você pode usar mago.exe ou Mageui.exe (Incluído no Windows/.NET SDK) para atualizar os manifestos do clickOnce. Se você vai usar o MAGE.EXE, precisa estar ciente de que não pode usar a opção "Usar.
Supondo que seu aplicativo ClickOnce seja chamado "Foo" e está na versão 1.0.0.0 O processo que você deseja seguir é:
- Publique seu aplicativo ClickOnce em um diretório no disco
- Execute o Dotfuscator CE e adicione os conjuntos que você deseja ser ofuscado no diretório da lixeira do seu projeto
- Ofuscar os conjuntos. Os conjuntos ofuscados serão colocados em um subdiretório chamado "Dotfuscated" por padrão.
- Renuncie seus conjuntos ofuscados com sn.exe (apenas se você inicialmente for forte o nomeou)
- Copie os assemblies ofuscados por cima dos do clickOnce Publish Application Files foo_1_0_0_0 diretório
Atualize o aplicativo manifeste e renuncie -o:
mage.exe -Update "Arquivos de aplicativos foo_1_0_0_0 foo.exe.manifest" -certfile "c: foo foo.pfx" -Password Senha senha
Atualize o manifesto da implantação e renuncie -o:
mage.exe -Update foo.application -AppManifest "Arquivos de aplicativos foo_1_0_0_0 foo.exe.manifest" -CertFile "c: foo foo.pfx" -Password Senha
Agora você tem um manifesto de aplicativo e implantação válido usando conjuntos ofuscados. Você também pode usar a ferramenta Mageui.exe para realizar as mesmas tarefas (e ela sabe como lidar com os conjuntos com a extensão .Deploy), mas não é tão fácil de automatizar.
Outras dicas
Eu tenho uma solução semelhante à de Joe Kuemerle, mas antes do processo de publicação. Isso funciona com publicação em Estúdio visual e Msbuild linha de comando.
Adicione o Antes de publicar alvo para o arquivo do projeto.
<ItemGroup>
<ClickOnceFiles Include="bin\Release\ClickOnce.*"/>
</ItemGroup>
<Target Name="BeforePublish">
<Exec Command="{path to dotfuscator}\dotfuscator.exe Dotfuscator.xml" />
<Exec Command="mage.exe -u bin\Release\ClickOnce.exe.manifest" />
<Exec Command="mage.exe -u bin\Release\ClickOnce.application -AppManifest bin\Release\ClickOnce.exe.manifest" />
<Copy SourceFiles="@(ClickOnceFiles)" DestinationFolder="obj\Release" OverwriteReadOnlyFiles="True" />
</Target>
Os arquivos clickonce são ClickOnce.application
, ClickOnce.exe
, e ClickOnce.exe.manifest
. Meu dotfuscator.xml
está na mesma pasta com o arquivo do projeto. A chave é o último comando, copie os arquivos do clickOnce para o obj
pasta.
Não sei se isso só é possível em versões posteriores do Visual Studio, mas para mim funciona perfeitamente:
- Construir o executável em Liberar modo
- Inicie o modificador exe de sua escolha e modifique o arquivo em obj/liberação/u003Cfilename> .exe (Aviso: não bin/ mas obj/)
- Empurre o Publique agora Botão do Visual Studio, que assume que a última construção estava atualizada
- Lucro: d
Sim, essas são tecnologias compatíveis. O ClickOnce simplesmente se concentra na implantação de um aplicativo e em seus binários associados em uma máquina de destino. Dotfuscator ofuscates os arquivos DLL e EXE. Eles trabalharão juntos, desde que você execute o Dotfuscator antes de publicar o aplicativo.
Se você estiver usando o VS2010, o Dotfuscator que o acompanha ofuscará os arquivos e, em seguida, assinará novamente os manifestos para você. [Editar - isso não é verdade, a menos que você compre a versão completa; Funciona como vs2008.
Se você estiver usando o VS2008, precisará publicar, ofuscar os arquivos e assinar novamente os manifestos com Mage ou Mageui.
O Deepsea Ofuscator trabalha com o ClickOnce
O reator Eziriz .NET possui uma excelente integração de cliques.
Eu entendi de Uma resposta para o post do fórum Como lidar com o clickonce.
Veja o documento da Microsoft Onling:Passo a passo: implantando manualmente um aplicativo ClickOnce