Identyfikowanie komputera

0

Witam.

W jaki sposób mogę identyfikować komputer jako własnie ten jeden? Potrzebuje coś takiego jak Hardware Fingerprint.
Od razu mówię, że identyfikowanie po adresie MAC odpada. Muszę zliczyć ile komputerów faktycznie odpaliło dany plik, dlatego potrzebne jest własnie to "coś" unikalne dla każdego PC.

Pozdrawiam.

0
  1. Na każdym kompie wygenerować unikalny numer. Można taki numer zapisać jako ADS aby się nie dało łatwo usunąć przeciętnemu użytkownikowi.
  2. Można też dobrać się do danych na płycie głównej - ten przydługawy numer który jest wyświetlany na dole ekranu w czasie testu POST.

Dlaczego nie po MAC? Ma to jakieś wady?

0

W jaki sposób odczytać te dane z płyty głównej?

0

Ciekawy - bo adres MAC mozna latwo zmienic.

0

Fakt. MAC jak IP. Łatwo zmienić. Tyle że jeśli planujesz aby aplikacja działała na przeciętnym komputerze u przeciętnego użytkownika to identyfikacja po MAC jest w sam raz. Chyba że interesują cię komputery hakerów i script kides, którzy to często zmieniają MAC.

A nie lepiej wygenerować raz własny unikalny numer i zapisać go w ADS (Alternative Data Stream). Przeciętny user nie jest w stanie ci się dobrać do takiego pliku który jest zapisany w alternatywnym strumieniu danych. Ja swego czasu zapisywałem dane do pliku boot.ini. Łatwo to oprogramować. Zresztą do takiego pliku ADS możesz wrzucić film 700 MB i user się nie zorientuje bo zobaczy że boot.ini ma tylko kilkaset bajtów :-) . Minus jest taki że user musi używać system plików NTFS, ale w dzisiejszych czasach tu już standard.

Możesz też wyciągnąć numer seryjny partycji sytemowej. Ja do takiego numera dodawałem coś od siebie i zapisywałem w ADS. Przykłady jak pobrać numer seryjny partycji znajdziesz w gotowcach lub faq na tym portalu.

Co do płyty głównej - jak wiesz bios jest kopiowany do pierwszego megabajta pamięci ram, a potem wykonywany. Tam znajdują się dane biosu które można pobrać z systemu. Przykłady są gdzieś w sieci. Nie podam linków bo nie mam i dawno się tym nie bawiłem. Ale to będzie dłubanie w pamięci, jak coś zchrzanisz to na kompach będą się pokazywały DeathBlue Screeny.

0

ja bym sie zainteresowal wmi. mozna stamtad wyciagnac mase informacji.
wez np numer seryjny systemu, date jego instalacji, numer seryjny dysku na ktorym jest system, zmiksuj to jakos i bedziesz mial unikalne 'ID'.

0

A serial number dysku może być?

function FindVolumeSerial(const Drive : PChar) : string;
var
   VolumeSerialNumber : DWORD;
   MaximumComponentLength : DWORD;
   FileSystemFlags : DWORD;
   SerialNumber : string;
begin
   Result:='';

   GetVolumeInformation(
        Drive,
        nil,
        0,
        @VolumeSerialNumber,
        MaximumComponentLength,
        FileSystemFlags,
        nil,
        0) ;
   SerialNumber :=
         IntToHex(HiWord(VolumeSerialNumber), 4) +
         ' - ' +
         IntToHex(LoWord(VolumeSerialNumber), 4) ;

   Result := SerialNumber;
end; (*FindVolumeSerial*)


procedure TForm1.Button1Click(Sender: TObject);
begin
Showmessage('Numer seryjny dysku: '+ FindVolumeSerial('C'));
end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1