Originariamente inviato da afrappe
mi chiedevo pero se con la stessa facilita con cui si puo offuscre il codice è possibile applicare il processo inverso per decriptare il sorgente offuscato?
Con la stessa facilità con cui si può rovesciare un codice nativo Win32.

Niente è invulnerabile da "reverse engineering": si può solo rendere difficile questo compito.

Siccome il linguaggio intermedio si inserisce ad un livello più alto rispetto al comune assembly Win32, per impedire il reverse engineering si ricorre ad offuscatori in modo da applicare modifiche non reversibili automaticamente al codice prodotto, mascherandone la linearità logica, gli identificatori e quant'altro.

Originariamente inviato da afrappe
da quel poco che ho letto il .net non produce un eseguibile direttamente eseguito dalla macchina ma viene interpretato dalla piattaforma giusto? questo mi fa pensare che nel programma finito siano presenti ancora le informazioni delle righe di codice a cui si puo risalire con un processo complesso tanto quanto quello attuato per offuscare.
a differenza di un programma compilato completamente in codice binario? sto dicendo delle fesserie? mi chiarite un po le idee?
Il linguaggio intermedio è senz'altro più facile da rovesciare rispetto al codice nativo prodotto dalla compilazione di questo o da un compilatore Win32 che lavora sul codice sorgente di un programma.

Tuttavia, occorre ricordare che la compilazione generalmente prevede anche ottimizzazioni che possono modificare in partenza questa logica; molte soluzioni .NET poi sono affidate a Web Server (ASP.NET); per le soluzioni desktop, si possono facilmente offuscare richiamando un banale tool come quelli che ti ho citato.

Ora, considerando che non svilupperai programmi per la NASA o algoritmi di sicurezza, e in tal caso dovrai tutelarti anche se produci codice nativo, gli strumenti ci sono, assieme alle opportunità che ti vengono fornite da .NET in quanto piattaforma di servizi orientata agli oggetti.

Ciao!