Krzysztof Raczkowski

Krzysztof Raczkowski Stała współpraca,
Logifact-Systems Sp.
z o.o.

Temat: Podpisywanie kodu

Witam,

Podpisałem sobie testowy .exe za pomocą SignTool. Po ręcznej modyfikacji exe za pomocą "hexeditor'a" na zakładce we właściwościach programu krzyczy że podpis nie jest prawidłowy (czyli OK).

Czy istnieje możliwość zapobiegania uruchamiania się aplikacji która była zmodyfikowana po kompilacji i ma nieprawidłowy podpis? Nie chodzi mi o jakieś ustawienie systemowe, które można po prostu wyłączyć, raczej o mechanizm zbadania podpisu przez samą aplikację - najlepiej trudny do obejścia :)

--
Pozdrawiam
K.R.

konto usunięte

Temat: Podpisywanie kodu

W .NET to jest trochę przegrana walka, bo zawsze możesz to zdekompilować, wywalić tą instrukcję warunkową sprawdzającą poprawność podpisu i skompilować drugi raz.

Jeśli ktoś ma wystarczająco skill-a, żeby edytować dll-kę to będzie miał też wystarczająco żeby Reflektorem (+ Reflexi) zmodyfikować mechanizm walidacji.
Krzysztof Raczkowski

Krzysztof Raczkowski Stała współpraca,
Logifact-Systems Sp.
z o.o.

Temat: Podpisywanie kodu

Karim A.:
W .NET to jest trochę przegrana walka, bo zawsze możesz to zdekompilować, wywalić tą instrukcję warunkową sprawdzającą poprawność podpisu i skompilować drugi raz.

Jeśli ktoś ma wystarczająco skill-a, żeby edytować dll-kę to będzie miał też wystarczająco żeby Reflektorem (+ Reflexi) zmodyfikować mechanizm walidacji.

No właśnie :( szczerze to liczyłem na to, że jeżeli zmodyfikuję binarnie podpisany plik i system to wykryje (a wykrył ...) to go nie załaduje ...

W sumie nie wiem czemu tego tak właśnie nie robi skoro są wprowadzone podpisy ...

Trochę to moim zdaniem jest źle rozwiązane.

--
Pozdrawiam
K.R.

Temat: Podpisywanie kodu

Krzysztof Raczkowski:
Karim A.:
W .NET to jest trochę przegrana walka, bo zawsze możesz to zdekompilować, wywalić tą instrukcję warunkową sprawdzającą poprawność podpisu i skompilować drugi raz.

Jeśli ktoś ma wystarczająco skill-a, żeby edytować dll-kę to będzie miał też wystarczająco żeby Reflektorem (+ Reflexi) zmodyfikować mechanizm walidacji.

No właśnie :( szczerze to liczyłem na to, że jeżeli zmodyfikuję binarnie podpisany plik i system to wykryje (a wykrył ...) to go nie załaduje ...

W sumie nie wiem czemu tego tak właśnie nie robi skoro są wprowadzone podpisy ...

Trochę to moim zdaniem jest źle rozwiązane.

--
Pozdrawiam
K.R.


Mogę się mylić (dawno tego nie robiłem) ale w GPO jest opcja, że by blokował uruchamianie plików, które nie są podpisane albo dla których się on nie zgadza.

To o czym napisał Karim ma zastosowanie pod warunkiem, że na maszynie będzie dostęp do de/kompilatora. Wiadomo jak się ktoś uprze to każdy program idzie zmodyfikować a czasem nawet bez ponownej kompilacji ;) W .NET jest to szczególnie ułatwione ale myślę, że do twojego zastosowanie (jakie przewiduję) spokojnie powinno wystarczyć.

konto usunięte

Temat: Podpisywanie kodu

Piotr Rusoł:
Mogę się mylić (dawno tego nie robiłem) ale w GPO jest opcja, że by blokował uruchamianie plików, które nie są podpisane albo dla których się on nie zgadza.

To o czym napisał Karim ma zastosowanie pod warunkiem, że na maszynie będzie dostęp do de/kompilatora. Wiadomo jak się ktoś uprze to każdy program idzie zmodyfikować a czasem nawet bez ponownej kompilacji ;) W .NET jest to szczególnie ułatwione ale myślę, że do twojego zastosowanie (jakie przewiduję) spokojnie powinno wystarczyć.

wyślę sobie w zipe i zrobię to w domowym zaciszu

konto usunięte

Temat: Podpisywanie kodu

Możesz spróbować użyć opcji /ph (Generate Page Hashes). Niestety opcja ta działa tylko i wyłącznie na Vista+ (i podpisywanie i weryfikacja). Jeżeli plik jest podpisany w ten sposób system odmawia załadowania go w przypadku modyfikacji.
Ostrzegam - nie próbowałem używać tego z binarkami .net ;)
Kamil Sławiński

Kamil Sławiński Senior iOS Developer

Temat: Podpisywanie kodu

Moim zdaniem binarka .NET'owa z założenia jest zbyt łatwo modyfikowalna. Podpisaną binarkę można zabezpieczyć jakimś zewnętrznym narzędziem. Z komercyjnych rozwiązań polecam Eziriza. (http://www.eziriz.com)

Następna dyskusja:

Podpisywanie kodu




Wyślij zaproszenie do