Pergunta

Por um tempo que estávamos usando uma ferramenta chamada CodeVeil. Eu só estou querendo saber se existem melhores alternativas lá fora.

Edit: Antes de mais pessoas não entendem a questão, estou ciente de que um determinado biscoito provavelmente seria capaz de derrotar qualquer uma dessas ferramentas. Eu não estou muito preocupado com eles embora. Estas ferramentas são voltadas apenas para parar o "cracker casual", e para impedir as pessoas de roubar IP da nossa empresa. Se eles são bons o suficiente para passar uma ferramenta decente, eles provavelmente não estão interessados ??em roubar nosso :-P código de baixa qualidade

Foi útil?

Solução

Eu tive muito sucesso com Xenocode Postbuild. A ferramenta pode Ofuscação NET assembléias, proteger agaist refletor desmontagem, combinar .NET montagens em um único executável ( "virtualização") e até mesmo aplicativos .NET compilar para executáveis ??autônomos que não precisam .NET runtime instalado.

Outras dicas

Ainda não estou convencido pelo valor destas ferramentas. Nenhuma das soluções de tecnologia impedir a engenharia reversa melhor do que guardas legais, como licenças, marcas, patentes, direitos autorais etc ...

.NET é realmente grande movimento de código transparente. É muito melhor que em vez enquadrar termos de uso em torno de seu IP tais como licenciamento e direitos autorais.

Compilando os resultados de aplicações .NET em assembléias de saída que contêm uma grande quantidade de informações meta. Esta informação faz com que seja muito fácil para reconstruir algo muito próximo ao código original. Uma excelente ferramenta gratuita chamada .NET Reflector pode ser usado para fazer exatamente isso e é uma maneira popular para examinar como as bibliotecas de classe base de trabalho. Baixar e usar essa ferramenta para a vista reconstruída C # / VB.NET versões do conteúdo de montagem.

Se você é uma organização comercial, então você não quer que as pessoas acham fácil olhar para a sua cara ao código produto. Um método popular é usar ofuscação para embaralhar o conteúdo de uma forma que não alterar a forma como ele é executado, mas faz com que seja difícil de entender. Ofuscação utiliza técnicas tais como mudar o nome variáveis ??e métodos. Trabalhar fora o propósito de métodos 'A1', 'a2', 'a3' é muito mais difícil do que o original 'GetName', 'UpdateInterestRate' e 'SetNewPassword'.

Então, usando ofuscação torna muito mais difícil para as pessoas entenderem o que o código está fazendo e os algoritmos que utiliza. No entanto, não torná-lo impossível. Da mesma forma C ++ código ainda pode ser compreendido por um perito assembler que está disposto a trabalhar o tempo gasto através de seu binário, um especialista MSIL pode, eventualmente, trabalhar fora do seu código ofuscado. Mas aumenta a barreira para o ponto onde poucos vai incomodar tentando.

Honestamente, não há muita coisa que você pode fazer além de algumas ofuscação com ferramentas como você mencionou. NET é apenas um passo acima linguagens de script, exceto os comandos de script são binários e são chamados de IL. Isso é um pouco mais de simplificação, mas não é muito longe da realidade. Qualquer bom programa escrito usando reflexão pode ser usado para aplicações de engenharia reversa NET, ou se você tem conhecimento suficiente, um bom editor hexadecimal.

Existem várias ferramentas populares para obscurecimento, incluindo Dotfuscation, que tem uma versão "light" que acompanha o Visual Studio 2005 e 2008. Eles têm uma versão Pro que faz mais do que apenas variável e nome da função de renomeação. No entanto, o código ainda é visível, é apenas mexidos um pouco para torná-lo mais difícil de ler e Grokar o fluxo lógica do software.

Outra técnica é usar outros programas que irá criptografar o programa, e decifrá-lo em tempo de execução. No entanto, esta não é uma solução perfeita também. Na verdade, não há solução perfeita que eu estou ciente de que vai impedir um determinado engenheiro da engenharia reversa do software, se bastante tempo e esforço é aplicado a ele.

O que realmente vem para baixo é determinar o nível de proteção que vai torná-lo suficientemente difícil para dissuadir o hacker casual, e torná-lo tão caro para fazer engenharia reversa, como você pode, então, pelo menos, a engenharia reversa tem um custo em tempo ou dinheiro, ou, idealmente, tanto. O mais caro dos custos de engenharia reversa, o menor número de pessoas que estarão dispostos a colocar no esforço. E esse é o grande ponto de ofuscação.

Alguns pensam que o uso de um compilador como o compilador C ++ que compila para código nativo irá impedir este tipo de engenharia reversa, mas isso não acontece. Um bom desintegrador permitirá executáveis ??binários mesmo puras de modo a ser engenharia reversa, assim, portanto, uma solução perfeita não existe. Se o computador pode lê-lo e executá-lo, então a memória que o computador está usando pode ser digitalizado e monitorado, ignorando todas as tentativas para criptografar, Ofuscação, ou qualquer outro meio de manter seu código fora das mãos de um determinado engenheiro.

Infelizmente para ressuscitar um post antigo, mas acho que de Eziriz .NET Reactor funciona brilhantemente.

Na verdade eu uso-me para toda a minha .net aplicativos e, aparentemente, não há nenhuma ferramenta existente lá fora, que pode descompilar um programa protegido com .net reator. Mais detalhes podem ser encontrados na página lá informações, http://www.eziriz.com/dotnet_reactor.htm . Testá-lo com a versão trial e .net reflector e você pode ver por si mesmo.

IMPORTANTE: eu não trabalho para RedGate os fabricantes de smartassembly. Eu sou apenas um cliente muito feliz que encontrou uma boa solução acessível.

A escolha é muito simples, escolha smartassembly! Não desperdice seu tempo ou dinheiro com os outros obfuscators no mercado. Eu gasto mais dinheiro em termos de horas não faturáveis ??avaliando produtos concorrentes. Todos eles tinham falhas fatais e foram quase impossível de depuração. Smartassembly é um fácil de usar, bem documentado, aplicação polido com excelente suporte. Postar uma pergunta em seu fórum e esperar uma resposta razoavelmente rápida pelos desenvolvedores reais.

smartassembly é mais do que um obsfuscator. Ele tem uma série de características, incluindo um gerador de relatórios acidente embutido, altamente personalizável que seus clientes podem enviar e-mail automaticamente para você. Você pode exibir esses relatórios de ambos os seu próprio servidor ou em servidores de portas vermelhas. Eu não posso te dizer como isso é útil quando você estiver testes beta ou liberar o produto para os clientes. Ele também gera arquivos depurador para que você pode depurar quaisquer problemas pós-libertação que podem ocorrer com o produto obsfucated.

Se você está entregando uma aplicação comercial, faz sentido gastar o dinheiro em um obsfuscator decente. Uma má escolha aqui pode comprometer a sua propriedade intelectual ou pior levá-lo para dias de depuração horrível. O que seria este custo em comparação com o que os custos smartassembly?

Ouvi dizer que Obfusticator é bom; ele é usado em .Net refletor.

Outra é Crypto Obfuscator - sua mais acessível do que alguns outros, e tem vários métodos de ofuscação e proteção para impedir as causais e não tão casuais hackers.

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