Sprawdzenie czy plik wykonywalny jest podpisany cyfrowo

0

Witam,
Od dłuższego czasu próbuję napisać programik, który zweryfikuje czy plik wykonywalny (*.exe) jest podpisany cyfrowo (certyfikatem DER; *.cer). Miałby on działać w taki sposób, że wskazuję plik podpisany cyfrowo oraz certyfikat i no i wtedy powinno nastąpić sprawdzenie. Kombinowałem z klasami Signature oraz Certificate ale nie udało mi się nic osiągnąć. Czy ktoś próbował coś takiego robić? Jeżeli tak to proszę o jakieś info. Z góry dziękuję.

PS.
Szukałem w internecie ale jak widać nie znalazłem rozwiązania

0

Na pewno jestes w dobrym dziale? Java i exe? (wiem ze sie da, ale...)

0

Dodam jeszce, że mam taką koncepcję na rozwiązanie problemu:

  1. Wyciągnąć z podpisanego pliku klucz publiczny oraz sygnaturę certyfikatu
  2. Porównać sygnaturę oraz klucz z sygnaturą i kluczem z certyfikatu

Wyciągnięcie danych z certyfikatu oraz porównanie nie jest problemem tylko jak wyciągnąć te dane z podpisanego pliku?

0
:: napisał(a)

Na pewno jestes w dobrym dziale? Java i exe? (wiem ze sie da, ale...)

A no racja :-) Exec jest natywnym plikiem a java w taki sposób nie działa. Ale może jdnak istnieje rozwiązanie problemu? Jeżeli nie to czy istnieje w windowsie biblioteka, która takie funkcje udostępnia? Można by było wtedy podpiąć dllkę przez jna.

0

Po chwili zastanowienia. Certyfikaty nie są wymysłem MS i jest to określony standard. Nie powinno być zatem różnicy w podpisywaniu plików windowsa, linuksa czy maca. Powinna być zatem jakaś metoda na wyeksportowanie certyfikatu z javy dzięki czemu będzie można zweryfikować sygnaturę oraz klucz publiczny.

0

Procedura sprawdzania podpisu pod Windowsem jest mocno zakręcona: [kod w C]
Prostszym wyjściem było by sprawdzenie czy w nagłówku IMAGE_DIRECTORY_ENTRY_SECURITY nie jest zerowe, to wymaga tylko kilku prostych operacji na pliku.

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