55 messaggi dal 07 marzo 2006
Ciao a tutti,
sono venuto a conoscenza per caso che dal SP1 della versione 3.5 del framework il sistema di anti-tampering degli assembly strong-named è stato disabilitato per default:

http://msdn.microsoft.com/it-it/library/cc713694.aspx

A parte il disappunto per la scelta del valore di default (mi sarei aspettato che il valore di default portasse ad un comportamento pari a quello dei framework precedenti, per non causare ovvi problemi...), ho cercato una soluzione che mi permettesse di riattivare il controllo anti-tampering, che (almeno nel mio caso) è abbastanza necessario.
Dalla pagina di cui al link riportato sopra, si può vedere come il controllo sull'hash code dei strong-named assembly possa essere abilitato nuovamente settando a "false" il valore dell'elemento "bypassTrustedAppStrongNames". Tutto ok. Il problema, però, è che il file di configurazione viene distribuito con l'applicazione, e per giunta in chiaro! Con il risultato che all'utente è sufficiente modificare il valore da "false" a "true" per bypassare nuovamente il controllo.

Mi chiedevo se qualcuno non sia a conoscenza di un sistema affidabile per garantire l'anti-tampering degli assembly, o per cifrare e/o nascondere il file di configurazione, in modo da non renderlo editabile dall'utente (ma, googlando, non sembra sia possibile).
La mia applicazione è sviluppata in WPF, .Net Fx 4.

Grazie mille,
ciao

Software Department
Aprilia Racing S.r.l.
http://www.racingaprilia.com/

==========================================

L'ipocondria è l'unica malattia che non ho.
(Anonimo)
Purtroppo non c'è una soluzione sicura a quello che cerchi. Il problema infatti non è relativo al cambio di policy con il service pack 1, perché anche prima si poteva disabilitare la verifica dell'hash, usando un tool a riga di comando o una chiave di registro.
Ovvio che farlo dovevo essere administrator della macchina, ma anche nel tuo caso, se la tua app è installata in %ProgramFiles%, per modificare il .config basta essere admin.
Per questo motivo han tolto il controllo, perché di fatto è inutile e diminuisce le prestazioni allo startup.
Se il tuo intento è impedire che qualcuno modifichi il codice puoi affidarti all'offuscamento. Chiaro che non è definitivo, ma lato client non lo è mai, tutto è possibile

Ciao

Il mio blog
Homepage
55 messaggi dal 07 marzo 2006
Grazie per la risposta, purtroppo lo sospettavo.
Il problema è che, anche offuscando il codice, la persona che ha crackato il programma ha aperto il codice IL e l'ha modificato, mettendo a NOP le istruzioni che verificano la chiave (nel nostro caso HW). A quel punto è cambiato (ovviamente) l'hash della dll, ma essendo stato disabilitato il controllo...
Vorrà dire che cercherò qualche altro sistema, comunque grazie ancora.
Ciao

Software Department
Aprilia Racing S.r.l.
http://www.racingaprilia.com/

==========================================

L'ipocondria è l'unica malattia che non ho.
(Anonimo)

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.
Community
Ultimi messaggi
UTENTI ONLINE
In primo piano

I più letti di oggi

Media
In evidenza
MISC