2009-02-10 13 views
8

Sto sviluppando una piccola app di Windows utilizzando C++ e vorrei ottenere una sorta di impronta digitale del software/hardware su un PC in modo da può consentire l'esecuzione dell'app solo su determinati PC.Come ottenere una firma hardware/software univoca da un PC Windows in c/C++

Sono consapevole che l'app può essere decifrata ma sono davvero interessata a implementare qualcosa di simile.
Qualche idea come potrei ottenere questo?

+0

Nota: aggiunto tag di protezione dalla copia – newgre

risposta

10

Fondamentalmente dipende da quanto si desidera accoppiare il software all'hardware sottostante. Ad esempio è possibile ottenere alcune informazioni sull'hardware dal registro, leggere l'indirizzo MAC dalla scheda LAN, recuperare il produttore gfx, l'id della CPU, ecc. E cancellare tutti questi dati.
Si potrebbe quindi utilizzare questo hash come codice challenge che viene inviato alla propria azienda. Il cliente riceve quindi la versione firmata (con la chiave privata) di questo hash.
All'avvio la tua applicazione è in grado di verificare se la firma dell'hash è buona o cattiva (cioè è stata firmata dalla tua azienda).
Questo non solo associa il software a una determinata configurazione hardware, ma impone anche ai cracker di applicare la patch all'applicazione (poiché è necessario applicare la patch della chiave pubblica al file eseguibile e sostituirla per scrivere un keygen). Molte persone considerano due volte l'installazione di una fessura ottenuta da varie fonti in contrasto con l'inserimento di un seriale valido copiato da un keygen.

Edit:
Al fine di verificare la firma del hash, qualsiasi cosa, da RSA sopra DSA-ECC può essere utilizzato. Posso raccomandare Crypto++ o libTomCrypt per quello.

0

Non esiste un modo affidabile per farlo in un PC vaniglia; le persone hanno cercato per anni. Il problema è che potresti cambiare qualsiasi componente in qualsiasi momento, inclusa la CPU e le BIOS ROM. Le persone più vicine sono venute utilizzando un "dongle" protetto crittograficamente ma che ha dimostrato di essere insoddisfacente durante il funzionamento e non molto sicuro.

Se vieni con qualcosa, brevettalo; sarebbe molto prezioso.

0

Come hanno detto gli altri, non c'è nulla di perfetto per quello che vuoi. Ho fatto un tentativo poco convincente per un problema simile e ho finito con un mix di ID del volume del disco (non buono perché può essere riformattato) e il tasto OS (da Windows).

Alla fine non ci ho passato molto tempo, come se le persone volessero davvero crackare il software che probabilmente saranno in grado di farlo. Ho lasciato la "protezione" delle licenze dinky, ma è piuttosto scadente.

Dedica tempo e sforzi per convincerli a comprarlo rendendolo eccezionale.

Problemi correlati