![]() |
funktionierende Unit die Hardware-IDs berechnet
In der Code-Library gibt es ja
![]() Leider berechnet sie alternierend jeweils 2 verschiedene Hardware-IDs für den selben PC was sie ziemlich sinnlos macht. Kennt Jemand noch andere Freeware-Komponenten oder Units die das machen? Bitte nur keine .dll-Dateien. Ich möchte mit der Hardware-ID kein Sicherheitssystem basteln sondern nutze diese nur für heuristische Analysen nachdem sie auf meinen Server übertragen wurden. |
Re: funktionierende Unit die Hardware-IDs berechnet
Bump!
Hat da echt Niemand eine Backmischung parat? |
Re: funktionierende Unit die Hardware-IDs berechnet
Versuche mal dir die Eigenschaften mal vor dem Hashen ausgeben zu lassen, dann sollte man sehen was da herumwackelt :stupid:
Das könntest du dann einfach weglassen. Aber wenn es dir nicht so um Sicherheit geht, würde so etwas, wie eine bei der Installation bzw. einmalig zufällig gewählte GUID vielleicht auch ausreichen? MfG, Bug |
Re: funktionierende Unit die Hardware-IDs berechnet
Wenn sich die GUID nur hardwarebezogen ändert, dann wäre das durchaus passabel.
|
Re: funktionierende Unit die Hardware-IDs berechnet
Hab das Problem bei der Unit gefunden und das ohne Debugger :)
Tritt nur bei Computern mit mehr als einer CPU auf. Bindet mal das Programm per Taskmanager immer auf den einen Core => Dann kommt immer der erste Key. Dann einmal auf den anderen Core binden => Es kommt immer der zweite Key generiert. Warum der Key also spontan wechselt ist leicht erklärt. Windows lässt den Code mal in Core 1 und mal in Core 2 laufen je nachdem welcher gerade weniger belastet ist. Also entweder du überarbeitest die Unit damit immer die gleiche CPUID erzeugt wird oder du nimmst das bei der Berechnung einfach raus. |
Re: funktionierende Unit die Hardware-IDs berechnet
Könnte man nicht jeweils alle CPUs des Computers in den Hash reinbauen? Wäre evtl die beste Methode.
|
Re: funktionierende Unit die Hardware-IDs berechnet
Ich habe den wackelnden Code- Teil gefunden (erster Block in gethardwareid):
Delphi-Quellcode:
Aber auch den Aufruf von getCPUSpeed() würde ich mir sparen: dieser Wert wird nicht weiter verwendet, aber innerhalb der Funktion 2x Sleep ausgeführt.
var a,b,c,d : Longword;
//... try asm mov eax,1 // eax registeri cpuid komutunun parametresidir db $0F, $A2 // cpuid komutu mov a,EAX mov b,EBX mov c,ECX mov d,EDX end; CPUID:=inttohex(a,8) + '-' + inttohex(b,8) + '-' + inttohex(c,8) + '-' + inttohex(d,8); except CPUID:='0000-D342-F921-M068'; end; MfG, Bug |
Re: funktionierende Unit die Hardware-IDs berechnet
Liste der Anhänge anzeigen (Anzahl: 1)
Wenn ich hwiddemo mit Delphi 2009 kompiliere und mittels gethardwareid mir eine ID generieren lasse, dann führt das zu einer Debugger-Exception (siehe Anhang).
Weiß Jemand woran das liegen könnte? |
Re: funktionierende Unit die Hardware-IDs berechnet
Schon mal mit F8 durch die Unit debuggt?
|
Re: funktionierende Unit die Hardware-IDs berechnet
Die Funktion MD5Print scheint der Bösewicht zu sein:
Delphi-Quellcode:
Nach der result-Zeile geht es in die Binsen.
function MD5Print(D: MD5Digest): string;
var I: byte; const Digits: array[0..15] of char = ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'); begin Result := ''; for I := 0 to 15 do Result := Result + Digits[(D[I] shr 4) and $0f] + Digits[D[I] and $0f]; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:20 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