Domanda

sto sviluppando una piccola applicazione Windows utilizzando C ++ e vorrei ottenere una sorta di impronta digitale del software / hardware su un pc in modo che possa consentire l'applicazione per essere eseguito solo su alcuni pc.

Sono consapevole che l'applicazione può essere violata, ma sono davvero interessati a implementare qualcosa di simile.
Tutte le idee come potrei raggiungere questo obiettivo?

È stato utile?

Soluzione

E 'dipende essenzialmente come stretto si vuole accoppiare il vostro software per l'hardware sottostante. Per esempio si potrebbe ottenere alcune informazioni hardware dal Registro di sistema, leggere l'indirizzo MAC della scheda LAN, recuperare il produttore gfx, l'id della CPU, ecc e hash tutti questi dati.
È quindi possibile utilizzare questo hash come sfidare codice che viene inviato alla vostra azienda. Il cliente riceve quindi la versione firmata (con la chiave privata) di questo hash.
Al momento di avvio l'applicazione è in grado di verificare se la firma del hash è buono o cattivo (cioè è stato firmato dalla vostra azienda).
Questo non solo si lega il software per una determinata configurazione hardware, ma costringe anche i cracker di rattoppare la vostra applicazione (perché avrebbero bisogno di rattoppare la chiave pubblica dal vostro eseguibile e sostituirlo al fine di scrivere un keygen). Molte persone considerano due volte l'installazione di un crack ottenuto da varie fonti in contrasto con solo entrando in una serie valido copiato da un keygen.

Modifica
Al fine di verificare la firma del hash, qualsiasi cosa, da RSA su DSA per ECC può essere utilizzato. Posso consigliare Crypto ++ o LibTomCrypt per questo.

Altri suggerimenti

Non c'è alcun modo affidabile noto per fare questo in un PC di vaniglia; le persone hanno cercato per anni. Il problema è che si può cambiare qualsiasi componente in qualsiasi momento, compresa la CPU e le ROM del BIOS. Le persone più vicine sono venuti utilizza una crittografia protetta " dongle ", ma che ha dimostrato di essere sia insoddisfacenti in funzione, e non molto sicuro.

Se si arriva con qualcosa, brevetto; sarebbe molto importante.

Mentre gli altri hanno detto non c'è niente di perfetto per ciò che si vuole. Ho fatto un mezzo tentativo per un problema simile e si è conclusa con un mix di auto ID del volume (non va bene perché può essere riformattato) e la chiave del sistema operativo (da Windows).

Alla fine non ho trascorso molto tempo su di esso come se la gente vuole veramente rompere il software che probabilmente sarà in grado di farlo. Ho lasciato la concessione di licenze "protezione" Dinky, ma è piuttosto scarsa.

Trascorrere il tempo / sforzo che li vogliono comprarlo, rendendo eccezionale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top