Pergunta

Quer dizer, eu sempre estava se perguntou sobre como a alguém o inferno pode desenvolver algoritmos para quebrar / enganar as restrições de uso legal em muitos programas shareware lá fora.

Só por curiosidade.

Foi útil?

Solução

Além de ser ilegal, é uma tarefa muito complexa.

Falando apenas em um nível teoretical a maneira comum é desmontar o programa de crack e tentar encontrar onde a chave ou o serialcode está marcada.

Mais fácil dizer do que fazer uma vez que qualquer esquema de proteção séria irá verificar os valores em vários lugares e também irá derivar informações críticas do serial key para uso posterior de modo que quando você acha que você adivinhou, o programa irá falhar.

Para criar uma rachadura você tem que identificar todos os pontos onde será feita uma verificação e modificar o código de montagem adequada (muitas vezes invertendo um salto condicional ou armazenar Costants em locais de memória).

Para criar um keygen você tem que entender o algoritmo e escrever um programa para re-fazer exatamente o mesmo cálculo (Lembro-me de uma versão antiga do MS Office, cuja série teve uma regra muito simples, a soma dos dígitos deveria ter sido um múltiplo de 7, então escrever o keygen foi bastante trivial).

As duas atividades requer que você siga a execução do aplicativo em um depurador e tentar descobrir o que está acontecendo. E você precisa saber o baixo API nível de seu sistema operacional.

Algumas aplicações fortemente protegida tem o código criptografado para que o arquivo não pode ser desmontada. Ele é descriptografado quando carregado na memória, mas, em seguida, eles se recusam a iniciar, se detectar que um in-memory depurador foi iniciado,

Em essência, é algo que requer um conhecimento muito profundo, criatividade e muito tempo! Oh, eu fiz menção de que é ilegal na maioria dos países?

Se você quiser saber mais, Google para os Tutoriais Craqueamento + ORC eles são muito antigas e provavelmente nowdays inúteis, mas vai lhe dar uma boa idéia do que isso significa.

De qualquer forma, uma razão muito boa para saber tudo isso é se você quer escrever o seu próprio esquema de proteção.

Outras dicas

procurar Os maus para o código da chave de verificação usando um disassembler. Esta é relativo fácil se você sabe como fazer isso.

Depois você traduzir o código de verificação de chave para C ou outra linguagem (este passo é opcional). Invertendo o processo de chave de verificação dá-lhe um gerador de chaves.

Se você sabe assembler que leva cerca de uma semana para aprender a fazer isso. Eu tenho feito isso apenas há alguns anos (nunca lançado qualquer coisa embora. Foi apenas pesquisar para o meu trabalho de desenvolvimento de jogos. Para escrever um duro de roer-chave que você tem que entender como as pessoas se aproximam de craqueamento).

post ofertas de Nils com geradores de chave. Para rachaduras, normalmente você encontrar um ponto de ramificação e invertido (ou remova a condição) a lógica. Por exemplo, você testar para ver se o software está registado, eo teste pode retornar zero se assim, e depois saltar em conformidade. Você pode mudar o "salto se igual a zero (je)" para "salto se não-é igual a zero (JNE)" modificando um único byte. Ou você pode escrever não-operações por várias partes do código que fazem coisas que você não quer fazer.

Programas compilados pode ser desmontado e com tempo suficiente, as pessoas determinadas podem desenvolver manchas binários. A rachadura é simplesmente um patch binário para obter o programa para se comportar de forma diferente.

Em primeiro lugar, a maioria dos esquemas de proteção contra cópia não são muito bem avançada, e é por isso que você não vê um monte de gente rolando seu próprio estes dias.

Existem alguns métodos utilizados para fazer isso. Você pode percorrer o código em um depurador, o que geralmente requerem um conhecimento razoável de montagem. Usando que você pode ter uma idéia de onde na proteção de cópia de programas / métodos Keygen são chamados. Com isso, você pode usar um desmontador como IDA Pro para analisar o código mais de perto e tentar para entender o que está acontecendo, e como você pode ignorá-lo. Eu rachado por tempo limitado Betas antes, inserindo instruções NOOP sobre a data de verificação.

É realmente apenas se resume a uma boa compreensão do software e uma compreensão básica de montagem. Hak5 fez uma série de duas partes sobre os dois primeiros episódios desta temporada em espécie dos princípios básicos de engenharia reversa e rachaduras. É de realmente básico, mas é provavelmente exatamente o que você está procurando.

Um pretenso desmonta biscoito do programa e olha para os bits "de proteção contra cópia", especificamente para o algoritmo que determina se um número de série é válido. A partir desse código, muitas vezes você pode ver o padrão de bits é necessária para desbloquear a funcionalidade, e em seguida, escrever um gerador para criar números com esses padrões.

Outra alternativa é procurar funções que retornam "true" se o número de série é válido e "false" se não é, então, desenvolver um patch binário para que a função sempre retorna "verdadeiro".

Tudo o resto é em grande parte uma variante essas duas idéias. proteção contra cópia é sempre quebrável por definição -. em algum momento você tem que acabar com código executável ou o processador não poderia executá-lo

O número de série você pode simplesmente extrair o algoritmo e começar a atirar "Suposições" para ele e olhar para uma resposta positiva. Computadores são poderosos, geralmente só leva um pouco de tempo antes de começar a cuspir para fora hits.

Quanto à pirataria, eu costumava ser capaz de passo através de programas a um nível elevado e olhar para um ponto em que parou de funcionar. Então você volta para a última "Call", que sucedeu e passo para ele, em seguida, repita. Naquela época, a proteção contra cópia foi geralmente escrita para o disco e ver se uma leitura posterior sucedido (Se assim for, a proteção de cópia falhou porque eles usaram para queimar parte do disquete com um laser por isso não poderia ser escrito para).

Em seguida, era apenas uma questão de encontrar a chamada direita e codificar o valor de retorno correto do que chamada.

Eu tenho certeza que ainda é semelhante, mas eles passam por um grande esforço para esconder o local da chamada. Último que eu tentei Eu desisti porque manteve código de carregamento sobre o código que eu estava pisando-único através, e tenho muita certeza de que ele está ficando mais complicado desde então.

Eu me pergunto por que eles não apenas distribuir binários personalizados, onde o nome do proprietário é armazenado em algum lugar (criptografadas e ofuscado) no binário ou melhor distribuídos ao longo de todo o binário .. AFAIK a Apple está fazendo isso com os arquivos de música na iTunes Store, no entanto lá é muito fácil, para remover o nome dos arquivos.

Eu assumo cada crack é diferente, mas eu acho que na maioria dos casos alguém gasta muito tempo no depurador traçando a aplicação em questão.

O gerador de serial leva um passo além, analisando o algoritmo que verifica o número de série para validade e engenheiros revertê-la.

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