Pergunta

Se alguém lançar um ClickOnce versão, como pode ser ofuscado por Dotfuscator?

Foi útil?

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 é:

  1. Publique seu aplicativo ClickOnce em um diretório no disco
  2. Execute o Dotfuscator CE e adicione os conjuntos que você deseja ser ofuscado no diretório da lixeira do seu projeto
  3. Ofuscar os conjuntos. Os conjuntos ofuscados serão colocados em um subdiretório chamado "Dotfuscated" por padrão.
  4. Renuncie seus conjuntos ofuscados com sn.exe (apenas se você inicialmente for forte o nomeou)
  5. Copie os assemblies ofuscados por cima dos do clickOnce Publish Application Files foo_1_0_0_0 diretório
  6. 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

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

  1. Construir o executável em Liberar modo
  2. Inicie o modificador exe de sua escolha e modifique o arquivo em obj/liberação/u003Cfilename> .exe (Aviso: não bin/ mas obj/)
  3. Empurre o Publique agora Botão do Visual Studio, que assume que a última construção estava atualizada
  4. 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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top