it-swarm.dev

Come funzionano i keygens del software?

Li ho visti un sacco di volte, con molti diversi tipi di software, ma l'unica cosa che mi sono sempre chiesto è come i keygens del software sappiano quale chiave generare. Conosco il principio di base: il keygen guarda da qualche parte nei file di installazione del software e crea una chiave che corrisponde a un file crittografato che consente al programma di funzionare. Ma volevo sapere come lo fanno e come prevenirlo. Questa è davvero una domanda multipla.

  1. Come funziona il sistema di chiavi?
    • In che modo i programmatori di solito creano software che funziona in base a una chiave. Sono un programmatore intermedio, ma non ho mai imparato molto dell'aspetto sicurezza/antipirateria. Come creano e/o riconoscono le chiavi per consentire al software di iniziare a funzionare?
  2. Dove cerca di solito questo "file crittografato"?

    • È in un file fisico sul computer o in un database del sito che chiama?
  3. Cosa fanno le aziende per crittografare quel file?

    • Immagino che la chiave debba essere memorizzata in più di un semplice testo, cosa fanno per mantenerla crittografata?
  4. Quale metodo utilizza keygen per creare la chiave?
    • Ho giocato un po 'in giro con un software di cracker di password come "cain & able" e ho notato che con alcuni dei metodi di cracking di password, come la forza bruta e il dizionario, mi dà ETA in anni, tuttavia i keygen sembrano creare le chiavi all'istante. Stanno usando metodi completamente diversi?
  5. Quali misure possono prendere le aziende per impedire l'uso di keygens nel software piratato?
    • Sto iniziando a scrivere il mio software da distribuire, mi chiedevo quali metodi esistenti, relativamente semplici, posso usare per prevenire
11
Ephraim

Come funziona il sistema di chiavi?

Bene dipende che ci sono molte implementazioni. Uno di questi è stato discusso in stackoverflow :

Supponendo che non desideri fare una build speciale per ciascun utente, quindi:

  • Genera una chiave segreta per il prodotto
  • Prendi il nome dell'utente
  • Concatena il nome utente, la chiave segreta e l'hash con (ad esempio) SHA1
  • Decomprimi l'hash SHA1 come stringa alfanumerica. Questa è la "Product Key" del singolo utente
  • All'interno del programma, esegui lo stesso hash e confrontalo con il codice Product Key. Se uguale, OK.

Nota: ogni schema chiave può essere decifrato. Ecco perché molti strumenti utilizzano la convalida online.

Di solito dove cerca questo "file crittografato"?

Di solito non esiste un file crittografato quando si utilizza il metodo precedente. Potrebbero esserci altri metodi per generare chiavi con un altro algoritmo, ma non memorizzano mai tutte le chiavi nel programma.

Cosa fanno le aziende per crittografare quel file?

Bene, se ti riferisci alla memorizzazione della chiave digitata dall'utente nel tuo sistema, a volte viene salvata in chiaro in un file di configurazione. A volte usano la crittografia simmetrica (come AES) con una chiave codificata per crittografare questo file.

Quale metodo utilizza keygen per creare la chiave?

Perché ci sono persone che possono capire lo schema utilizzato dal programma e implementarlo semplicemente nel proprio keygen.

Quali misure possono adottare le aziende per impedire l'uso di keygens nei software piratati?

Attivazione online, ma più è difficile per il cliente utilizzare il software, meno è probabile che lo acquisterà. Alla fine non esiste un unico software che sia a prova di pirateria . Se ci fosse, aziende come Adobe e Microsoft ti assumerebbero immediatamente.

8
Lucas Kauffman

I numeri di serie per il software per computer hanno un modello specifico, che consente all'installatore o all'applicazione di rilevare se si tratta o meno di una chiave legittima. Un esempio molto semplice sarebbe che ogni numero seriale ha esattamente tre occorrenze del numero 5 al suo interno, quindi 1932-1253-2319-5512 sarebbe un numero seriale funzionante. In uno scenario di vita reale le relazioni tra i numeri sarebbero ovviamente più complicate.

Il software fornito contiene un algoritmo che verifica se un seriale è valido o meno. Il creatore del software ha un software che gli consente di creare numeri di serie per il prodotto.

Per creare un keygen, un gruppo di cracker (persone specializzate nella violazione di schemi di protezione dalla copia) analizza il programma eseguibile per trovare la parte che controlla il seriale. Quindi ricostruiscono l'algoritmo per creare i periodici in base al codice di controllo. Keygen finito è un'app che applica l'algoritmo per creare un numero seriale.

A volte i keygens non contengono realmente l'algoritmo, ma piuttosto un elenco di numeri di serie validi, di cui uno è selezionato a caso.

Il keygen per Windows XP nei service pack successivi è stato più complicato, perché Microsoft ha verificato non solo se una chiave era valida, ma anche se era stata venduta con una copia e non era già in uso su un altro computer. Keygen ha inviato richieste di massa al server Microsoft per verificare se si trattava di una chiave funzionante.

6
Anna Ashmore

Come funziona il sistema di chiavi?

Nella forma più comune if (some-complex-or-not conditions-here) then (OK). Complessità delle condizioni controllate limitata solo dalla tua fantasia

Di solito dove cerca questo "file crittografato"?

Ci non ci sono schemi comuni, dove e come archiviare e leggere queste informazioni. Può essere un file e non un file (chiave di registro, ad esempio, nel caso di Windows)

Cosa fanno le aziende per crittografare quel file?

Pratica abituale - mai archiviare come testo normale, utilizzare metodi irreversibili di trasformazione prima di archiviare, ma - con l'attivazione della chiave anche l'archiviazione della chiave di testo normale può essere a prova di proiettile: la chiave rubata, una volta attivata, non funzionerà dalla seconda registrazione (abusabile e metodo hackerabile, ma può funzionare in una certa misura)

Quale metodo utilizza keygen per creare la chiave?

Il metodo di controllo inverso per verificare la validità aiuta nell'ingegnerizzazione inversa algoritmo di creazione dati chiave

Quali misure possono adottare le aziende per impedire l'uso di keygens nei software piratati?

Non tecnicamente - prezzo ragionevole per i prodotti. In questo caso i keygens appariranno comunque, ma sarà più "solo per divertimento" gioco per i crack-team, rispetto a richiesto (e sato con impatto diretto) dal prodotto di consumo di massa .

Tecnicamente - impedire l'esecuzione nel debugger, combinato con codice crittografato nel file (con decrittografia in memoria, possibile - multi-layer per alcune parti sensibili), catene di manipolazioni della memoria, verifica online delle chiavi nella memoria esterna (vedere i metodi precedenti, che sono applicabili separatamente anche al checker) ...

2
Lazy Badger