USB-Stick Seriennummer

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Tafkadasom2k5
Beiträge: 1578
Registriert: 13.08.2005 14:31
Kontaktdaten:

USB-Stick Seriennummer

Beitrag von Tafkadasom2k5 »

Hallo!
Ich habe bereits die Suchfunktion konsultiert, habe aber mit meinen Schlüsselwörtern nichts für mich sinnvolles finden können...

Ich möchste wissen, ob USB-Sticks o.Ä. Speichermedien irgendeine feste, oder schwer veränderbare ID haben, an der dich das Speichermedium identifizieren lässt?
Das ganze muss mit PB ausgelesen werden können... So könnte man zum Beispiel einen bestimmten Stick von meinem Programm erkennen lassen, und Daten draufladen, die aber NUR AUF DIESEN STICK dürfen...
Normale Partitionsbezeichnung fällt also weg, und die meisten Datenträger-Seriennummern ändern sich ja schond durch einfaches Formatieren.. oder ist das bei Sticks anders?

Auch Win-API darf verwendet werden, das Ganze ist ein pures Windows-Projekt.

Gr33tz
Tafkadasom2k5
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
Benutzeravatar
Karl
Beiträge: 520
Registriert: 21.07.2005 13:57
Wohnort: zu Hause

Beitrag von Karl »

Also ja, es gibt eine Seriennummer. Das wurde mal in einer c't geschrieben. Wegen dieses Problems des Datenklaus in Unternehmen kann man in der Registry bestimmte Zugriffe von USB-Sticks erlauben bzw. verweigern. Das war noch gar nicht solange her (?grübel?) ....

... found some scribbles:

ftp://ftp.heise.de/pub/ct/listings/0604-216.zip


In der Windows-Registry:

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Enum/USB findest du eine hübsche Liste mit VID...&PID (auch bei USBSTOR).


Karl
The Kopyright Liberation Front also known as the justified ancients of Mumu!
PB 5.X
Benutzeravatar
Tafkadasom2k5
Beiträge: 1578
Registriert: 13.08.2005 14:31
Kontaktdaten:

Beitrag von Tafkadasom2k5 »

Hi! Hab auch noch was interessantes gefunden, kann die "News" da aber nicht sonderlich deuten...

http://www.delphipraxis.net/topic24852,0,asc,30.html

Gr33tz
Tafkadasom2k5

P.S.: THX, Karl, werde ich mir mal ansehen.. =)
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
Benutzeravatar
Tafkadasom2k5
Beiträge: 1578
Registriert: 13.08.2005 14:31
Kontaktdaten:

Beitrag von Tafkadasom2k5 »

Hat denn absolut keiner eine Ahnung, wie man das anstellen könnte..?

Oder seh ich einfach nur gerade den Baum vor lauter Wäldern nicht mehr..?!

Gr33tz
Tafkadasom2k5 :cry:
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
Benutzeravatar
Karl
Beiträge: 520
Registriert: 21.07.2005 13:57
Wohnort: zu Hause

Beitrag von Karl »

Ne simple Kiste wäre es, eine ID-Datei auf dem Stick abzuspeichern, die dann in PB gesucht wird.

Vielleicht hilft das etwas:

Code: Alles auswählen

;erstmal prüfen, ob ein Stick im USB-Port hängt
;das Laufwerk ist im Beispiel f:

If GetDriveType_("f:") = #drive_removable
  VName.s = Space(255)
  fType.s = Space(255)
  serial.l = 0
  GetVolumeInformation_("f:", @VName, 255, @serial, 0, 0, @fType, 255)
  Debug VName
  Debug serial
  Debug fType
EndIf
Gruß Karl
The Kopyright Liberation Front also known as the justified ancients of Mumu!
PB 5.X
Benutzeravatar
Tafkadasom2k5
Beiträge: 1578
Registriert: 13.08.2005 14:31
Kontaktdaten:

Beitrag von Tafkadasom2k5 »

Das Problem dabei ist, das es um eine Art Kopierschutz geht, dass nur dieser eine Stick Zugriff auf mein Programm und seine Daten hat...

Und diese "Lizenzdatei" auf nen anderen Stick zu kopieren ist ja wirklich keine Lösung für sowas---

Aber Danke, dass du dich meiner annimmst, Karl... :)

Gr33tz
Tafkadasom2k5
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
Benutzeravatar
Karl
Beiträge: 520
Registriert: 21.07.2005 13:57
Wohnort: zu Hause

Beitrag von Karl »

Probiers mit der Variablen serial. Konnte noch nicht checken, ob die sich mit der Formatierung verändert (aber wer formatiert schon USB-Sticks).

Gruß Karl
The Kopyright Liberation Front also known as the justified ancients of Mumu!
PB 5.X
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

such ma im forum hier...

MVXA hatte mal nen thread wos um sowas ging in bezug auf festplatte...
"Unveränderliche Seriennummer eines Datenträgers" oder wie das thema hieß...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
mueckerich
Beiträge: 220
Registriert: 13.09.2004 11:33
Wohnort: Am schönsten Flecken der Erde, zwischen PC und Motorrad

Beitrag von mueckerich »

Schau mal hier http://www.beyondlogic.org/usbnutshell/usb5.htm nach. So wie das hier beschrieben ist der Eintrag Seriennummer im Device-Descriptor nicht die wirkliche Seriennummer sondern (falls ich das richtig verstanden habe :oops:) nur ein Index und verweist auf den Configuration-Descriptor.

Habe im Augenblick leider wenig Zeit mich mit dem Thema zu beschäfigen. Ich hoffe die Beschreibung hilt Dir weiter. :allright:
Wenn Du einen funktionierenden Code hättest, wäre es toll wenn Du ihn dann hier posten würdest.

Edit: Hier als PDF zum runterladen http://www.beyondlogic.org/usbnutshell/ ... tshell.pdf
"Wenn Sie glauben, mich verstanden zu haben, dann habe ich mich falsch ausgedrückt" ( Alan Greenspan)
Benutzeravatar
Tafkadasom2k5
Beiträge: 1578
Registriert: 13.08.2005 14:31
Kontaktdaten:

Beitrag von Tafkadasom2k5 »

Soweit so schlecht,
die Routine von MVXA ließt immer nur den Volumeserial ein, der sich bei jeder Formatierung ändert, und sogar Damit
http://www.purebasic.fr/german/viewtopic.php?t=1804

Ich brauche aber immernoch eine recht eindeutige ID, da mein Projekt sonst sinnfrei wäre...
Die Routine von "Rings"
(http://www.purearea.net/pb/CodeArchiv/W ... sk_Info.pb)
konnte ich bisher aus ein paar Gründen noch nicht ausprobieren, und bin mir auch nicht wirklich sicher, ob es möglich ist damit USB Sticks zu identifizieren...

...noch irgendwelche Anmerkungen...? :(
Ich hoffe auch weiterhin auf eure Hilfe..

Euer
Tafkadasom2k5
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
Antworten