Estimados
Solo quiero acotar que el código desarrollado para .NET, en algunos casos, es fácil de descompilar pues en la mayoría de los casos lo compilan a código intermedio y no a código nativo. Haciendo una analogía seria como compilar nuestra aplicación VB6 a P-Code y no a código nativo.
No olvidar que existen herramientas para ofuscamiento, a las cuales se pueden recurrir. O también pueden echar mano de UPX (Free), con lo que van a lograr reducir el tamaño del ejecutable y como colateral ofuscar el código.
Lo que se busca con esto, es que un usuario al OjO (sin mucho esfuerzo) no pueda burlar la seguridad de nuestra aplicación. Buscamos desanimarlo a burlarla o simplemente hacerlo lo más difícil que se pueda. Pero OjO que en ese intento de hacerlo más difícil podemos lograr que nuestra aplicación se vuelva más lenta. Pero todas estas medidas no impiden que alguien con el tiempo, las ganas y el conocimiento pueda desensamblar (push, mov, etc ) la aplicación y encontrar el punto donde se realiza la comparación If Variable = "YAcosta" Then Pasa Else NoPasa. Una vez encontrado ese punto lo que pueden hacer es desarrollar un KeyGen y ya esta pirateada vuestra aplicación.
Saludos, desde algún lugar de Lima-Perú