Seriennummer von Hardware auslesen
-
Hallo!
Im Zuge eines Projektes des Software Schutzes, möchten wir die Seriennummern verschiedener Hardware auslesen. (CPU, Netzwerkkarte, Festplatte)
Ich habe schon einiges über WMI gesehen und gelesen vorallem in Verbindung mit DotNET, doch stieß dies auf ablehnung, da es vorkommt das nicht überall WMI installiert ist.
Nun möchte ich wissen ob mir jemand sagen kann wie ich das über Windows APIs realisieren kann, ich hab zwar schon einige Beispiele gefunden, doch waren die Informationen bei weiten nicht so umfangreich wie unter WMI.
Bitte um Rat.
mfg
Hofmann Michael
-
DarkHawk schrieb:
, da es vorkommt das nicht überall WMI installiert ist.
Meines Wissens gibt es da ein Redistributable Package, danach solltest Du mal schauen (eben weil Du vom API keine so umfangreiche Unterstützung bekommst). Allerdings halte ich eine solche Art des Software Schutzes für schrecklich und schlimm. Meine Meinung, wird wohl eine Frage des persönlichen Geschmacks sein.
-
Das heißt dieses Package installiert die WMI Unterstützung?
Kann ich eigentlich nur aus DotNET die WMI Informationen auslesen? Ich hab bis jetzt nur Beispiele gefunden die unter DotNET realisiert waren, dass würde aber bedeuten das der Kunde DotNet installiert haben muß.
Wünschenswert wäre das ansprechen von WMI unter VB6 oder VC++6
Liebe Grüße
Michi
-
Suchfunktion benutzen.
-
-
DarkHawk schrieb:
Das heißt dieses Package installiert die WMI Unterstützung?
So ist es. Das steht sogar gleich auf der Startseite der Doku. Du hast das '.NET Framework Redistributable' zu nehmen.
DarkHawk schrieb:
Kann ich eigentlich nur aus DotNET die WMI Informationen auslesen? Ich hab bis jetzt nur Beispiele gefunden die unter DotNET realisiert waren, dass würde aber bedeuten das der Kunde DotNet installiert haben muß.
Das geht auch ohne dotNET, flenders hat bereits ein passendes Beispiel verlinkt.
DarkHawk schrieb:
Wünschenswert wäre das ansprechen von WMI unter VB6 oder VC++6
Absolut kein Problem, wie das verlinkte Beispiel zeigt. Wünschenswert ist aber eher der Verzicht auf solche 'Sicherheits-Vorkehrungen'.
-
Ok, vielen Dank für die vielen Informationen, werd dies diese Woche mal ausprobieren.
Vielen Dank
Lg
Michi
-
Hallo Leute,
tut mir leid dieses Thema wieder aufgreifen zu müssen, war jetzt länger unterwegs.
Ich hab mich ein wenig mit WMI beschäftigt und verschiedensten Hardwarekomponenten ausgelesen. Leider ist es das auf verschiedenen Testsystemen ( ca 20 Rechner ) mit gemischter Hardware ( AMD, INTEL ) nichts brauchbares zustande kam.
Mal erhielt ich eine CPU ID (SerialNumber) mal nicht. Meißtens ist es so das bei AMD Prozessoren Blank zurückkommt.
Bei Mainboards hab ich auch so meine Probleme größtenteils kam Blank zurück.
Ich brauch eine eindeutige Identifikation die es nur einmal auf der Welt geben kann.
Es ist so das wir vom Hardware Schutz (dongles) weggehen zum Softwareschutz. Es muß machbar sein das das Produkt nur "einmal" auf einem Rechner installiert werden kann. Anhand bestimmter Lizenznummern hat der Kunde noch Berechtigung auf verschiedene Programmmodule. Aber das ist nebensache.
Mit den Dongles ist es im moment so das Kunden eine Version auf der Workstation installieren, eine Version auf dem Notebook und dann den Dongle abstecken und am Notebook anstecken, natürlich mit den Berechtigungen der der Workstation zahlen aber nur einmal. Das darf in Zukunft nicht mehr sein.
Das Produkt muß also eindeutig an die Hardware gebunden werden, nur leider ist das schlecht zu realisieren wenn ich überwiegend Blank zurückbekomme und andere Werte nicht eindeutig sind.
Hat wer in diesem Gebiet schon Erfahrung und kann mir ein paar Tips geben.
Liebe Grüße
Michi
-
Also in etwas sowas wie bei Windows XP?! Du könntest doch auch verschiedene Sachen kombinieren - irgendwas wird doch sicher einen Wert haben, oder?
-
die seriennumer der cpu lässt sich doch schnell über asm (cpuid) auslesen ab p3 ist sie eineindeutig allerdings weis ich nicht wie es mit amd aussiehst eventuell findest du etwas auf ihrer developer home.
-
Kann man das im Bios für den P3 nicht deaktivieren - oder kommt man da per asm trotzdem dran?!
-
ja kann mann glauch ich deaktivieren, aber man könnte vorher checken ob er aus ist, dann anschalten nummer auslesen und wieder aus. ich denke schon das geht.
http://www.syssoft.uni-trier.de/systemsoftware/Download/Fruehere_Veranstaltungen/Seminare/Prozessorarchitekturen/Prozessorarchitekturen-2.html
hier ist zumindest beschrieben wie es zu deaktiveren geht also muss es auch an gehen.
-
Man kann's nicht mehr einschalten, sonst wäre es ja völlig sinnlos, dass man es überhaupt ausschalten kann.
An OP: Wie nerve ich meine Benutzer möglichst effektiv?
Für solche Software, die sich ständig weigert, zu starten, weil man einen anderen Grafiktreiber, eine andere Festplattenpartitionierung, anderen Bootloader, mehr Ram, neues BIOS, anderes Servicepack oder eine andere Klobrille verwendet, sollte man sich schleunigst einen Crack besorgen.
-
Einen Pool aus mehreren Hardwarekomponenten haben wir auch schon überlegt. Z.B. 6 Geräte 4 davon müssen übereinstimmen.
Das Problem ist aber das viele Hardware keine Informationen zurückliefern, was dann tun?
Wünschenswert währen hier Erfahrungsberichte von Personen die mit diesem Thema schon zu tun hatten.
Liebe Grüße
Michi