Ni corto ni perezoso y dado que la interfaz me era familiar indagué, volví a indagar y descubrí que era un Visual Basic 6.0, la cosa me sonaba mucho así que me dije este código se puede de-compilar de un plumazo, y ahí está:
….
loc_0096942B: call msvbvm60.dll.__vbaFreeVar
loc_0096942D: lea edx, var_24
loc_00969430: push 00430D74h ; "clave"
loc_00969435: push edx
loc_00969436: call 00925A50h
…
Las librerías también pueden ser de-compiladas, por lo que ya fue coser y cantar. Este pequeño ejemplo debe hacernos valorar si es necesario revisar el ciclo de vida de nuestros proyectos para implementar estos requisitos de seguridad, liberar un producto sin ofuscar puede ser una piedra lanzada contra nuestro propio tejado.
Un sector que tiene gran experiencia en este tema es el de los videojuegos, donde muchas empresas se han decantado por obligarte a “autenticarte” contra sus servidores cada vez que inicias el juego (aunque no juegues por Internet), es el caso de Half Life 2 o el futuro Command & Conquer 4.
Salu2
2 comentarios:
En efecto, el tema de la distribución del código sin una más que necesaria ofuscación (en particular son bastante sensibles las aplicaciones .NET y Java, al poder recuperarse el código fuente prácticamente tal y como se escribió, al estar "compilado" a código intermedio y necesitar de la compilación final en la máquina donde se ejecuta). Esto es algo que no siempre se tiene en cuenta en las empresas, y puede constituir un verdadero "regalo" para quienes desean hacerse con una copia completamente funcional de nuestro software.
El cifrado del código y de las zonas de memoria donde se ejecuta el código durante el tiempo de ejecución son otra interesante herramienta a tener en cuenta si queremos que nuestro código esté algo más seguro.
Una interesante entrada. Por cierto, ¿qué tal fue la partida? ;)
__
Mithdraug.
Bueno este es sin duda un tema muy interesante, intentaré profundizar en próximas entradas, atendiendo también al cifrado en memoria.
Lo que desde luego es necesario es incorporar esta ofuscación al ciclo de vida de los proyectos, sino, ¿que licencias venderemos?
Salu2
PD: Soy un crack a las cartas :D
Publicar un comentario