Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi USB Stick als HardwareKey (https://www.delphipraxis.net/10436-usb-stick-als-hardwarekey.html)

hm988 18. Okt 2003 16:41


USB Stick als HardwareKey
 
Delphi-Quellcode:
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;
hallo,
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:

Tom 18. Okt 2003 17:01

Re: USB Stick als HardwareKey
 
Result wird nur innerhalb einer IF-Abfrage zugewiesen.

phlux 18. Okt 2003 17:37

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 ;)

Fridolin4711 20. Okt 2003 18:08

Re: USB Stick als HardwareKey
 
Wie soll der code dan aussehen, erklärm mal.

hm988 20. Okt 2003 18:14

Re: USB Stick als HardwareKey
 
hallo,

einfach nach begin, aber ncoh vor der schleifenbegin (For ...)

Result := 0; einfügen dann gehts

negaH 20. Okt 2003 19:19

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

hm988 20. Okt 2003 19:35

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