Zabezpieczanie programów - klucz sprzętowy

0

Witam i przechodzę od razu do rzeczy.
Napisałem program, który jest chroniony kluczem sprzętowym(unikalnym identyfikatorem komputera). Ale mam problem tan identyfikator komputera zmienia się po reinstalce systemu. Gdyż w części zabezpieczenia jest badanie serialu partycji, który się zmienia, jeżeli na przykład zmienimy rozmiar partycji.
Teraz proszę o pomoc, jak zrobić unikalny identyfikator komputera, który się nie zmienia po reinstalacji systemu. Jak pobrać serial DYSKU (nie partycji) w Delphi?
Będę wdzięczny za każdą pomoc. Tego, kto mi najbardziej pomoże wynagrodzę programem o wartości 20zł. :]

0

Zazwyczaj instalujemy tego samego windowsa, wiec o ile ufasz zabezpieczeniom MS (:D) to mozesz pobieraz seriala windowsa (w fakach gdzies widzialem).

0

to pytanie się ostatnio powtarza często - skorzystałem z wyszukiwarki forum i znalazłem ten link: http://www.swissdelphicenter.com/en/showcode.php?id=57 w tym temacie: http://4programmers.net/Forum/viewtopic.php?id=31165 w poście LKSa.

// dodane
okazuje się, ze ten link daje numer partycji, ale w kommensach jest:
http://www.swissdelphicenter.com/en/showcomment.php?id=57&detail=1345

0

znalazłem w moim helpie

var

SerialNum : pdword;

a, b : dword;

Buffer : array [0..255] of char;

begin

if GetVolumeInformation('c:', Buffer, SizeOf(Buffer), SerialNum, a, b, nil, 0) then

Label1.Caption := IntToStr(SerialNum^);

end;

lgie

0

Tego, kto mi najbardziej pomoże wynagrodzę programem o wartości 20zł. :]

Kwestia wyceny... to dla Ciebie ten program jest warty 20 zł :)
A co do klucza, to przecież nie musi on się opierać na dysku, jest tyle innych podzespołów w komputerze, a prawie każdy ma swój numer.

0

A co do klucza, to przecież nie musi on się opierać na dysku, jest tyle innych podzespołów w komputerze, a prawie każdy ma swój numer.

No dobra ale jak pobrać te seriale innych podzespołów w Delphi?</quote>

0

pobranie adresu MAC karty sieciowej masz w FAQ

0

Komponenty zlPortio umożliwiają takie rzeczy, jak na przykład odczytanie numeru płyty głównej.

0

pobranie adresu MAC karty sieciowej masz w FAQ

Nie każdy musi mieć karte sieciową, a adres MAC również można zmienić, trochę trzeba pokombinowac ale sie da.

Pobierz BIOS-ID płyty głównej i zmiksuj to, z adresem MAC karty sieciowej (jeżeli jest) do tego jeszcze model płyty głównej i adresy przerwań poszczególnych kompomentów.

0

To już totalna beznadzieja. Jedynym rozsądnym rozwiązaniem jest pobranie seriala płyty głównej. Przecież resztę sprzętu (już o konfiguracji ustawień typu adresy i IRQ nie wspominając) się zmienia, wymienia, przekłada itp. Generalnie "Komputer" ten i konkretny jest raczej cechowany płytą główną. To wymiana płyty głównej jest wymianą kompa. To że ktoś sobie wymieni kartę sieciową, to musi od razu nowy program kupować? To nonsens!

0

To już totalna beznadzieja. Jedynym rozsądnym rozwiązaniem jest pobranie seriala płyty głównej. Przecież resztę sprzętu (już o konfiguracji ustawień typu adresy i IRQ nie wspominając) się zmienia, wymienia, przekłada itp. Generalnie "Komputer" ten i konkretny jest raczej cechowany płytą główną. To wymiana płyty głównej jest wymianą kompa. To że ktoś sobie wymieni kartę sieciową, to musi od razu nowy program kupować? To nonsens!

nie zgadzam się. czy komputer to płyta główna? a jeśli zmienie TYLKO płytę z jakiegoś powodu to czy znaczy że mam nowy komputer? a karta sieciowa to tylko dlatego, że się je stosunkowo rzadko wymienia. Komputer to suma elementów. Więc połącz serial dysku, MAC karty, ilość RAMu, model procesora itp, to hashujemy MD5 i mamy identyfikator systemu.

0

Irekk nie lepiej numer seryjny jakiś zapisywać do exe'ka przy onClose formy? i problem z głowy :)

0

Irekk nie lepiej numer seryjny jakiś zapisywać do exe'ka przy onClose formy? i problem z głowy :)

Wracaj śpiewać... :/

0

No tak, ale wtedy wystarczy wymiana dowolnego z w/w elementów i wszystko idzie się... Natomiast karta sieciowa nie jest dobra. Wiele kompów po prostu jej nie posiada i już. A płyta główna? Jak często wymieniasz płytę główną pozostawiając resztę elementów niezmienioną? A jak często powiedzmy wymieniasz dysk, kartę graficzną czy coś? Śieciówki też wymienia się dość często. Wystarczy, że przerzucasz się na sieć o wyższej przepustowości a masz powiedzmy kartę obsługującą tylko 10 Mb/s. Wtedy musisz kartę wymienić. A płyta główna? Zazwyczaj wymienia się ją od razu z kilkoma innymi elementami, ew. parę starych ale jarych części się zostawia i mimo wszystko mówisz, że masz nowego kompa...

0

Teraz już wiesz, że trudno znaleźć taką rzecz w komputerze, która się rzadko zmienia ;)
Możesz zastosować się do porad Adama

MSystemInfo.Machine.BIOS.GetInfo;
MSystemInfo.Machine.BIOS.ExtendedInfo;

Otrzymasz identyfikator biosu w postaci na przyklad

11/29/1999-ALADDIN5-2A5KKSMCC-00

Data wersji biosu to jest jedyna rzecz, która się może w tym przypadku zmienić, jednak nikt nie aktualizuje biosu co pół roku.

Oczywiście możesz pobrać model płyty głównej i producenta, ale starsze płyty główne nie obsługują SMBIOS, nie wyciągniesz od nich nic prócz tego identyfikatora :/

0

MSystemInfo.Machine.BIOS.GetInfo;
MSystemInfo.Machine.BIOS.ExtendedInfo;

Coś mi to nie działa, czy aby na pewno nie trzeba dodać czegoś co sekcji Uses ??

Tyle mówicie jak pobierać te seriale ale żadnych konkretnych przykładów nie ma, a ja o to właśnie proszę :)

Komponenty zlPortio umożliwiają takie rzeczy, jak na przykład odczytanie numeru płyty głównej.

A czy można by to zrobić bez tego komponentu(może jakiś kodzik).

0

MSystemInfo.Machine.BIOS.GetInfo;
MSystemInfo.Machine.BIOS.ExtendedInfo;

Coś mi to nie działa, czy aby na pewno nie trzeba dodać czegoś co sekcji Uses ??

Zapomnialem dodac, ze do tego potrzebujesz kompomentu TMSystemInfo ;P
Ściągnij go tu

A czy można by to zrobić bez tego komponentu(może jakiś kodzik).

Można korzystając ze wstawek assemblerowskich.

0

Można korzystając ze wstawek assemblerowskich.

No dobra wiem że można ale z jakich wstawek. Już się trochę bawiłem asemblerem pod Delphi ale nie udało mi się uzyskać nic co by mi się przydało, dlatego byłbym wdzięczny za jakiś kod.]
Szczególnie za kod w asm jak pobrać serial dysku.

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