Pergunta

Eu pretendo lançar uma pequena concessionária de baixo preço. Como isso é mais hobby do que negócios, planejei usar o Dotfuscator Community Edition, enviado com o VS2008.

Quão bom é?

Eu também poderia usar a definição de "Offuscator Bom o suficiente" - quais recursos estão faltando no Dotfuscator Community Edition para torná -lo bom o suficiente.

Editar:

Eu verifiquei os preços no número de ofuscadores comerciais e eles custam muito. Vale a pena?

As versões comerciais estão protegendo muito melhor da engenharia reversa?

Não tenho muito medo de que meu aplicativo seja rachado (será decepcionante se a aplicação for tão ruim que ninguém esteja interessado em quebrá -lo). De qualquer forma, não está fortemente protegido, não é muito complexo, chave em série e verificações de licença em alguns lugares no código. Apenas me incomoda que, sem ofuscação, alguém pode facilmente obter código -fonte, renomeá -lo e vendê -lo como seu.

Isso acontece muito?

Editar 2:

Alguém pode recomendar o ofuscador comercial. Eu encontrei muitos deles, todos eles são caros, alguns nem têm preço listado no site.

Em termos de recursos, todos os produtos parecem mais ou menos semelhantes.

O que é um conjunto mínimo de recursos que o Offusator deve ter?

Foi útil?

Solução

Em poucas palavras, a principal diferença entre a Dotfuscator Community Edition e as outras edições "profissionais" é que a Community Edition só realmente ofuscará e mudará seus espaços para nome, nomes de métodos e outros aspectos acessíveis "públicos" de suas classes. Ele não se aprofundará nas próprias funções e ofuscará o código "privado" dentro da função.

Além disso, a edição da comunidade não faz nada para ofuscar coisas como o fluxo de controle dentro do seu aplicativo, nem "combinará" o código de várias montagens em uma montagem. Estes são recursos disponíveis nas versões pagas "profissionais".

A melhor comparação entre a comunidade da Comunidade (a versão "gratuita" que vem com o Visual Studio) e as edições "profissionais", pode ser encontrada, observando os dois links a seguir:

Comparação de edições de dotfuscator preventivo

Dotfuscator Community Edition 3.0 no MSDN

O link MSDN está um pouco desatualizado, no entanto, fornece uma explicação muito melhor dos recursos reais disponíveis nas várias edições do Dotfuscator.

EDITAR:

Os ofuscadores comerciais custam muito dinheiro e, quanto à pena, valem a pena o dinheiro? Bem, isso é um julgamento que realmente só você pode fazer. Pessoalmente, eu diria que não vale a pena em seu cenário. Em primeiro lugar, porque você está apenas querendo proteger um aplicativo ("Eu pretendo lançar uma pequena concessionária de preço baixo.") E, em segundo lugar, você diz que não está muito preocupado com o aplicativo estar "rachado" ("eu ' Não tenho muito medo de que minha aplicação seja rachada. ").

Entendo como isso pode incomodá -lo que compilou os aplicativos .NET, sem ofuscação, pode ser facilmente reverso projetado para o código -fonte original, e que alguém pode fazer uso disso para roubar seu software e vendê -lo como seu, no entanto, o O fato é que a pirataria de software existe e você provavelmente nunca o interromperá.

Tentar interromper a pirataria de software foi debatida ad-nausem aqui (Stack Overflow) e em toda a Internet.

O consenso geral parece ser que você precisa focar seu tempo e energias mais em tornar seu produto o mais bom possível, em vez de usar o mesmo tempo tentando proteger algo que, dado tempo/dinheiro suficiente, um "atacante" pode " quebrar "/roube seu software de qualquer maneira, apesar de seus melhores esforços para impedi -lo de fazê -lo.

Isso acontece muito?

Eu diria que provavelmente acontece muito menos do que você pensa. Claro, o software é rachado, mas acho que muitas pessoas realmente roubam o código-fonte de outras pessoas e o re-marca para vender como suas. Não estou dizendo que não, ou não aconteceu, mas certamente não é uma ocorrência comum.

Para resumir, eu diria que sua melhor aposta seria se concentrar em tornar sua utilidade o melhor possível e usar o obfuscador de ponto livre, pois requer muito pouco investimento de tempo/dinheiro, para ofuscar seu código do máximo Olhos indiscretos óbvios, mas não perca nenhum sono com o fato de que, se alguém quiser quebrar/roubar seu produto/código o suficiente, eles farão.

Outras dicas

Eu acho que o Dotfuscator Community Edition, enviado com o Visual Studio, é uma solução bastante ingênua. Ele fornece apenas renomeação de símbolos e não ofusca o fluxo de controle. E se alguém decidir roubar seu código, ele precisará apenas refatorar todos os nomes, o que é bastante fácil com uma pequena quantidade de classes.

Além disso, você pode confiar na descompilação não tão perfeita fornecida pelo refletor (geralmente bagunça os blocos de interruptor, produz muitos betos, blocos de incompatibilidade if-else etc.).

Mas eu sugiro que você tente Reator Eziriz .NET. Custa apenas US $ 179 (o melhor preço/índice de preços/recursos da AFAIK). Ele fornece técnicas de ofuscação padrão, como renomeação de símbolos, criptografia de string, ofuscação de fluxo de controle. Como um bom bônus, cria o aplicativo Native Launcher para você, que conterá sua montagem principal e todas as referências de terceiros criptografadas e carregadas sob demanda. Além disso, ele fornece alguns recursos de licenciamento.

De qualquer forma, a reversão do aplicativo .NET não é tão difícil, eu fiz isso por diversão e posso dizer que é apenas uma questão de tempo e dinheiro (e, claro, bom senso) com que rapidez seu aplicativo será rachado ou revertido.

No mínimo, um ofuscador deve ter:

  1. Criptografia de string
  2. Renomeação de símbolos
  3. Ofuscação de fluxo de controle

É bom ter recursos é:

  1. Proteção de recursos
  2. Montagem de fusão/incorporação
  3. Método externo CHAMAND
  4. Capacidade de assinar automaticamente conjuntos ofuscados
  5. Suporte para conjuntos de satélite
  6. Eliminação do código morto
  7. Redução de meta-dados
  8. Anti-Decompiler (refletor)
  9. Anti-tamper
  10. Anti-debugação

Dê uma olhada no nosso Obfuscador criptográfico Produto que suporta tudo isso.

Outra maneira de contornar o código de engenharia reversa é onde você coloca suas DLLs se não puder realmente pagar os ofuscadores que adicionam suporte. E em seus assembléias antes da implantação, diga ao compilador onde procurá -los, o que era uma prática antiga para impedir a engenharia reversa. Mas, como já foi dito, concentre -se principalmente no desenvolvimento de um excelente produto e boas práticas de codificação, então você poderá pagar uma boa aplicação de ofuscador no futuro. Além disso, tente não se preocupar muito com os outros que quebram seu código, porque a maioria dos hackers crack código apenas encontra uma maneira de usar o produto sem pagar por ele e não roubar código ou aprender para o programador iniciante. Sim, eu gostaria que o JIT só apoiasse C# e VB.NET, que realmente reduziriam a engenharia reversa, mas como o JIT pode ler muitos devido ao .Net ser realmente amigável para idiomas, esse é o preço. Portanto, codifique -se e ganhe algum dinheiro, compre alguns títulos adicionais.

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