Pergunta

Alguém pode me dizer qual é a melhor abordagem para proteger meus DLLs de componentes na Net?

Eu escrevi alguns componentes DLL que estarão disponíveis ao público. Eles vão ser licenciado em conformidade, mas eu quero fazer programaticamente certeza de que ninguém está usando os componentes dentro de suas soluções de forma ilegal.

Todas as idéias?

Foi útil?

Solução

Uma vez que o código já está ofuscado, você pode impor as classes inerente ao ser instanciado com uma chave de licença antes de qualquer dos métodos são chamados. Se você achar que a chave não é válido / presente você pode exibir uma caixa de mensagem ou retornar um erro / exceção. Há muitos exemplos de onde isso é feito (check-out Xceed.com para um), mas como os posts anteriores sugerem, seu simplesmente para desencorajar os usuários finais de tentar usar seu conjunto ilegalmente. Não impedi-lo completamente. Dado o tempo e incentivo suficiente, qualquer coisa pode ser quebrado.

Outras dicas

A tentativa de impedir que pessoas fazendo coisas em um nível tecnologia só vai levar para o trabalho específico em torno de seus esforços para impedi-los por meio de engenharia reversa (a que ofuscado código nunca vai impedi-los, ele só irá atrasá-los), limpo projeto do quarto e assim por diante. Sua melhor aposta é para reforçar a aqueles que estão recebendo uma licença para utilizar as suas bibliotecas os termos de uso, e para defender os seus direitos legais para fazer cumprir os termos de uso.

A melhor coisa que você pode fazer é para ofuscar seu código. Isso não vai ser 100% seguro e pode ser de engenharia reversa.

Dotfuscator

é uma agradável.

curta do "não distribuí-los" não há nenhuma maneira 100% de certeza para impedir o acesso não autorizado.

Você pode olhar para hardware ou software dispositivos de licenciamento. cheques Polvilhe licença em todo o seu código e se o dispositivo não está presente simplesmente abortar tudo.

Outra idéia e é declarar todos os seus tipos na montagem como internal em seguida, configurar o seu principal EXE aplicação como um amigo montagem com o InternalsVisibleTo montagem atributo. Isso normalmente é usado para membros internos de teste de unidade e não tenho idéia de como garantir que seria na prática. Isso não impediria as pessoas de desmontagem seu conjunto para que você ainda pode querer ofuscar e isso não funciona em todos, se você está vendendo a biblioteca e pretende apenas para licenças de clientes para usá-lo (porque você teria que fornecer constrói a cada costume cliente).

Como Phoenix disse que não há realmente nenhuma maneira de proteger completamente o seu código como eles ainda podem ser compilado através de uma ferramenta como o refletor.

Uma tal ferramenta seria usar Dotfuscator .

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