Sabéis que el código que genera Visual Studio es descifrable fácilmente, por lo que esa contraseña puede ser comprometida fácilmente.
Pongamos las cosas algo difíciles
LA ALTERNATIVA ALGO CHAPUCERA PERO VALIDA
Hay una porción de ese código
que necesita ejecutarse con un usuario determinado y diferente al logueado, y
para ello usamos una función que internamente usa el “logonUser” de advapi32.dll
Uso la mala técnica de “concatenación
de chars” por no guardar la contraseña “a pelo” en los fuentes y ponerlo en bandeja a los fisgones, pero como más
adelante veréis, esto no sirve de nada.
Compilamos el proyecto, generando el correspondiente fichero EXE.
Open… y buscamos nuestro ensamblado.
Navegamos un poco para buscar dónde teníamos la contraseña.
OPS! La contraseña está
perfectamente visible.
Para poder cifrar este
ensamblado y poder entregarlo sin excesivo miedo a comprometer la contraseña,
usaré un ofuscador. Recordaré que, aunque ofusquemos el código, no está 100%
seguro, ya que alguien con conocimientos avanzados y echándole bastantes horas
podría llegar a sacar la contraseña.
EAZFuscator,
un ofuscador sencillito y free, nos hará la tarea de enmarañar nuesto código
para que sea una tarea difícil entender el código fuente desensamblado.
Arrastramos el
ensamblado EXE a la zona verde de la ventana, y ya estará ofuscado.
Volvemos a abrir con el
DotPeek, y vemos que el código nos lo ha dejado hecho unos zorros… pero de eso
se trataba!!!
LA ALTERNATIVA
RECOMENDADA
Microsoft recomienda, para estos casos, poner la contraseña
en un archivo de configuración y cifrar la sección.
En el caso que se quiera
distribuir un único EXE sin tener que adjuntar ficheros de configuración,
siempre podremos incrustar el fichero de configuración dentro del ensamblado.
Saludos.
No hay comentarios:
Publicar un comentario