![]() |
USB Stick als HardwareKey
Delphi-Quellcode:
hallo,
function KeyDrivesExists : DWORD;
var Z : Integer; pdwSerNum, dwMaxFNLen, dwFSysFlags : DWORD; pszVolumeLabel : array[0..11] of char; pszFSysName : array[0..64] of char; begin for Z := 0 to 25 do begin if GetLogicalDrives and (1 shl Z) <> 0 then begin if GetDriveType(PChar(Chr(Z + Ord('A')) + ':\')) =DRIVE_REMOVABLE then if GetVolumeInformation( (PChar(Chr(Z + Ord('A')) + ':\')), @pszVolumeLabel[0], SizeOf(pszVolumeLabel), @pdwSerNum, dwMaxFNLen, dwFSysFlags, @pszFSysName, SizeOf(pszFSysName) ) then Result := pdwSerNum; end; end; end; mit dieser Funktion will ich meinen USB Stick, oder sicher auch andere als Hardwarekey benutzen indem ich die Seriennummer auslese. klar also die Abfrage welche SN ok ist wird später abgefragt, meine Frage hat noch jemand einen Verbesserungsvorschlag und wieso bringt mir der Compiler immer Die Warnung "Rückgabewert der Funktion 'KeyDrivesExists' könnte undefiniert sein" ?? :gruebel: |
Re: USB Stick als HardwareKey
Result wird nur innerhalb einer IF-Abfrage zugewiesen.
|
Re: USB Stick als HardwareKey
Man sollte bei Funktionen am Anfang des Aufrufs erst einmal Result "initialisieren" heißt einen Wert zuweisen, dann kommt sowas auch nicht mehr vor ;)
|
Re: USB Stick als HardwareKey
Wie soll der code dan aussehen, erklärm mal.
|
Re: USB Stick als HardwareKey
hallo,
einfach nach begin, aber ncoh vor der schleifenbegin (For ...) Result := 0; einfügen dann gehts |
Re: USB Stick als HardwareKey
GetVolumeInformation() ist die Serial Nummer eine logischen Partition. Sie kann jederzeit gelesen und auch geändert werden. D.h. weiß ich das dein Schutz darauf basiert so reicht es wenn ich diese Serialnummer in Erfahrung bringe. Nun kann ich mein eigenes Medium, wie USB memorystic aber auch Compact Flash, Secure Digital uvm., benutzen. Ich ändere einfach deren logische Serialnummer auf Deine und habe dann sofort Zugriff. Also, ziemlich schlechte Idee, besonders weil diese Serial gerade mal 4 Bytes groß ist.
Dann wäre es schon besser einfach eine Datei in der Root abzulegen, die aus z.B. 256 Bytes Zufall besteht. Diese Datei, bzw. deren Inhalt, kann dann als Passwort zur Entschlüsslung externe Daten dienen. Dies beseitigt aber nicht das eigentliche Problem, das wenn ich an deinen Stick komme, dann auch Vollzugriff bekomme. Gruß hagen |
Re: USB Stick als HardwareKey
mhh
das wusste ich nicht dass man die ändern kann :pale: :wall: dass ist ein guter einwand der mir wohl viele sorgen bereitet, naja muss ich mir wohl was neues ausdenken oder dein vorschlag hört sich ja auch nicht schlecht an :coder: mal sehn |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:15 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz