Pergunta

Estou muito triste porque há alguns dias, lançamos nosso software desenvolvido no .NET 4.0 (aplicativo de desktop). Após 3 dias, seu crack estava disponível na Internet. Tentamos proteger o software desta, mas de alguma forma as pessoas fugiram quebrando.

Aqui está o cenário: Quando o aplicativo é iniciado a primeira vez que ele se comunica com o servidor da Web e verifica as credenciais passadas pelo usuário. Se as credenciais estiverem corretas, o software salvará os valores no registro, envia a máquina de Voltar para o servidor e armazena no banco de dados.

Agora, o hacker substituiu a comunicação do servidor por um "retorno verdadeiro"; declaração (eu verifiquei isso com o Telrik JustDecompile). e ele carregou o software rachado na Internet.

Agora, seguindo as minhas perguntas:
1- Como se certificar de que o aplicativo .NET não será rachado?


2- O hacker agora conhece meu código desde que ele fez a modificação. Que passos devo tomar?
3- Eu li na Internet sobre - ofuscadores. Mas o hacker conhece meu código o que devo fazer?
4- Qualquer outra dica pro que eu possa usar para evitar o software rachado?
5- Eu não tenho certeza, mas esses softwares refletor também podem descompilar o app.config com dados confidenciais?

Foi útil?

Solução

.

1- Como se certificar de que o aplicativo .NET não será rachado?

Se um computador puder executar seu código +, o hacker pode executar seu próprio código em um nível mais alto de privilégio do que você, não há nada que possa 100% impedir que seu aplicativo seja rachado. Mesmo que eles tenham acesso ao executável, mas não a plataforma de destino, eles ainda podem percorrer e imitar o que a plataforma de destino faria e descobriu como a proteção está sendo feita.

.

2- O hacker agora conhece meu código desde que ele fez a modificação. Que passos devo tomar?

reescreva totalmente a porção de autenticação para que eles tenham que começar do zero, mas eles vão obtê-lo novamente, é apenas uma questão de quanto tempo.

.

3- Eu li na Internet sobre - ofuscadores. Mas o hacker conhece meu código o que devo fazer?

O jinni está fora da garrafa agora que eles têm o código não ofuscado. Não há muito que você possa fazer a menos que você reescreva drasticamente o software para que eles tenham que começar do zero. Um obfuscate não impedirá um atacante determinado, eles só que podem impedir que estejam mantendo o binário fora de suas mãos.

.

4- Qualquer outra dica pro que eu possa usar para evitar o software rachado?

A única proteção de cópia que vi para retardar remotamente por qualquer período de tempo é o que a Ubisoft fez com o Credo de Assassino: Irmandade. Eles criptografam os níveis com o disco de jogo e tiveram que baixar a chave de descriptografia da Internet como era necessário (este é o binário fora de sua abordagem de mãos). Mas isso não funcionou para sempre, eventualmente os hackers conseguiram esses níveis descriptografados e foi totalmente rachado. Esta abordagem é exatamente o que vi tomar o maior tempo para se locomover sem envolvimento legal (ver ponto 2 na parte inferior)

.

5- Eu não tenho certeza, mas esses softwares refletor também podem descompilar o app.config com dados sensíveis?

Todo o software Refletor precisa fazer é procurar a seção que carrega app.config e leia quais são os padrões. Há não lugar seguro para armazenar informações em um computador que você não tem controle total. Se estiver no computador, ele pode ser lido. Se puder ser lido, ele pode ser projetado reverso.


A única solução real que posso ver para impedir que a pirataria seja uma das duas opções.

    .
  1. A pessoa nunca recebe seu aplicativo, é transmitido de um servidor sob seu controle e eles nunca conseguem ver o binário. A única coisa que você envia é a informação necessária para dirigir a interface do usuário. Esta é a abordagem que todos os trabalhos de MMO. As pessoas podem reverter o engenheiro O que você está enviando para a interface do usuário e imitam a lógica que está acontecendo em seus servidores, mas eles nunca serão capazes de ver o que está fazendo e se o seu software é complexo o suficiente, pode não ser anunciado para o invasor para recriar o código do lado do servidor. A desvantagem dessa abordagem é que você precisará hospedar servidores para que seus usuários se conectem, este será um custo de reoccorrência que você precisará de uma maneira de re-golpe. Muitas vezes, esse método é chamado de "cliente rico" ou "cliente fino", dependendo de quanto processamento é feito o lado do cliente e quanto processamento é feito o lado do servidor. Ver capítulo 22 de " Guia de arquitetura do aplicativo Microsoft, 2ª edição ". Especificamente estou descrevendo o que é mostrado em Figura 4 e 5

  2. A opção SECCOND é quem você vender seu software também assinar um contrato legal para não distribuir o software (não um EULA, um contrato real que deve ser assinado fisicamente pelo cliente). Nesse contrato têm grandes multas serem aplicadas à pessoa que vaza o software, então enigma seu programa com impressões digitais que são exclusivos da pessoa que compra o software para que, quando o programa vazar, você pode ver quem fez isso. (Este é o método que o fornecedor Hex-Rays usa para seu desmontador IDA . Uma pesquisa rápida do Google não pôde aparecer quaisquer versões rachadas mais novas que 6.1, elas estão em 6.3 ). Este método não vai parar a pirataria, mas pode desencorajar a cópia para vazar em primeiro lugar. Isso também permite recuperar alguns custos perdidos associados ao programa vazado em primeiro lugar. Um problema é que você precisará colocar muitas impressões digitais e precisará ser sutil, se um invasor puder obter duas cópias do programa e poderá comparar os arquivos entre

Een os dois ele será capaz de dizer o que é a informação identificadora e apenas colocar o que quiser, então eles não podem dizer com quem eles conseguiram. A única maneira de fazer isso é colocar um monte de vermelhas que não podem ser retirados ou randomizados, também tornar o código de identificação não crítico para executar o software, se eles não tiverem que trabalhar para quebrar Eles são mais propensos a deixá-lo em.


update : Depois de revisitar esta resposta para link para outra pergunta, pensei em uma maneira fácil de implementar a solução # 2.

Tudo que você precisa fazer é executar o seu código através de um obfuscate e deixá-lo renomear suas classes para cada pessoa que você venda seu software (eu ainda faria assinar um contrato de licença, não apenas clique em um EULA para que você possa impor próxima parte). Em seguida, você faz um banco de dados do mapeamento de ofuscação, quando você vê uma cópia vazada na Internet, só precisa encontrar uma classe em qualquer lugar do projeto, procurá-lo em seu banco de dados, e você saberá quem vazou e sabe quem você precisa para ir atrás de danos legais.

Outras dicas

1: você não pode.Você pode ofuscar, mas a única maneira de impedir Isso é: não dê a ninguém o exe.Veja quantas empresas de jogos gastam nisso;eles também não resolveram.

2: Ofuscação ajudaria um pouco , embora seja uma corrida armamentista entre ofuscadores e ofuscadores

3: tarde demais para voltar e desfazer isso, mas a ofuscação irá retardá-los um pouco no futuro

5: app.config é geralmente muito legível;você não é muito que você pode fazer aqui;A criptografia só vai diminuí-los um pouco se as teclas estiverem em seu aplicativo e, portanto, obtidas

Como outros disseram que realmente não há nada que você possa fazer contra um cracker determinado se eles tiverem acesso ao seu código.A ofuscação fornecerá alguma proteção contra um cracker preguiçoso. Dotfuscator é incorporado em vs você pode tentar.Tenha em mente que há um custo real para ofuscação.Isso tornará muito difícil depurar questões de tranças de pilha que seus clientes (pagantes) enviam você.

A melhor resposta é que você terá que aceitar.Você não pode.Basta se concentrar em fornecer aos seus usuários uma ótima experiência ao usuário e tornar o licenciamento muito fácil.A possibilidade de que sua inscrição possa ser rachada não significa que a escolha de construir um aplicativo de desktop foi uma má ideia.Piratas serão piratas e clientes honestos serão clientes honestos.

Aparentemente, há valor comercial ou intelectual suficiente quebrar seu aplicativo que alguém com habilidades razoáveis tentou quase imediatamente.

O Somente Way Way Wará essa guerra é usar pacotes de proteção de software comercial.

Se você tentar implementar a proteção contra cópia, você será um destino fácil para hackear novamente.

Se você escrever um aplicativo de negócios, você também não escreveria o mecanismo de banco de dados que armazena os dados.Você também não deve escrever o código de prevenção de crack para sua inscrição.Que não é o que resolve o problema do seu cliente, e é preciso um tremendo habilidade para fazer isso certo.

O que você pode fazer, além do código ofuscação é, adicionar um mecanismo de decodificação de código com base no hardwareid, ter em mente o seguinte cenário, o Enviar o HWID para o seu servidor, você identifica o número da cópia / Proprietário / Instalação/ etc com esse HWID, e você responde com uma chave descritionada baseada naquele HWID para esse binário específico (com as impressões digitais mencionadas anteriormente), portanto, o hacking seria mais difícil, uma vez que para funcionalidades totalmente precisam de acesso válido ao seu servidor, caso contrário, elesNão é possível usar o software.

elogios,

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