Pergunta

Como ofuscar classes de proxy WCF usando Dotfuscator?Baixei o Dotfuscator Pro Edition Trial do site deles.Ofusquei meu arquivo app.exe, tudo ficou bem ofuscado, mas as classes de proxy WCF não.(Eu ILDASMed o exe).

As classes WCF Proxy estão revelando a estrutura do meu aplicativo. Há alguma configuração que estou faltando no aplicativo Dotfuscator?

Existe uma maneira melhor de ocultar as classes de proxy do serviço WCF?

Foi útil?

Solução

De uma forma ou de outra, o WCF deve ser capaz de vincular elementos do contrato de dados do seu serviço às classes de proxy do seu cliente.Geralmente há pouco valor em ofuscar as classes proxy e seus membros, mas se você quiser ofuscá-los, você pode definir explicitamente o nome dos tipos e seus membros usando o comando Name parâmetro do [DataContract] ou [DataMember] atributos (ex. [DataMember Name="ID"]).Depois de fazer isso, você pode desativar a regra interna "Tipos e campos marcados como serializáveis" na guia Renomear -> Regras integradas e garantir que "Compatibilidade com serializador XML" esteja marcada em Renomear -> Opções aba.A ressalva dessa abordagem é que os nomes das propriedades serializadas ainda estão incluídos no seu código (nos atributos) e ainda são enviados pela rede.

Se você precisar de mais proteção e tiver controle tanto do serviço quanto do cliente, uma opção melhor, porém mais complicada, seria colocar seu contrato de serviço em sua própria montagem e processá-lo com o Dotfuscator.Novamente, desative a regra interna "Tipos e campos marcados como serializáveis" na guia Renomear -> Regras integradas e certifique-se de que "Compatibilidade com serializador XML" esteja marcada na guia Renomear -> Opções.Agora faça referência à DLL do contrato de serviço resultante do seu serviço e do seu aplicativo cliente.A desvantagem dessa abordagem é que todos os membros do contrato terão nomes ofuscados (por exemplo,"a") e você terá que referenciá-los como tal em seu serviço e no código do aplicativo cliente.Você pode examinar o arquivo de mapa que o Dotfuscator produz para entender os nomes renomeados.

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