Cómo descargar la foto de credencial del Tec usando la nómina

Tuesday, January 17th, 2012

 

Ahora la iniciativa fue de mi amigo Óscar Dávila.

Consiguió la URL para descargar la foto de una nómina dada, así que la agregué a mi programita:

http://sejomagno.org/foto/?nomina=L0XXXXXXX

Como referencia, el comando con curl sería:

curl -o foto.jpg --header "Referer: http://info0.mty.itesm.mx" https://alsvcft01.itesm.mx/empleados_img/L0XXXXXXX.jpg

Y bueno, si bien con eso ahora la cuestión podrían buscar quién tiene la nómina equivalente a su matrícula (?), lo importante sería cómo conseguir la nómina de una persona determinada.

Al parecer los alumnos no tenemos una forma sistematizada de lograrlo. Como sea, existe Google y la falta de cuidado en el Tec. Por ejemplo, buscando una nómina conocida, encontré este archivo:

http://www.ccm.itesm.mx/dse/sei/archivos/registro_listas.xls

LOL

Have fun!

Disclaimer: esto lo hago con mentalidad geek y/o white hat hacker, no tengo intenciones malignas

🙂

Cómo descargar la foto de credencial del Tec usando la matrícula

Sunday, January 15th, 2012

(UPDATE: Ahora pueden usar la siguiente URL: http://sejomagno.org/foto/?matricula=A0XXXXXXX )

Esto se podía hacer hace tiempo con una URL en la que cambiabas la matrícula y veías la foto de la credencial de la persona en cuestión. Ese método fue deshabilitado, y nada, ya no me acordaba.

Hace rato mi amigo Mario Recio me hizo ver que en el Portal de Alumnos, en la parte de Historia Académica, se descarga la foto propia. Como sea, si usas la URL que viene ahí para intentar bajarla por separado, te sale que el acceso está prohibido…

La curiosidad fue enorme, el no poder resolver el reto me picó el orgullo y me hizo intensear (positive feedback!)… y ya, después de un rato de reverse engineering, de muchas pruebas e ideas fallidas, llegué a la solución. Busqué qué tanto podía simplificarse, y finalmente resultó ser algo muy estúpido.

Basta de introducción

Necesitan el programa “curl“. En GNU/Linux y Mac OS X lo deben tener por default, en Windows no sé pero creo que lo pueden descargar.

Abran una terminal (Mac users: en Applications->Utilities o Cmd+space “Terminal” enter, GNU/Linux users: deberían saberlo, y si no, googléenlo para el caso de su distribución específica) y escriban o copien lo siguiente:

curl -o foto.jpg --header "Referer: http://info0.mty.itesm.mx" https://rzncal.itesm.mx/alumnos_img/A0XXXXXXX.jpg

UPDATE (2012-02-03) gracias Óscar Dávila por informarme que el servicio ya no funcionaba. Volví a revisar el Portal de Alumnos y vi que la URL de las fotos cambió. No sé si tenga que ver con la existencia de esto, pero bueno. Ahora es:

curl -o foto.jpg --header "Referer: http://info0.mty.itesm.mx" https://alsvcft01.itesm.mx/alumnos_img/A0XXXXXXX.jpg

Y ya, eso guardará la foto de la matrícula A0XXXXXXX.jpg en “foto.jpg” dentro de la carpeta en la que ejecutaron el comando (por default será su carpeta home)

Si alguien gusta hacer un web service para acceder más fácil, debería hacerlo (¡y compartirlo!) Ok, ya lo hice yo en PHP, usa el mismo principio jaja.  http://sejomagno.org/foto/?matricula=A0XXXXXXX

Let the stalking begin! (or continue!)

Cómo alejarse de Facebook

Wednesday, August 3rd, 2011

Ya me harté de la adicción por Facebook, esa obsesiva necesidad de entrar a ver qué pasa cada vez que hay la mínima sensación de aburrimiento. El semestre pasado probé desactivar la cuenta, mas reactivarla es tan fácil como iniciar sesión. Intenté usar algo como Chrome Nanny, que si bien es una gran idea que limita el tiempo u horario que pasas en páginas, se puede evadir fácilmente desactivando la extensión.

Se me ocurrió entonces cambiar mi password por algo que no recuerde pero que sea [difícilmente] recuperable para poder regresar en las siguientes vacaciones, si es que todavía lo considero necesario. Además, desactivar la cuenta para quitar la tentación a la gente de interactuar conmigo a través de esa red.

Propongo el siguiente procedimiento (barroco, muy de mí) para lograrlo:

  • * En la terminal conectar a través de pipes un número arbitrario de funciones hash arbitrarias en un orden arbitrario. Por ejemplo: $ sha256sum | md5sum | sha512sum | md5sum (esto ingresará el standard input de la terminal a la función sha256sum, cuyo standard output se redirecciona como standard input del primet md5sum, y así sucesivamente. Recomiendo terminar con md5sum porque el output es más pequeño). Dar enter para ejecutar el comando.
  • *  Buscar un texto arbitrario y colocar un fragmento arbitrario como standard input del comando descrito en el paso anterior. También funciona escribir lo que les venga en mente, entre más arbitrario mejor. Terminar con Enter y luego Ctrl + D (EOF). El resultado será la nueva contraseña, por ejemplo algo como 916f4c31aaa35d6b867dae9a7f54270d. La idea de estos dos pasos es generar una contraseña de una forma casi imposible de reproducir.
  • * Anotar a mano la nueva contraseña en un papel que se pueda esconder fácilmente. Cerrar o limpiar la terminal que se usó.
  • * Entrar a Facebook y cambiar la contraseña por la recién generada.
  • * Desactivar la cuenta en Account -> Account settings -> Security -> Deactivate your account. Dar la razón que se desee.
  • * Esconder el papel con la contraseña en un lugar difícil de alcanzar pero que no sea fácilmente destruible o extraviable.
  • * Listo, ya te alejaste de Facebook.

Si tienen más ideas colóquenlas en los comments 🙂

Saludos

Nyan Cat 4’33” version: detrás de cámaras

Saturday, July 23rd, 2011

Pues sí, me surgió la idea de unir en un video al Nyan Cat con 4’33” de John Cage.

El video se puede ver a continuación: Nyan Cat: 4’33” version

Para lograrlo no usé un editor de video gráfico, hice lo siguiente:

1) Obtener los 12 frames del GIF animado del Nyan Cat que está aquí. Para eso usé GIMP (consejo de @Mini0n) y nombré los archivos con el formato nyancat%02d.jpg (por ejemplo nyancat01.jpg para el primer frame)

2) Después usé FFMPEG para unir los frames en un video de acuerdo a esta página (el método que dice ahí para exportar las frames del GIF no me funcionó con este en particular). Específicamente el comando que usé fue:

$ ffmpeg -r 12 -i nyancat%02d.jpg -y -an sec.avi

(Le puse sec.avi al archivo porque al ser 12 frames corriendo a 12 frames/segundo, el archivo resultante dura un segundo)

3) Finalmente lo que hice fue concatenar el video 272 veces a sí mismo para obtener un video de 273 segundos (4 minutos y 33 segundos) de duración. Me basé en esta página y escribí este script:

#!/bin/bash
for i in {1..272}
do
    echo Pass $i #Imprime el número de concatenación
    cat nyan.avi sec.avi > out.avi # Concatena el video acumulado (nyan.avi) con el video de un segundo y lo guarda en out.avi
    mv out.avi nyan.avi # Renombra out.avi como nyan.avi
done
ffmpeg -f avi -i nyan.avi -vcodec copy -acodec copy nyan4_33.avi # Procesa y corrige el archivo concatenado

(antes de correrlo hay que haber copiado a sec.avi con el nombre nyan.avi, el video acumulado que empieza durando 1 segundo)

😀

Bash script para respaldar mi primer blog

Saturday, March 12th, 2011

Por un momento tuve miedo…

Leí que el 16 de marzo de 2011 cerrarían Windows Live Spaces, lugar donde hice mi primer blog. Tengo cierta obsesión por dejar evidencia de mi existencia, por lo que no podía tolerar la idea de que todos esos escritos desparecieran.

El equipo de Windows Live daba la opción de exportar a WordPress.com, para lo cual era necesario iniciar sesión con la cuenta que desde hace varios años no uso y por tanto dejó de existir…

Pensé en descargar la RSS Feed y/o a partir de ella cargar en Google Reader todos los posts, pero vi que estaba incompleta.

Las opciones restantes: buscar una forma de automatizar el respaldo del blog, o manualmente copiar cada uno de los posts. Es conocido mi amor por la automatización y mi simultáneo repudio por hacer manualmente actividades repetitivas, por lo que me decidí por la primera opción.

Busqué y encontré un patrón en las [horribles] URLs de los posts. Procedí a ver scripts de BASH pasados para recordar cómo programar ciclos, vi el manual de wget y de BASH, y programé al siguiente pequeño, que en lo que escribo esto ya terminó de respaldar mi blog :):


#!/bin/bash
echo "Entrando a directorio de archivos..."
cd archivos

for i in $(seq 109 974)
do
  echo "Intentando descargar archivo #$i..."
  wget -O $i.html http://sejomagno.spaces.live.com/blog/cns\!36CDD55860B8D63E\!$i.entry
  if [ ! -s $i.html ]; then
    echo "Archivo no existente, eliminando..."
    rm -v $i.html
  fi
done

echo "Regresando a directorio..."
cd ..
echo "Listo! :)"

Explicación:

Vi que las URLs los posts tenían la siguiente estructura: http://sejomagno.spaces.live.com/blog/cns!36CDD55860B8D63E!NUMERO.entry, donde NUMERO va del 109 al 974. Además, no hay posts en todos los valores intermedios de NUMERO.

La solución obviamente tenía que depender de wget, bendito programa para descargar archivos en URLs. (Random fact: este programa tiene un papel en la película The Social Network; Mark Zuckerberg lo utiliza para descargar fotos de sus compañeros para su página Facemash)

Lo que hace el programa en primer lugar es entrar a un directorio creado para guardar los posts descargados. Luego, hace que la variable $i tome todos los valores entre 109 y 974, y por cada uno de esos valores hacer cierta acción. La acción consiste en descargar el post en la URL correspondiente a ese valor de $i en un archivo llamado $i.html. En el caso en que el post no exista, se elimina ese archivo. Cuando acaba, se regresa al directorio donde fue llamado

Y listo, después de esta Sejoaventura, puedo sentirme tranquilo de que aunque Microsoft elimine sus Windows Live Spaces, lo que escribí se queda conmigo. Moraleja: procurar no depender de servicios externos para guardar ahí nuestro material multimedia (¿el texto escrito cuenta como multimedia?). Moraleja 2: la programación es bella y poderosa

Se aceptan sugerencias, comentarios y preguntas respecto al código 😀