Mam aplikację Windows C++. Podpisuję nasz instalator i mój plik wykonywalny, ale obecnie nie podpisuję plików DLL (takich jak zlib1.dll). Podpisywanie ich również nie jest wielką sprawą, ale czy ktoś może wyjaśnić, na czym polega korzyść? Na przykład, czy mój program będzie wyglądał inaczej niż oprogramowanie AV lub zapora ogniowa, jeśli wszystkie jego zależności są podpisane? Czy użytkownicy otrzymają inne ostrzeżenia?Czy mogę podpisać moje pliki DLL?
Odpowiedz
Twój program nie będzie wyglądać inaczej niż AV lub zapora. Sprawdzą podpisy na twoim pliku wykonywalnym, który już podpisałeś. Podpisanie plików dll ma sens, gdy sam weryfikujesz te podpisy przed ich załadowaniem. Zapewnia to integralność wszystkich bibliotek dll w czasie wykonywania. Zalecaną bezpieczną praktyką jest podpisywanie wszystkich plików binarnych, które wysyłasz i sprawdzaj ich podpisy w czasie wykonywania. Jeśli twoje biblioteki dll mają być używane przez inne produkty, musisz je podpisać, ponieważ te produkty będą chciały zweryfikować ich autentyczność i integralność.
A co z niejawnym łączeniem? Czy istnieje sposób weryfikacji podpisu w tym ustawieniu, czy też konieczne jest przekonwertowanie wszystkich ładunków DLL na jawne łączenie (tj. Wywołania LoadLibraryEx)? –
Świetne pytanie, Brent. Chciałbym znać odpowiedź. – twk
Nie sądzę, że możliwe jest weryfikowanie podpisów dla niejawnie połączonych bibliotek dll, ponieważ biblioteki DLL zostaną załadowane przed uruchomieniem twojego kodu. Jednak znam jeden produkt, który jawnie ładuje biblioteki DLL, do których niejawnie łączy się tylko w celu zweryfikowania podpisu . – 341008
- 1. Czy mogę vim szanować moje pliki .gitignore?
- 2. Jak podpisać autonomiczne pliki JAR ProGuard'ed Scala?
- 3. Jak wykonać zadanie Ant, aby podpisać i spakować wszystkie moje pliki JAR?
- 4. Pliki DLL i LIB
- 5. Jak podpisać plik DLL Assembly .NET o silnej nazwie?
- 6. Czy mogę podpisać zespół, dla którego nie mam kodu źródłowego?
- 7. Jak mogę silnie podpisać zewnętrzną bibliotekę DLL, zachowując jednocześnie metadane zespołu?
- 8. Jak utworzyć plik JAR zawierający pliki DLL?
- 9. Czy mogę odtworzyć inżynierię własną bibliotekę dll?
- 10. Czy mogę śledzić tylko moje zadania TODO w Visual Studio?
- 11. Czy muszę podpisać mój manifest ClickOnce?
- 12. Czy można podpisać aplet java za darmo?
- 13. Czy mogę uczynić moje pliki cookie ASP.NET FormsAuthentication bardziej bezpiecznymi poprzez powiązanie ich z identyfikatorem sesji?
- 14. Gdzie są moje pliki bazy danych H2?
- 15. Czy mogę dodać pliki .h i .cpp do projektu C#?
- 16. Czy mogę osadzać pliki CSS/JavaScript w aplikacji internetowej?
- 17. Gdzie mogę umieścić moje drwiny?
- 18. Czy mogę obsługiwać pliki MP3 w PHP?
- 19. Czy mogę scalać pliki w git?
- 20. Jak podpisać kod tylko plikiem .SPC?
- 21. Jak mogę skonfigurować mój projekt TypeScript VS 2013, aby skompilować moje pliki maszynopisu, ale wykluczyć moje node_modules?
- 22. Czy mogę usunąć lub ukryć moje adnotacje w MKMapView?
- 23. Czy mogę skompresować gzip wszystkie moje treści HTML (strony)?
- 24. Czy mogę udostępnić moje prywatne repozytorium GitHub przez link?
- 25. Czy mogę umieścić moje połączenie sqlite i kursor w funkcji?
- 26. Czy mogę budować wszystkie moje smaki klasy gradle na raz?
- 27. Jak mogę sprawdzić, czy wszystkie moje funkcje init zostały wywołane?
- 28. Uwierzytelnianie DLL w C#
- 29. Jak podpisać Java Midlet?
- 30. Jak podpisać MSI?
Dlaczego ich nie podpisać? Zapłaciłeś już za certyfikat - więc podpisanie ich zajmuje tylko kilka sekund w trakcie kompilacji. Dlaczego go pominąć? – Tim
Tim, prawdopodobnie i tak to zrobię, jestem tylko ciekawy, jaki jest efekt. – twk