2008-09-19 21 views

Odpowiedz

5

Kilka rzeczy może warto rozważyć:

Sprawdź suma DLL. Używając cryptographic hash function, możesz zapisać to wewnątrz pliku licencji lub wewnątrz biblioteki DLL. Zapewnia to metodę weryfikacji do ustalenia, czy mój oryginalny plik DLL został unhakowany, czy też jest to plik licencji dla tej biblioteki DLL. Kilka prostych technik zamiany bajtów może szybko przenieść twoją funkcję skrótu z utartych ścieżek (a zatem nie jest łatwa do odtworzenia).

Nie przechowuj hasza jako struny, podziel je na niepodpisane szorty w różnych miejscach.

Jak powiedział Larry, adres MAC jest dość powszechny. Istnieje wiele przykładów tego, jak uzyskać to na The Code Project, ale należy pamiętać, że łatwo jest udawać te dni.

Moja sugestia, powinny być używane klucze private/public do generowania licencji.

Krótko mówiąc, tryby ataku będą binarne (zmodyfikuj instrukcje pliku DLL), więc chroń się przed tym lub generuj klucze, aby każda licencja była dla użytkownika, komputera, a nawet konkretnej instalacji.

4

Możesz sprawdzić licencję wewnątrz DllMain() i umrzeć, jeśli nie zostanie znaleziony.

+0

Poczytaj o tym, co wolno robić w DllMain, to niewiele! – MSalters

1

To zależy również od działania algorytmu licencji. Proponuję, abyś przeanalizował użycie czegoś takiego jak Diffie–Hellman key exchange (lub nawet RSA), aby wygenerować jakiś klucz publiczny/prywatny, który można przekazać użytkownikom w oparciu o pewne informacje.

(W zależności od aplikacji znam jeden przypadek, w którym napisałem kod licencyjny na umowę o firmie, użyłem numeru MAC address i kilku innych danych, zakodowałem go i zaszyfrowano skrót, podając "klucz" wartość ", jeśli numer rejestracyjny był prawidłowy). Dzięki temu plik klucza nie może zostać przeniesiony (lub przekazany) do innej maszyny, co "kradnie" oprogramowanie.

Jeśli chcesz kopać głębiej i unikać hakerów, to zupełnie inna temat ....

Powiązane problemy