2009-02-10 9 views
8

Zajmuję się tworzeniem małej aplikacji windowsowej przy użyciu C++ i chciałbym uzyskać odciski palców oprogramowania/sprzętu na komputerze, tak aby może zezwolić na uruchomienie aplikacji tylko na niektórych komputerach.Jak uzyskać unikalny podpis sprzętu/oprogramowania z komputera z systemem Windows w/C++

Jestem świadomy, że aplikacja może zostać złamana, ale naprawdę jestem zainteresowany wdrożeniem czegoś takiego.
Wszelkie pomysły, jak mogę to osiągnąć?

+0

Uwaga: dodany znacznik ochrony przed kopiowaniem – newgre

Odpowiedz

10

Zależy to od tego, jak mocno chcesz powiązać oprogramowanie z podstawowym sprzętem. Na przykład można uzyskać informacje o sprzęcie z rejestru, odczytać adres MAC z karty LAN, pobrać producenta gfx, identyfikator procesora itp. I spopielić wszystkie te dane.
Następnie można użyć tego skrótu jako kodu challenge, który jest wysyłany do firmy. Klient otrzymuje następnie podpisaną (z kluczem prywatnym) wersję tego skrótu.
Po uruchomieniu aplikacja może sprawdzić, czy podpis skrótu jest dobry czy zły (tj. Został podpisany przez firmę).
To nie tylko wiąże twoje oprogramowanie z pewną konfiguracją sprzętową, ale także zmusza krakersy do łatania twojej aplikacji (ponieważ będą musiały załatać klucz publiczny z twojego pliku wykonywalnego i zastąpić go, aby napisać klucz). Wiele osób rozważa dwukrotne zainstalowanie pęknięcia uzyskanego z różnych źródeł w przeciwieństwie do wpisania prawidłowego numeru seryjnego skopiowanego z klucza.

Edit:
W celu sprawdzenia podpisu hash, cokolwiek z RSA nad DSA do ECC mogą być użyte. Mogę za to polecić Crypto++ lub libTomCrypt.

0

Nie ma niezawodnej metody znanej z tego na wanilii; ludzie próbowali od lat. Problem polega na tym, że możesz zmienić dowolny komponent w dowolnym momencie, w tym CPU i BIOS-ROM. Najbliżsi ludzie używają chronionej kryptograficznie "dongle", ale okazało się, że jest niezadowalająca w działaniu i niezbyt bezpieczna.

Jeśli coś wymyślisz, opatentuj to; byłoby to bardzo cenne.

0

Jak powiedzieli inni, nie ma niczego doskonałego na to, co chcesz. Zrobiłem bezmyślną próbę podobnego problemu i zakończyłem z mieszaniem ID woluminu napędu (niedobre, ponieważ można go ponownie sformatować) i kluczem systemu operacyjnego (z systemu Windows).

W końcu nie spędzałem zbyt wiele czasu, jakby ludzie naprawdę chcieli złamać twoje oprogramowanie, prawdopodobnie będą w stanie to zrobić. Zostawiłem dinky "ochronę" licencjonowania, ale jest dość ubogie.

Poświęć czas/wysiłek, aby je kupić, czyniąc je wyjątkowym.

Powiązane problemy