56 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
56 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.