So erhalten Sie eine einzigartige Hardware / Software-Signatur von einem Windows-PC in c / c ++

8

Ich entwickle eine kleine Windows-App mit C ++ und ich möchte eine Art Fingerabdruck der Software / Hardware auf einem PC bekommen, damit ich die App nur auf bestimmten PCs laufen lassen kann.

Ich bin mir bewusst, dass die App geknackt werden kann, aber ich bin wirklich daran interessiert, so etwas zu implementieren.
Irgendwelche Ideen wie könnte ich das erreichen?

    
daniels 10.02.2009, 21:10
quelle

3 Antworten

10

Es hängt davon ab, wie stark Sie Ihre Software an die zugrunde liegende Hardware koppeln möchten. Zum Beispiel könnten Sie einige Hardware-Informationen aus der Registry bekommen, die MAC-Adresse von der LAN-Karte auslesen, den Hersteller der Grafikkarte, die CPU-ID usw. abrufen und all diese Daten hashen.
Sie können diesen Hash dann als Challenge-Code verwenden, der an Ihr Unternehmen gesendet wird. Der Kunde erhält dann die signierte (mit Ihrem privaten Schlüssel) Version dieses Hash.
Nach dem Start kann Ihre Anwendung überprüfen, ob die Signatur des Hashs gut oder schlecht ist (d. H. Von Ihrer Firma signiert wurde).
Dies bindet nicht nur Ihre Software an eine bestimmte Hardwarekonfiguration, sondern zwingt die Cracker auch, Ihre Anwendung zu patchen (da sie den öffentlichen Schlüssel von Ihrer ausführbaren Datei patchen und ersetzen müssten, um ein keygen zu schreiben). Viele Leute ziehen es in Betracht, einen Riss, der aus verschiedenen Quellen stammt, zweimal zu installieren, anstatt nur eine gültige Seriennummer einzugeben, die von einem keygen kopiert wurde.

Bearbeiten:
Um die Signatur des Hash zu überprüfen, können Sie alles von RSA über DSA zu ECC kann verwendet werden. Ich kann Crypto ++ oder libTomCrypt dafür.

    
newgre 10.02.2009, 21:17
quelle
0

Es gibt keine zuverlässige Möglichkeit, dies in einem Vanilla-PC zu tun; Menschen haben seit Jahren versucht. Das Problem besteht darin, dass Sie jederzeit eine Komponente ändern können, einschließlich der CPU und der BIOS-ROMs. Die engsten Leute, die gekommen sind, verwenden einen kryptografisch geschützten Dongle ", aber das hat sich sowohl in der Bedienung als auch in der Bedienung als unbefriedigend erwiesen sehr sicher.

Wenn Sie sich etwas einfallen lassen, patentieren Sie es; es wäre sehr wertvoll.

    
Charlie Martin 10.02.2009 21:16
quelle
0

Wie die anderen gesagt haben, gibt es nichts perfektes für das, was Sie wollen. Ich machte einen halbherzigen Versuch für ein ähnliches Problem und endete mit einer Mischung aus Drive Volume ID (nicht gut, weil es neu formatiert werden kann) und dem OS-Key (aus Windows).

Am Ende habe ich nicht viel Zeit darauf verwendet, als wollten die Leute wirklich Ihre Software knacken, dann werden sie das wahrscheinlich können. Ich habe die dinky Lizenz "Schutz", aber es ist ziemlich arm.

Verbringen Sie die Zeit / Mühe darauf, dass sie es kaufen wollen, indem Sie es hervorragend machen.

    
Tim 10.02.2009 21:22
quelle

Tags und Links