lunes, febrero 28, 2011

La política nubla la capacidad de hacer silogismos

Aún a día de hoy, cuando dentro de poco se cumplirán 7 años de aquel fatídico 11M, me sigue sorprendiendo la incapacidad de la gente para razonar, cuando se trata de política.

Alguna vez que otra he pensado en la huida hacia adelante del PP diciendo que ETA estaba detrás de aquellos atentados, pero ¿por qué?

Porque si nos paramos a pensar, podemos darnos cuenta de cuáles deberían haber sido las consecuencias políticas en un mundo racional, si efectivamente ETA fuese la responsable del 11M. El razonamiento obvio de cualquier persona normal, sería:
ETA ha realizado la mayor masacre en toda su historia, a pesar de que el gobierno presumía de su política antiterrorista y aseguraba que la banda estaba pasando por sus peores momentos, con sus capacidades operativas severamente mermadas. Luego nos han estado engañando con respecto a la situación de ETA, o directamente su política antiterrorista ha sido una mierda y les han puesto las bombas en las narices.

Sin embargo, si se tratase del terrorismo islamista, la infame War on Terror estaría plenamente justificada, ya que se demuestra que Al Qaeda era una amenaza real, que necesitaba ser combatida en Afganistán, Iraq (a pesar de que ni Al Qaeda ni las armas de destrucción masiva estaban allí) y en cualquier parte del mundo.
Pero a día de hoy, casi siete años después, nunca le he escuchado a nadie argumentar eso. Siguen empeñados en que fue ETA, simplemente porque lo que se espera de un partido político (y de sus fanboys) es llevarle la contraria diametralmente al rival, aunque eso implique que ambos puedan estar equivocados.


Con respecto al aniversario de otra fecha señalada en la historia reciente de España, de esas que se conocen como dos dígitos y una letra; me hace gracia ver como el campechano dice un día que a él todavía le ocultan cosas y a las pocas semanas que no queda nada por revelar.

Yo creo que ya chochea un poco, a lo mejor con un poco de suerte un día de estos se le va la olla del todo y hace algunas declaraciones jugositas delante de un micrófono abierto.

viernes, febrero 18, 2011

¡¡¡Marchando otra de pr0n!!!

Hace unos añitos ya, uno de los posts más populares (a la par que útil) fue el de cómo aprovechar todo el conocimiento sobre shellscripting para bajarse porno. Con el tiempo, llegó el porno por streaming y aquello de las descargas se convirtió en un ritual arcano carente de sentido.

Pero yo siempre he dicho ¿Cómo te masturbas si algún día se cae la conexión? Porque reconozcámoslo: la imaginación ya no es una alternativa viable.

Así que por si acaso, yo siempre me guardo el porno, aunque provenga de streaming, por si llega una época de vacas flacas. Con el viejo plugin de Flash era sencillo, entraba en cualquier página guarra, abría los vídeos que parecían más interesantes, les daba al play para que empezasen a cargar, los pausaba y cuando estaban completamente descargados, iba al /tmp/ (sí, soy un linuxero pajero) y ahí se encontraban un montón de archivos cuyo nombre empezaba por FlashXXX y luego un código (que supongo que será un hash). Sólo tenía que copiármelos a mi carpeta de porno, a la postre /mnt/repositorio/films/pron/flash para que perdurasen.

Pero con la última actualización de Adobe Flash (la 10, creo), me sentí un poco idiota cuando al ejecutar la mágica orden mv /tmp/Flash* /mnt/repositorio/films/pron/flash el resultado fue que no se encontraban los archivos. Mi gozo en un pozo. ¿Qué cojones habría pasado?

Seguro que algún directivo de Adobe pajero se dio cuenta de que mientras él se bajaba porno en una máquina compartida, podría llegar cualquier gorrón a mirar en el tmp y masturbarse de gratis. Y eso no se puede consentir, quien quiera porno, que se baje el suyo. Así que cambiaron el comportamiento del plugin para que guardase los archivos de la caché en algún otro sitio.

En un foro encontré que lo habían movido al ~/.mozilla/firefox/profile/Cache (o alguna alternativa similar). Le eché un vistazo y había algunos archivos, ninguno empezaba por Flash. Por si acaso, hice file * | grep -i flash, a ver si sonaba la flauta y simplemente habían cambiado el esquema de nombrado, pero tampoco.

Empezaba a preocuparme. Repetí la operación con todos los archivos de mi home y nada. Ahí no había ni rastro de ningún vídeo flash.

Así que inspirado por las recientes hazañas de los hackers de anonymous (y por mis acuciantes ganas de pajearme), decidí que era hora de que toda la mierda que aprendí en Informática sirviese para algo. Bueno, qué coño, la mierda más útil ni siquiera la aprendí en la carrera, pero para el caso...

Volviendo al Firefox, pude comprobar que los vídeos se podían reproducir, saltar hacia adelante y hacia atrás... Y eran unos cuantos, así que no podían estar únicamente en RAM (bueno, sí que podrían, pero sería un tanto cafre por parte del que diseñase el plugin abusar así de la memoria virtual), debía haber una caché en alguna parte del disco, pero yo no sabía dónde.

Entonces me acordé del /proc, de donde podemos sacar montones de información útil sobre nuestro sistema. Los plugins del firefox se ejecutan como procesos independientes, así que lo primero es averiguar de quién se trataba. Tan sencillo como ejecutar ps x | grep -i flash.

2242 ? Rl 68:29 /usr/lib/nspluginwrapper/i386/linux/npviewer.bin --plugin /usr/lib/flashplugin-installer/libflashplayer.so --connection /org/wrapper/NSPlugins/libflashplayer.so/2147-1
8827 pts/5 S+ 0:00 grep -i flash

Ahí teníamos al truhán. Nos vamos a su entrada en el /proc y le cotilleamos los descriptores de fichero abiertos.

20:47:36.fortran@goro:/proc/2242/fd$ ls -l
total 0
lr-x------ 1 fortran fortran 64 2011-02-18 20:47 0 -> /dev/null
lrwx------ 1 fortran fortran 64 2011-02-18 20:47 1 -> /home/fortran/.xsession-errors
lrwx------ 1 fortran fortran 64 2011-02-18 20:47 11 -> /tmp/FlashXXuUsilx (deleted)
lr-x------ 1 fortran fortran 64 2011-02-18 20:47 12 -> pipe:[64703]
l-wx------ 1 fortran fortran 64 2011-02-18 20:47 13 -> pipe:[64703]
lr-x------ 1 fortran fortran 64 2011-02-18 20:47 14 -> pipe:[64704]
l-wx------ 1 fortran fortran 64 2011-02-18 20:47 15 -> pipe:[64704]
lrwx------ 1 fortran fortran 64 2011-02-18 20:47 16 -> socket:[64708]
lrwx------ 1 fortran fortran 64 2011-02-18 20:47 17 -> /tmp/FlashXXBtk0WU (deleted)
lrwx------ 1 fortran fortran 64 2011-02-18 20:47 18 -> /tmp/FlashXX10pPCn (deleted)
lrwx------ 1 fortran fortran 64 2011-02-18 20:47 19 -> /tmp/FlashXXZyVJTX (deleted)
lrwx------ 1 fortran fortran 64 2011-02-18 20:47 2 -> /home/fortran/.xsession-errors
lrwx------ 1 fortran fortran 64 2011-02-18 20:47 20 -> /tmp/FlashXX3Au4jD (deleted)
lrwx------ 1 fortran fortran 64 2011-02-18 20:25 21 -> /tmp/FlashXXGmFE70 (deleted)
lrwx------ 1 fortran fortran 64 2011-02-18 20:25 22 -> /tmp/FlashXXC97ztx (deleted)
lrwx------ 1 fortran fortran 64 2011-02-18 20:47 3 -> socket:[16683]
lrwx------ 1 fortran fortran 64 2011-02-18 20:47 4 -> socket:[16687]
lr-x------ 1 fortran fortran 64 2011-02-18 20:47 5 -> pipe:[16689]
l-wx------ 1 fortran fortran 64 2011-02-18 20:47 6 -> pipe:[16689]
lrwx------ 1 fortran fortran 64 2011-02-18 20:47 7 -> socket:[16690]
lrwx------ 1 fortran fortran 64 2011-02-18 20:47 8 -> socket:[16691]

¿Qué tenemos? ¡Los muy malandrines han hecho un unlink de los ficheros nada más crearlos! Pero mientras sigan teniendo un descriptor abierto, el sistema no liberará el espacio (eso ocurrirá en cuanto el proceso del plugin muera).

Así que ahora no podemos hacer un simple cp o mv para guardarnos nuestros preciados vídeos, pero existen alternativas. Con la herramienta dd (cuyo nombre me parece que viene de data-dump, por si ayuda para recordarlo) podemos hacer muchas cosas guays como grabar imágenes ISO directamente en los dispositivos, y también recuprar esos bytes que dan forma a esas maravillosas cachondas siendo fornicadas.

Podríamos ir uno por uno, pero eso sería tiempo que le restaríamos al onanismo, así que más nos vale hacer un script que nos sirva para otras veces. Como soy generoso y tampoco quiero que vosotros perdáis vuestro tiempo de cascárosla, ahí os lo pongo. Sólo tenéis que cambiarle la ruta de vuestra carpeta del porno (ah, y cread un /tmp/ al final, que me daba pereza quitar esa parte del nombre de los ficheros).

pushd /proc/`ps x | grep libflashplayer | cut -d" " -f 2| head -n1`/fd
ls -l | grep Flash | awk '{print "dd if=" $8 " of=/mnt/repositorio/films/pron/flash" $10 }' | sh
popd


¡Hale, a disfrutar!