Einzelnen Beitrag anzeigen

nytaiceman

Registriert seit: 15. Dez 2005
Ort: Schweiz, Bern
58 Beiträge
 
Delphi XE3 Professional
 
#9

AW: Nochmal Kopierschutz ...

  Alt 16. Sep 2015, 20:45
Ich hatte ein ähnliches Problem und musste Computer möglichst eindeutig identifizieren.
Vielleicht ist das für einen privaten Kopierschutz auch brauchbar.

Jeder Computer (PC, Notebook, Smartphones) verfügt über eine eindeutige UUID. Diese ist HW-seitig eingebrannt (Ähnlich der MAC Adresse einer Netzwerkkarte). Auch virtuelle Hardware verfügen darüber (Getestet aber nur mit VMWare).

Ich verwende dazu die uSMBIOS.pas (Z.B. von hier: https://theroadtodelphi.wordpress.co...ucing-tsmbios/)

Delphi-Quellcode:
// Uses: uSMBIOS

type
 TAUUID = Array[0..31] of WideChar;

// === Convert UUID ============================================================
function FormatUUID(UUID: TAUUID):String;
begin
  Result:=Copy(UUID,0,8)+'-'+Copy(UUID,9,4)+'-'+Copy(UUID,13,4)+'-'+Copy(UUID,17,4)+'-'+Copy(UUID,21,12);
end;

function ConvertUUID(UUID: TUUID):TUUID;
var i: Integer;
    tempUUID: TUUID;
begin
  tempUUID:=UUID;
  for i := 0 to 3 do tempUUID[i]:=UUID[3-i];
  for i := 4 to 5 do tempUUID[i]:=UUID[4+(5-i)];
  for i := 6 to 7 do tempUUID[i]:=UUID[6+(7-i)];
  Result:=tempUUID;

end;

// === Get UUID ================================================================
function GetUUID:String;
Var
  SMBios : TSMBios;
  LSystem: TSystemInformation;
  UUID,UUID2 : TAUUID; //Array[0..31] of WideChar;
  Dummy: TUUID;
begin
 SMBios:=TSMBios.Create;
 try
  LSystem:=SMBios.SysInfo;
  BinToHex(@LSystem.RAWSystemInformation.UUID,UUID,SizeOf(LSystem.RAWSystemInformation.UUID));
  Dummy := ConvertUUID(LSystem.RAWSystemInformation.UUID);
  BinToHex(@Dummy,UUID2,SizeOf(LSystem.RAWSystemInformation.UUID));
  Result := FormatUUID(UUID2);
 finally
  SMBios.Free;
 end;
end;
Wünsche gutes Gelingen!
Einfach ist nur einfach, wenn Einfach auch einfach ist!
Vermeintlich einfache Workarounds führen irgendwann zu Problemen!
  Mit Zitat antworten Zitat