Ofuscación de código

En .Net es muy fácil decompilar una DLL y obtener el código fuente original (sin comentarios y toda la pesca, pero el código fuente, perfectamente funcional). El caso es que ejecutando una simple búsqueda en Bing se obtiene cómo resultado multitud de herramientas que permiten hacer esto.

¿Cómo evitarlo? Con las herramientas de ofuscación de código. Estas herramientas no impedirán la decompilación del código, pero sí que harán que sea prácticamente imposible entenderlo, y por tanto editarlo y utilizarlo para las malas artes de un programador mal intencionado. La “mala intención” podría consistir en sacar un juego o programa muy parecido al que hemos hecho nosotros.

Siempre es desagradable que copien tu trabajo… más ahún cuando has pasado muchas horas de desarrollo en él. Así que es necesario tener en cuenta el uso de las herramientas de ofuscación de código.

No me habría propuesto escribir este artículo sinó fuera porque en uno de los MSDN Flash de Windows Phone se recomendaba el uso de estas herramientas. No se si para evitar que los testers de Microsoft tubieran la tentación de decompilar alguna DLL, o bien simplemente para evitar que algún posible bug que causase la posibilidad de descargar un XAP a un usuario mal intencionado trajese consecuencias peores.

En cualquier caso, me parece un buen consejo ofuscar el código. ¿Cómo lo hacemos? La própia instalación de Visual Studio trae su herramienta de ofuscación (sólo las ediciones profesionales para arriba). Usar este ofuscador ya se ha escrito en mil sitios, por ejemplo este: http://forum.codecall.net/tutorials/6391-tutorial-visual-studio-2008-obfuscating-dotfuscator.html, así que no voy a repetirme.

Lo que sí me gustaría añadir es el “descubrimiento” de un ofuscador genialmente sencillo, y además gratuito, que encontré hace unos días buscando una de estas herramientas. Se llama EazFuscator.net, y a pesar de lo complicado de su nombre, no creo que exista otro más fácil de usar. Esto es así porque simplemente tenemos que arrastrar y soltar un proyecto sobre la aplicación para ofuscar la DLL resultante de la compilación en modo release del mismo Smile

captura

 

Aquí podéis leer más acerca de este ofuscador de código y también descargarlo:

http://www.foss.kharkov.ua/g1/projects/eazfuscator/dotnet/Default.aspx

[WP7] Algunos datos sobre el marketplace de Windows Phone 7

Parece mentira, pero a penas han pasado dos meses desde el lanzamiento de Windows Phone 7, y ya parece que haya transcurrido una eternidad! Pues resulta que tenemos ya más de 5.000 aplicaciones/juegos!

El caso es que durante este perído de tiempo la aplicación de MSDN Creators ha sufrido una actualización, en esta actualización, entre otras features, podemos ver ya las estadísticas de ventas/descargas de nuestros juegos.

Personalmetne no he visto todavía ningún blog que hable mucho sobre este tema, o que publique datos de ventas o descargas. Esto, sumado a la petición de un “cliente” de este blog, me ha llevado a compartir mis datos de descarga del juego Robot Strike Bowling.

Ya he hablado alguna vez de este juego en este blog: fué desarrollado con la beta del emulador, y migrado a la RTM después, sin tener el móvil a mano para desarrollar (Dios me tiene abandonado, es decir Microsoft Smile with tongue out). Estos factores, sumados a una inexcusable inexperiencia en el desarrollo de un videojuego completo llevaron la situación al punto siguiente: un juego aceptablemente bueno –más teniendo en cuenta que es gratis-, pero con graves problemas de rendimiento.

La mayoría de problemas de rendimiento los resolví, para que el juego por lo menos fuera jugable… en caso contrario era un desastre. Pues bien, el resultado es que a día de hoy tengo más de 10.000 descargas de este juego y el ranking global de jugadores acumula miles de puntos. El líder tiene ni más ni menos que 56023 en este momento, a un ratio de máximo 70 puntos por partida…. el chaval ha tenido que jugar unas cuantas veces para estar ahí Smile. Eso me satisface, porque significa que a álguien le gusta el juego. O eso o me han hakeado el webservice que gestiona el ranking.

En fin, sin más dilación, voy a compartir mis datos de descarga, de los que USA se lleba la palma, con un 40% del total de descargas, y el Reino Unido a mucha distancia, se presenta en segundo lugar.

El gráfico siguiente ilustra la evolución diaria de descargas:

chart_diario

Y el siguiente muestra las descargas acumuladas:

acumulativo

Y el gráfico de ventas no lo voy a mostrar, porque la aplicación es gratuita Smile

 

Espero ver más datos publicados acerca de las descargas de las aplicaciones de la gente en los próximos meses!

 

PD: De la aplicación “Chistes diarios” no muestro los datos, ya que hace muy pocos días que la subí al marketplace, y todavía no tengo acceso a sus estadísticas, imagino que tardan unos días en generarse.

[WP7] Aplicación “Chistes diarios” publicada en el marketplace

Buenas,

Hoy he recibido un e-mail del marketplace de Microsoft, anunciando que mi aplicación gratuita “Chistes diarios” ha sido certificada y publicada.

¿En qué consiste la aplicación? Es un software muy básico hecho en silverlight, que no XNA. Lo único que hace es bajar chistes de una fuente RSS, que se renueva cada pocas horas. La interfaz gráfica es tremendamente simple: sólo muestra unos pocos chistes en un listbox!

Aun así, creo que es una aplicación entretenida, porque siempre pueden ser prácticos unos chistes en caso de aburrimiento Smile.  En su sencillez, la aplicación cumple su cometido.

La aplicación está disponible 100% gratis en el marketplace de Windows Phone 7, en la sección de entretenimiento.

PD:

  • No puedo garantizar que todos los chistes sean buenos.
  • Si tus amigos no se ríen, es posible que sea porque no has contado bien el chiste Angry smile.
  • Algunos chistes pueden ser tan graciosos que pueden producir serios problemas en tu salud. Avisado estás Smile with tongue out.

Capturas de la aplicación:

800x600_1 captura2


Enlace de descarga:

wp7_278x92_green

http://social.zune.net/redirect?type=phoneApp&id=009aab5b-1b0a-e011-9264-00237de2db9e