Jaki jest najlepszy sposób zabezpieczenia użycia/wczytania biblioteki DLL za pomocą pliku licencji?Zabezpiecz plik DLL plikiem licencyjnym
Odpowiedz
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.
Możesz sprawdzić licencję wewnątrz DllMain() i umrzeć, jeśli nie zostanie znaleziony.
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 ....
- 1. Jak sprawdzić, czy plik jest plikiem EXE lub DLL?
- 2. Jak wykonać plik * .dll
- 3. utworzyć plik DLL w C#
- 4. Jak zatrzymać plik z wywołanym plikiem JAR
- 5. Sprawdza czy plik jest plikiem obrazu
- 6. Zabezpiecz statyczne pliki za pomocą kolby
- 7. Różnica między plikiem .msg a plikiem .eml
- 8. Jak przekonwertować aplikację konsoli na plik .dll?
- 9. Plik DLL dla Windows 7 64bit
- 10. Reading .doc plik używając DocumentFormat.OpenXml dll
- 11. Przeciążone funkcje w C++ DLL plik DEF
- 12. Jak zarejestrować plik .NET DLL w GAC?
- 13. Jak debugować plik DLL w Delphi
- 14. Jak utworzyć plik JAR zawierający pliki DLL?
- 15. Jakie są różnice między plikiem "plik podpisu" i plikiem "unsigned" pliku .apk?
- 16. Pliki DLL i LIB
- 17. Różnica między plikiem HDF5 a plikiem PyTables
- 18. Jak mogę załadować lokalny plik za pomocą jQuery? (z plikiem: //)
- 19. Zastąp plik Xib plikiem Main.storyboard w klasie delegatów aplikacji
- 20. Sprawdzanie, czy plik faktycznie jest plikiem Excela przy użyciu EPPlus
- 21. jak znaleźć ścieżkę docelową linku jeśli plik jest plikiem Link
- 22. Zarządzanie plikiem .git rozmiar
- 23. Jaka jest różnica między plikiem .so a .lo?
- 24. Jak utworzyć aplikację z pojedynczym plikiem .exe przy użyciu Pythona?
- 25. W jaki sposób są powiązane pliki Header (.h), plik biblioteki (.lib) i DLL (.dll)
- 26. Azure https z plikiem pfx
- 27. scp "nie jest zwykłym plikiem"
- 28. Różnica między plikiem support-v4.app.fragment a plikiem app.fragment?
- 29. Załaduj zestaw do potomnej aplikacji AppDomain i zwalniaj plik DLL
Poczytaj o tym, co wolno robić w DllMain, to niewiele! – MSalters