Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Hardwareinfos (https://www.delphipraxis.net/5789-hardwareinfos.html)

torud 12. Mär 2007 14:33

Re: Hardwareinfos
 
GREAT MA DEAR!!!

Also ich habe nun die neue Version in Nutzung und es funzt hervorragend. Habe das Tool 10 mal gestartet und es wurde immer wieder die gleiche ID generiert. Prima...

Gibt es nun noch die Möglichkeit diese ID mit dem Namen des Nutzers zu verschmelzen, sozusagen daraus noch nen anderen Code zu generieren? Ich habe sowas noch nie gemacht, denke aber, dass es Sinn machen "könnte". Den Namen schreibe ich immer mit in die LizenzDatei...

Ich hatte mir gerade deine Funktion so schnön mit Bindestrichen aufgetrennt. Ok, was solls, aber natürlich ist es sinnvoller die GETCPUID nur einmal aufzurufen...

torud 12. Mär 2007 14:37

Re: Hardwareinfos
 
Hm, mit der neuen Version erhalte ich folgende Fehlermeldung:

Kein Argument für Format '%d'

himitsu 12. Mär 2007 14:47

Re: Hardwareinfos
 
Zitat:

Zitat von torud
Hm, mit der neuen Version erhalte ich folgende Fehlermeldung:

Kein Argument für Format '%d'

jupp grad gemrkt ... hatte ID[4] ausversehn gelöscht :stupid:

Zum Verbinden gibt's viele Möglichkeiten.
Einfach irgendwie Mathematisch verrechnen/kombinieren ;)

hier z.B. ganz einfach per XOR:
Delphi-Quellcode:
Function GetCode(Name: String): String;
  Var ID: TCPUID;
    i: Integer;

  Begin
    If IsCPUID_Available Then Begin
      ID := GetCPUID;
      Result := Format('%d%d%d%d', [ID[1], (ID[2] shr 16) and $FF, ID[3], ID[4]]);
    End Else Result := '45187921234890234790';
    While Length(Name) < 20 do Name := Name + Name;
    While Length(Result) < 20 do Result := Result + Result;
    For i := 1 to 20 do Result[i] := Char(Ord(Result[i]) xor Ord(Name[i]));
    SetLength(Result, 20);
  End;
Möglich wären auch Hashverfahren und Ähnliches.
z.B.:
Delphi-Quellcode:
If IsCPUID_Available Then Begin
  ID := GetCPUID;
  Result := Format('%d%d%d%d', [ID[1], (ID[2] shr 16) and $FF, ID[3], ID[4]]);
End Else Result := '45187921234890234790';
MD5Init(Context);
MD5Update(Context, PChar(Result), Length(Result));
MD5Update(Context, PChar(Name), Length(Name));
MD5Final(Context);
Result := MD5ToString(Context);
(die MD5-Funktionen sind aus meiner eigenen Bibliothek und die Aufrufe müßten demnach eventuell an jene angepaßt werden, welche ihr verwendet)

torud 13. Mär 2007 07:14

Re: Hardwareinfos
 
Hallo himitsu,

vielen Dank für Deinen Support! Es funktioniert alles super. Sicher bietet das alles nicht den absoluten Schutz, aber es gehört schon etwas kriminelle Energie dazu, diese Wege auszuhebeln und für Otto-Normalverbraucher reichen diese Schutzfunktionen, wie ich finde. Wenn ich kann, revanchiere ich mich mal...

taktaky 24. Aug 2007 22:46

Re: Hardwareinfos
 
Hallo,

vielleicht können Sie mir über die Format meiner CPU-ID helfen?
da:
http://www.delphipraxis.net/internal...=767325#767325

Gruß


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:02 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz