Autor |
Beitrag |
NetSpider
      
Beiträge: 123
Windows XP Pro
Delphi 7 Enterprise
|
Verfasst: Mo 04.06.07 19:56
Ich hab hier ein kleines Progrem.
Dieses kleine Programm soll die ID der installierten Prozessoren auslesen - das Problem ist aber, dass ich das Program bereits auf zwei Computern laufen hab lassen und die ID Nummern sind absolut identisch! Allerdings sind beide Computer mit einem Intel E6600 und einem Mainboard von Gigabyte (auch selbes Modell) ausgestattet. Normalerweise duerfte doch das nicht passieren, oder?
Hier mal der Code der die ID ausliest - ich gebs zu, der Code ist irgendwo ausm Internet und ich hab keine Ahnung von asm.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68:
| const ID_BIT = $200000; type TCPUID = array[1..4] of Longint;
function GetCPUID: string; function IntToPos(Value: Integer): integer; overload; begin if Value < 0 then Result := -Value else Result := Value; end;
function IntToPos(Value: Int64): int64; overload; begin if Value < 0 then Result := -Value else Result := Value; end;
function IsCPUID_Available: Boolean; register; asm PUSHFD POP EAX MOV EDX,EAX XOR EAX,ID_BIT PUSH EAX POPFD PUSHFD POP EAX XOR EAX,EDX JZ @exit MOV AL,True @exit: end;
function GetCPUID: TCPUID; assembler; register; asm PUSH EBX PUSH EDI MOV EDI,EAX MOV EAX,1 DW $A20F STOSD MOV EAX,EBX STOSD MOV EAX,ECX STOSD MOV EAX,EDX STOSD POP EDI POP EBX end;
begin if IsCPUID_Available then result := IntToStr(IntToPos(GetCPUID[1])) + IntToStr(IntToPos(GetCPUID[2])) + IntToStr(IntToPos(GetCPUID[3])) + IntToStr(IntToPos(GetCPUID[4])) else
result := '00000'; end; |
Ich hoffe, dass ich nichts vergessen hab. Die Funktion hab ich ineinandergeschachtelt, damit fuer diesen Test alles schoen beieinander ist.
Also, wie gesagt, ich hab auf zwei verschiedenen Rechnern (beide selbes Board und CPU) die gleichen IDs bekommen - das sollte eigentlich nicht sein, oder ist die Funktion die falsche?
Hier noch mein kleines Program. Es zahlt die vorhandenen Prozessoren und fuehrt so lange eine repeat-Schleife aus, bis sie durch alle Prozessorkerne mal durchgerauscht ist. Also nicht mit der Affinity rumspielen bevor man auf Start clickt.
Meine beiden IDs:
1782133120583011075053569
178216910336583011075053569
Vielleicht koennt ihr auch eure IDs posten.
lg NetSpider
Hier noch das Progg:
Einloggen, um Attachments anzusehen!
_________________ Wer in die Fußstapfen anderer tritt hinterlässt keine eigenen Spuren!
|
|
hathor
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 05.06.07 08:32
AMD Athlon 64 3200+ Clawhammer
ID: 391220480126614527
BTW:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| Procedure GetProcessorSerialNumber(var Z1,Z2,Z3:Integer); stdcall; const CPUID = $A20F; asm MOV EAX,1 DW CPUID MOV [Z1],EAX MOV EAX,3 DW CPUID MOV [Z2],EDX MOV [Z3],ECX end; |
Zuletzt bearbeitet von hathor am Di 05.06.07 09:20, insgesamt 1-mal bearbeitet
|
|
passiv
      
Beiträge: 270
WIN XP Professional
Delphi 7 Enterprise, Java (Eclipse), Python 2.5, Django 1.1
|
Verfasst: Di 05.06.07 09:01
nachdem ich nicht genau weiß was für CPU-Version ich hab:
Intel Pentium M processor 1.60GHz
175220703841343620097
_________________ Die Probleme, die es in der Welt gibt, sind nicht mit der gleichen Denkweise zu lösen, die sie erzeugt hat.
Albert Einstein
|
|
Silas
      
Beiträge: 478
Windows XP Home
Delphi 2005, RAD Studio 2007, MASM32, FASM, SharpDevelop 3.0
|
Verfasst: Di 05.06.07 09:19
Prozessor: Intel Celeron M 1.40 GHz
ID: 1752206601343620097 (  )
_________________ Religionskriege sind nur Streitigkeiten darüber, wer den cooleren imaginären Freund hat
|
|
Silas
      
Beiträge: 478
Windows XP Home
Delphi 2005, RAD Studio 2007, MASM32, FASM, SharpDevelop 3.0
|
Verfasst: Di 05.06.07 11:40
Ich weiß nicht, ob dir das was hilft, aber ich hab mal schnell ein Prog geschrieben, das den eingebrannten Prozessorstring in Hex ausliest und ausgibt.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69:
| program Project1;
{$APPTYPE CONSOLE}
uses SysUtils, Windows, Unit1 in 'Unit1.pas';
var estr1, estr2, estr3, estr4: DWord; estring: String;
begin try asm pushfd pop eax mov ebx,eax xor eax, 00200000h push eax popfd pushfd pop eax xor eax, ebx jnz @cpuidok push 0 call ExitProcess @cpuidok: mov eax, 80000002h cpuid mov estr1, eax mov estr2, ebx mov estr3, ecx mov estr3, edx end; estring := inttohex(estr1, 8) + inttohex(estr2, 8) + inttohex(estr3, 8) + inttohex(estr4, 8); asm mov eax, 80000003h cpuid mov estr1, eax mov estr2, ebx mov estr3, ecx mov estr3, edx end; estring := estring + inttohex(estr1, 8) + inttohex(estr2, 8) + inttohex(estr3, 8) + inttohex(estr4, 8); asm mov eax, 80000004h cpuid mov estr1, eax mov estr2, ebx mov estr3, ecx mov estr4, edx end; estring := estring + inttohex(estr1, 8) + inttohex(estr2, 8) + inttohex(estr3, 8) + inttohex(estr4, 8); writeln('CPUID verfuegbar, eingebrannter String (Hex): ' + estring); readln; except on E:Exception do Writeln(E.Classname, ': ', E.Message); end; end. |
_________________ Religionskriege sind nur Streitigkeiten darüber, wer den cooleren imaginären Freund hat
|
|
NetSpider 
      
Beiträge: 123
Windows XP Pro
Delphi 7 Enterprise
|
Verfasst: Di 05.06.07 13:42
Also, bis jetzt scheint ja jeder eine andere ID zu haben... Jetzt wuerd mich mal interessieren, was die ID eines Intel Core2 Duo E6600 - also, sollte einer von euch den selben Prozessor haben wie ich - bitte macht den ID-Test. Ich hab auf verschiedenen System komplett identische ID erhalten.
@Silas:
Hab dein Program getestet - das gibt einen ziemlich langen Hex-Wert aus. Wie bereits gesagt - in Assembler kenn ich micht aus. Der Code liest den Prozessor-String aus? Ist das sowas wie die Prozessor-ID? Mein Program liest ja irgendwie irgendeine Nummer aus dem Kern aus - d.h. viele Kerne viele Nummern...
Jedenfalls ist bei deinem Program die Nummer immer gleich - d.h. egal wie ich die Affinity setze - das Resultat bleibt gleich. Diese Nummer sollte dann auch immer ein Unikat sein, oder?
lg, NetSpider
_________________ Wer in die Fußstapfen anderer tritt hinterlässt keine eigenen Spuren!
|
|
mister_x
      
Beiträge: 85
Win 98, WIN 2000, WIN XP PRO
Delphi 2006
|
Verfasst: Di 05.06.07 14:31
NetSpider hat folgendes geschrieben: | Also, bis jetzt scheint ja jeder eine andere ID zu haben... Jetzt wuerd mich mal interessieren, was die ID eines Intel Core2 Duo E6600 - also, sollte einer von euch den selben Prozessor haben wie ich - bitte macht den ID-Test. Ich hab auf verschiedenen System komplett identische ID erhalten.
@Silas:
Hab dein Program getestet - das gibt einen ziemlich langen Hex-Wert aus. Wie bereits gesagt - in Assembler kenn ich micht aus. Der Code liest den Prozessor-String aus? Ist das sowas wie die Prozessor-ID? Mein Program liest ja irgendwie irgendeine Nummer aus dem Kern aus - d.h. viele Kerne viele Nummern...
Jedenfalls ist bei deinem Program die Nummer immer gleich - d.h. egal wie ich die Affinity setze - das Resultat bleibt gleich. Diese Nummer sollte dann auch immer ein Unikat sein, oder?
lg, NetSpider |
Ich hab den test gemacht bei meinen E6600
beide ham die selbe ID
178216910336583011075053569
1782133120583011075053569
also des gleiche wie bei dir....
ich hab auch en gigabyte mainboard (GA-965P-DS3)
_________________ Der Computer ist das genialste Produkt der menschlichen Faulheit
|
|
Kroko
      
Beiträge: 1284
W98 W2k WXP
Turbo D
|
Verfasst: Di 05.06.07 14:51
@NetSpider, was kommt denn bei Dir hier raus?
Bei Interesse suche ich mal die Quellen 
_________________ Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
|
|
NetSpider 
      
Beiträge: 123
Windows XP Pro
Delphi 7 Enterprise
|
Verfasst: Di 05.06.07 15:04
@mister_x:
*g*g*g* - das gleiche Board hab ich auch... Man oh man! Also irgendwie taugt diese Funktion gar net... Vielleicht is das so ne Nummer aus der man rausfinden kann welche Hardware installiert ist
@Kroko:
Dein Progg lauft unter Vista nicht - werds aber sofort unter XP testen...
OK, hab jetzt den Test gemacht:
Einloggen, um Attachments anzusehen!
_________________ Wer in die Fußstapfen anderer tritt hinterlässt keine eigenen Spuren!
|
|
MrSaint
      
Beiträge: 1033
Erhaltene Danke: 1
WinXP Pro SP2
Delphi 6 Prof.
|
Verfasst: Di 05.06.07 15:11
www.sandpile.org/ia32/cpuid.htmDein Rückgabewert der Funktion beschreibt den Prozessor-Typ also eindeutig, nicht den Prozessor. Vonn du EAX = 1 reinschiebst kommen nur Typ-Daten des prozessors zurück (z.B. was für Features er unterstützt etc.), welche natürlich gleich sind bei zwei Prozessoren gleicher Bauart. Vllt wäre es besser, wenn du einfach mal eine 3 in EAX reinschiebst statt der 1, laut Sandpile bekommst du dann die Seriennummer des Prozessors. Also etwa so: Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| asm PUSH EBX PUSH EDI MOV EDI,EAX MOV EAX,3 DW CPUID STOSD MOV EAX,EBX STOSD MOV EAX,ECX STOSD MOV EAX,EDX STOSD POP EDI POP EBX end; | Damit kommt bei mir, Intel Centrino mit 1,5 GHz folgende ID raus: 453304332400738472061 MrSaint EDIT: seh gerade, dass die Methode von hathor oben auch mit EAX = 3 arbeitet, die sollte also auch besser sein als die ursprüngliche.... EDIT2: Oh, laut sandpile soll man die CPU-Seriennummer mit CPU type/family etc. verknüpfen, evtl. noch mit dem Vendor-ID String. Ersteres macht hathors Code, der ist also besser als meiner... Wenn jetzt jemand den Vendor_ID String auch noch mit rein haben will, kann man die "Rückgabestruktur" ja noch etwas erweitern, und noch EAX = 0 mit CPUID auswerten....
_________________ "people knew how to write small, efficient programs [...], a skill that has subsequently been lost"
Andrew S. Tanenbaum - Modern Operating Systems
Zuletzt bearbeitet von MrSaint am Di 05.06.07 15:30, insgesamt 1-mal bearbeitet
|
|
Silas
      
Beiträge: 478
Windows XP Home
Delphi 2005, RAD Studio 2007, MASM32, FASM, SharpDevelop 3.0
|
Verfasst: Di 05.06.07 15:14
Joachim Rhode/Marcus Roming: Assembler hat folgendes geschrieben: | Funktion 8000_0002h:
EAX - Eingebrannter String
EBX - Eingebrannter String (Fortsetzung)
ECX - Eingebrannter String (Fortsetzung)
EDX - Eingebrannter String (Fortsetzung)
Funktion 8000_0003h:
EAX - Eingebrannter String
EBX - Eingebrannter String (Fortsetzung)
ECX - Eingebrannter String (Fortsetzung)
EDX - Eingebrannter String (Fortsetzung)
8000_0004h
EAX- -Eingebrannter String
EBX - Eingebrannter String (Fortsetzung)
ECX - Eingebrannter String (Fortsetzung)
EDX - Eingebrannter String (Fortsetzung) |
Ehrlich gesagt - mehr weiß ich nicht. Mein Programm gibt den String allerdings der einfachheit halber nicht als Solchen aus, sondern als Hex-Zahl, deswegen. Ich nehme aber mal an, dass er sowas wie eine Seriennummer darstellt.
_________________ Religionskriege sind nur Streitigkeiten darüber, wer den cooleren imaginären Freund hat
|
|
MrSaint
      
Beiträge: 1033
Erhaltene Danke: 1
WinXP Pro SP2
Delphi 6 Prof.
|
Verfasst: Di 05.06.07 15:17
Silas hat folgendes geschrieben: |
Ehrlich gesagt - mehr weiß ich nicht. Mein Programm gibt den String allerdings der einfachheit halber nicht als Solchen aus, sondern als Hex-Zahl, deswegen. Ich nehme aber mal an, dass er sowas wie eine Seriennummer darstellt. |
Nein. Das ist ein Beschreibungsstring des Prozessors, keine Seriennummer. Bei mir zum Beispiel irgendwas á la "Intel Pentium M 1,5 GHz" oder so... Der ist also _noch_ allgemeiner als die ursprüngliche Lösung....
_________________ "people knew how to write small, efficient programs [...], a skill that has subsequently been lost"
Andrew S. Tanenbaum - Modern Operating Systems
|
|
Kroko
      
Beiträge: 1284
W98 W2k WXP
Turbo D
|
Verfasst: Di 05.06.07 15:20
Sagt mir, wenn ich falsch liege, aber laut Deiner Anzeige, steht dort, dass die Seriennummer disabled ist, da wird sie ja dann auch nicht ausgelesen, oder?
_________________ Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
|
|
MrSaint
      
Beiträge: 1033
Erhaltene Danke: 1
WinXP Pro SP2
Delphi 6 Prof.
|
Verfasst: Di 05.06.07 15:22
Kroko hat folgendes geschrieben: | Sagt mir, wenn ich falsch liege, aber laut Deiner Anzeige, steht dort, dass die Seriennummer disabled ist, da wird sie ja dann auch nicht ausgelesen, oder? |
Meinst du mich? Wo steht das?
_________________ "people knew how to write small, efficient programs [...], a skill that has subsequently been lost"
Andrew S. Tanenbaum - Modern Operating Systems
|
|
Kroko
      
Beiträge: 1284
W98 W2k WXP
Turbo D
|
Verfasst: Di 05.06.07 15:26
MrSaint hat folgendes geschrieben: | Kroko hat folgendes geschrieben: | Sagt mir, wenn ich falsch liege, aber laut Deiner Anzeige, steht dort, dass die Seriennummer disabled ist, da wird sie ja dann auch nicht ausgelesen, oder? |
Meinst du mich? Wo steht das? |
Nein, ich meine NetSpider in Bezug auf Result.jpg
_________________ Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
|
|
NetSpider 
      
Beiträge: 123
Windows XP Pro
Delphi 7 Enterprise
|
Verfasst: Di 05.06.07 15:32
@MrSaint:
also, wenn ich 1 auf 3 aendere, dann kommt bei mir als Ergebnis 0000. Mach ich da irgendwas falsch?
@Kroko:
Ich hab mich auch gewundert, warum da 'disabled' steht - aber, ich kann dir da keine Antwort drauf geben. Was ist mit der Nummer drunter? Da steht doch was dort. Was ist das denn fuer eine Nummer? Erkennt dein Programm einen DualCore? Das wuerde das disabled vielleicht erklaeren - vielleicht. Und es ist ja eigentlich nur ein Prozessor - trotz 2 physikalischen Einheiten.
Also, wenns irgendwie moeglich ist, dann sollte das Programm am Ende die (richtige)Serien-Nummer des Prozessors ausgeben. Jetzt - wie oben schon gesagt - ist es ja eigentlich nur ein Prozessor - aber meine CPUCount-Funktion zeigt 2 an. Ist ja soweit in Ordnung, aber hat jetzt so ein DualCore eigentlich 2 Seriennummern wegen 2 Kernen oder nur eine, weil ich nur ein Bauteil in meinen PC reinstecke?
Und noch was - Assembler is echt lustig - im Moment verteh ich echt nur Bahnhof was diese Zeilen da machen... Trotzdem muss das Problem geloest werden!
Danke schonmal an alle!
_________________ Wer in die Fußstapfen anderer tritt hinterlässt keine eigenen Spuren!
|
|
Kroko
      
Beiträge: 1284
W98 W2k WXP
Turbo D
|
Verfasst: Di 05.06.07 15:42
NetSpider hat folgendes geschrieben: | ...
@Kroko:
Ich hab mich auch gewundert, warum da 'disabled' steht - aber, ich kann dir da keine Antwort drauf geben. Was ist mit der Nummer drunter? Da steht doch was dort. Was ist das denn fuer eine Nummer? Erkennt dein Programm einen DualCore? Das wuerde das disabled vielleicht erklaeren - vielleicht. Und es ist ja eigentlich nur ein Prozessor - trotz 2 physikalischen Einheiten. |
Alle Antworten ohne Garantie:
(1)Um diese ID gab es mal ein riesen Hickhack, die Datenschützer leifen Sturm, weil damit bestimmt Dinge möglich sein sollten, die es nicht geben sollte/dürfte. Daher wurde die ID schnellsten enabled/disabled per BIOS (?) gemacht. MS hätte damit ein zBsp eine todsicheren HardwareKey gehabt und ...
(2) mein Prog. erkennt keinen Dualcore, und bei ID disabled wird halt Blödsinn gelesen!
NetSpider hat folgendes geschrieben: | Also, wenns irgendwie moeglich ist, dann sollte das Programm am Ende die (richtige)Serien-Nummer des Prozessors ausgeben. Jetzt - wie oben schon gesagt - ist es ja eigentlich nur ein Prozessor - aber meine CPUCount-Funktion zeigt 2 an. Ist ja soweit in Ordnung, aber hat jetzt so ein DualCore eigentlich 2 Seriennummern wegen 2 Kernen oder nur eine, weil ich nur ein Bauteil in meinen PC reinstecke? |
(3) keine Ahnung, aber ich schätze mal ein Prozessor(mit zwei Kernen) eine ID
(4) Disabled heißt Disabled und sollte meiner Meinung nur per Bios änderbar sein.
NetSpider hat folgendes geschrieben: | Und noch was - Assembler is echt lustig - im Moment verteh ich echt nur Bahnhof was diese Zeilen da machen... Trotzdem muss das Problem geloest werden!
Danke schonmal an alle! |
(5) Viel Spaß!
_________________ Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
|
|
NetSpider 
      
Beiträge: 123
Windows XP Pro
Delphi 7 Enterprise
|
Verfasst: Di 05.06.07 15:59
Nun gut - ich moechte ja jetzt nicht das versuchen, was Microsoft nicht geschafft hat (  ). Ich meine diesen eindeutigen Hardware-Key.
Also - wenn ich das jetzt noch mal alles ein bisschen zusammenfasse:
Mein Programm liest Informationen ueber den Prozessor-Typ aus. D.h. Gleiche Prozessoren -> gleiche ID-Nummern.
Mein Programm zaehlt die installierten CPUs (SingleCPU = 1, DualCore = 2, QuadCore = 4, usw.) und liest die Seriennummern fuer jeden Kern aus...
Silas Version soll nicht so eindeutig sein, weil das Programm nur den Prozessor-String ausliest? Aber der aendert sich doch auch von Model zu Model, oder nicht? Also, im Endeffekt muesste es doch eigentlich das selbe sein - was die Unterschiedlichkeit der Nummern angeht.
Also - kann man jetzt eindeutige Hardware-IDs auslesen oder ist das gaenzlich nicht machbar? CPU braucht jeder (moderne) PC - wie schauts aus mit Mainboard, Southbridge, Northbridge oder dem RAM? Ist das da auch nicht moeglich?
NetSpider
_________________ Wer in die Fußstapfen anderer tritt hinterlässt keine eigenen Spuren!
|
|
MrSaint
      
Beiträge: 1033
Erhaltene Danke: 1
WinXP Pro SP2
Delphi 6 Prof.
|
Verfasst: Di 05.06.07 16:10
So, hab jetzt nochmal was wegen der Seriennummer. Habe festgestellt, dass die bei meiner CPU auch disabled ist  naja, auf jeden Fall sollte der Code tun:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47:
| type TPSN = record h, m, l : Cardinal; end;
function PSNAvailable: boolean; var edx_out : Cardinal; begin asm mov eax, 1 cpuid mov edx_out, edx end; Result := (edx_out and $40000) <> 0; end;
function GetPSN: TPSN; register; begin Result.h := 0; Result.m := 0; Result.l := 0; asm PUSH EBX PUSH EDI MOV EDI,EAX MOV EAX,1 DW $A20F STOSD MOV EAX, 3 DW $A20F MOV EAX, EDX STOSD MOV EAX,ECX STOSD POP EDI POP EBX end; end;
function PSNToString(p: TPSN): string; begin Result := IntToStr(p.h) + '-' + IntTostr(p.m) + '-' + IntToStr(p.l); end; |
Habe unter www.codeproject.com/system/PIIISN.asp gefunden, dass die "CPU-Seriennummer" sich wohl aus "Processor-signature-Bits" (EAX = 1) und "Seriennummer" (EAX = 3) berechnet.... Hab das nun mal gemahct. Inklusive Funktion, die überprüft, ob die CPU überhaupt eine Seriennummer hat oder ob nur Schrott raus kommt.... Ich weiß jetzt nicht wie's mit Multicores ist, hab sowas nicht und kann deshalb nix probieren...
Zu Silas' Version: Es ist halt so, dass es möglich wäre (keine Ahnung ob das gemacht wird, wäre aber durhcaus möglich) zwei CPUs zu fertigen, die die gleiche Taktfrequenz haben, aber eine andere "brand ID" haben (das mit dem µm). Dann wäre der String von Silas bei beiden CPUs identisch, die erste Version hätte aber unterschiedliche Werte..
Eine eindeutige Hardware-ID ist sowieso immer etwas problematisch, da der User ja auch einfach genau dieses Hardware-Teil ausbauen kann und ein neues einsetzen kann. Besser ist da ein Wert über viele Hardware-Teile zu machen, bei dem man dann rausrechnen kann, wieviele Teile sich geändert haben. Wenn sich dann > 3 Teile geändet haben nimmt man z.B. an, dass es nicht der gleiche Rechner ist. So macht das ja Windows mit seiner Aktivierung etc. Keine Ahnung wie die das aber genau berechnen, ist mit Sicherheit nicht ganz trivial.
MrSaint
_________________ "people knew how to write small, efficient programs [...], a skill that has subsequently been lost"
Andrew S. Tanenbaum - Modern Operating Systems
|
|
Kroko
      
Beiträge: 1284
W98 W2k WXP
Turbo D
|
Verfasst: Di 05.06.07 16:13
MrSaint hat folgendes geschrieben: | ...
Eine eindeutige Hardware-ID ist sowieso immer etwas problematisch, da der User ja auch einfach genau dieses Hardware-Teil ausbauen kann und ein neues einsetzen kann. Besser ist da ein Wert über viele Hardware-Teile zu machen, bei dem man dann rausrechnen kann, wieviele Teile sich geändert haben. Wenn sich dann > 3 Teile geändet haben nimmt man z.B. an, dass es nicht der gleiche Rechner ist. So macht das ja Windows mit seiner Aktivierung etc. Keine Ahnung wie die das aber genau berechnen, ist mit Sicherheit nicht ganz trivial.
MrSaint |
erzähle das mal MS: ich habe nur den Speicher aufgestockt und schon mußte ich mein WinDoofs neu identifizieren lassen 
_________________ Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
|
|
|