[C++] Hardwarecode

Google

Stammgast
Ich Programmiere in C++, meist mit dem Broland c++ Builder. Um mein Programm vor Missbrauch zu schützen, möchte ich eine obligatorische, telefonische Aktivierung einbauen (ähnlich wie bei Microsoft). Deshalb muss ich aus der Hardware d3es Benutzers irgendein Code auslesen können, damit ich damit den Aktivierungsschlüssel generiern kann. Deshalb meine Frage: Wie kann ich einen Code auslesen, der bei jedem PC anders ist? Er muss nicht besonders sicher sein, es würde auch schon reichen den Code von nur einem Bauteil zu haben.

Vielen Dank
 
A

abu

Guest
Eine einfache Lösung wäre, die HDD-Serialnumber zu verwenden. Diese kann irgendwie per WMI ausgelesen werden. Ich persönlich halte nicht viel von solchen "Schutzmassnahmen". Wenn es etwas kosten darf, würde ich ein ein kommerzielles Produkt zurückgreifen, welches dann aber wesentlich mehr bietet. Mein Favorit hier ist ASProtect, dieses kann als Shareware ausprobiert werden.

http://www.aspack.com/asprotect.html
 

Stromer92

Stammgast
Ich Programmiere in C++, meist mit dem Broland c++ Builder. Um mein Programm vor Missbrauch zu schützen, möchte ich eine obligatorische, telefonische Aktivierung einbauen (ähnlich wie bei Microsoft). Deshalb muss ich aus der Hardware d3es Benutzers irgendein Code auslesen können, damit ich damit den Aktivierungsschlüssel generiern kann. Deshalb meine Frage: Wie kann ich einen Code auslesen, der bei jedem PC anders ist? Er muss nicht besonders sicher sein, es würde auch schon reichen den Code von nur einem Bauteil zu haben.

Vielen Dank

wenn du nicht was richtig professioneles machst kannst dus gleich
lassen. Sogar professionele Programme wie Photoshop, der über 1000.- kostet, sind geknackt (programmkeygen + aktivierungskeygen)...

Da hast du echt keine chance...
 
A

abu

Guest
wenn du nicht was richtig professioneles machst kannst dus gleich lassen. Sogar professionele Programme wie Photoshop, der über 1000.- kostet, sind geknackt (programmkeygen + aktivierungskeygen)...

Da hast du echt keine chance...

Ich bin 100% deiner Meinung. Ausser vielleicht der Punkt mit der Chance...

IMHO geht es vor allem darum, dem 0815-User die unkontrollierte Vervielfältigung der Software zu erschweren. Verhindern kann man es, wie du richtig bemerkt hast, kaum.
 

maedi100

Stammgast
frage: willst du etwa 24 Stunden am Telefon hängen und immer den Leuten deine Software aktivieren? Oder möchtest du in eine Telefonanlage investieren?
 
A

abu

Guest
@maedi100: Du hast natürlich recht. Die Sache mit der telefonischen Aktivierung finde ich auch schräg.
 

Google

Stammgast
Nein es geht nicht darum. Damit das Programm nicht unkontrolliert verbreitet wird, hab ich ein System eingebaut welches das Programm nur startet wenn eine Gültige Aktivierungsdatei und ein Aktivierungs registry-key vorhanden ist. Meine Kunden sind nicht sehr Computerbegabt, trotzdem hat es jemand gemerkt, dass man einfach alle reg-keys des Programms und alle Programmdateien einer Aktivierten Version Kopieren muss. Deshlab möchte ich in den Dateien einen Code schreiben der aus einer Zahl des PCs berechnet wird. Dann würde die Methode nicht mehr funktionieren. Vor Keygens und Cracks hab ich keine Angst, das schaffen die, die das Programm haben nicht.
 
A

abu

Guest
@Google: Dann könntest du ja einfach einen Fantasie-RegKey erstellen, welcher keine Rückschlüsse auf deine Firma erlaubt. Den kopieren deine "Priraten" dann ja nicht mit, da sie von dessen Existenz nichts wissen. Klar, mit Tools wie RegMon lässt sich das auch aushebeln. Aber einen Versuch ist es ja vielleicht wert.
 

c0d3r ph4ant0m

Stammgast
evt.

Die HDD ID auslesen und sie mittels einer Verschlüsselung auf dem Bildschirm der Telefonaktivierung anzeigen.
Den Code liest dir der Kunde dann vor und du ver bzw entschlüsselst ihn und gibst ihn dem Kunden zurück. dieser gibt dann den Code ein, und dieser wird dann in einem RegKey oder einem File gespeichert und bei jedem Start des Programms wird überprüft ob die aktuelle HD ID mit der im File oder RegKey gespeicherten HD ID übereinstimmt...

Du könntest evt. die HD ID mittels einem OneWayAlgorythmus verschlüsseln, was, wenn jemand den RegKey oder das File entdeckt, das Entschlüsseln und somit das Entdecken deiner Aktivierungsmethode erheblich erschwert...

Entweder du nutzt diesen Code: schrieb:
BOOL GetVolumeInformation(
LPCTSTR lpRootPathName, // root directory
LPTSTR lpVolumeNameBuffer, // volume name buffer
DWORD nVolumeNameSize, // length of name buffer
LPDWORD lpVolumeSerialNumber, // volume serial number
LPDWORD lpMaximumComponentLength, // maximum file name length
LPDWORD lpFileSystemFlags, // file system options
LPTSTR lpFileSystemNameBuffer, // file system name buffer
DWORD nFileSystemNameSize // length of file system name
buffer
);

Oder du versuchst es mit der HD ID Dll von Fedra (http://www.soft.tahionic.com/download-hdd_id/HDD-ID-Utility.zip)
 
Oben