[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Fwd: [l-plug] Una solución elegante y permanente para guardar tus temporales de videos en Flash



Reenvío esto por si les interesa :)

---------- Forwarded message ----------
From: Jean-Pierre Chauvel <jchauvel@gmail.com>
Date: 2011/4/14
Subject: [l-plug] Una solución elegante y permanente para guardar tus
temporales de videos en Flash
To: linux-plug@linux.org.pe


Hice una scripcillo en forma de librería de vínculo dinámico para evitar
que ciertos programas molestos, como libflashplugin.so, intenten
desvincular un archivo del sistema de archivos.

Por buen tiempo se podían backup-ear videos descargados por el plugin de
Flash, copiando el archivo temporal (ubicado en /tmp o en
$HOME/.cache/chromium/Caches por ejemplo) en otra parte, o bien,
agregándole un hard link adicional al archivo.

Lamentablemente con la última versión del plugin esto ya no es posible,
tampoco es posible obtener las referencias del handler usando lsof o
examinando el contenido de /proc/*/fd.

Así que molesto, no me quedó otra que crear un surrogate para la llamada
a unlink del filesystem. Venciendo la flojera y el desconocimiento del
API me lanzé a la piscina y terminé haciendo un escueto pero elegante
scripcillo en C que permite reemplazar cualquier llamada a unlink por un
simple NOP.

Para utilizarlo hay que generarlo para arquitectura i386 (recuerden que
el plugin solo existe en versión 32 bits y en 64-bit boxes el plugin se
invoca usando un wrapper de 64 bits), asignarle usario y grupo root o
equivalente, y finalmente establecer la variable LD_PRELOAD con la ruta
y el nombre del módulo generado.

Ignoren cualquier mensaje del tipo:

ERROR: ld.so: object '/path/to/your/dummy-unlinker.so' from LD_PRELOAD
cannot be preloaded: ignored.

Esto solo ocurre en sistemas de 64 bits ya que antes de que
libflashplugin.so tenga oportunidad de leer el contenido de la variable
de entorno, el browser y npviewer.bin lo hicieron antes, y estos últimos
son binarios elf de 64 bits.

Solo resta aplicar tu método antiguo de copiar/hardlink-ear el archivo
del cache en otro lado y listo :)

El módulo es bien cojudón así que lo liberé con licencia de dominio
público. Lo cual quiere decir que pueden hacer con este lo que les
plazca :)

https://github.com/hellhound/unlinker4flash

Saludos,

Jean-Pierre

p.s. Disculpen el repost. Tuve que cambiar el nombre del proyecto a
solicitud de un fellow githubber :P

_______________________________________________
Lista de correo Linux-plug
Temática: Discusión general sobre Linux
Peruvian Linux User Group (http://www.linux.org.pe)

Participa suscribiéndote y escribiendo a:  linux-plug@linux.org.pe
Para darte de alta, de baja  o hacer ajustes a tu suscripción visita:
http://voip2.voip.net.pe/mailman/listinfo/linux-plug

IMPORTANTE: Reglas y recomendaciones
http://www.linux.org.pe/listas/reglas.php
http://www.linux.org.pe/listas/comportamiento.php
http://www.linux.org.pe/listas/recomendaciones.php



-- 
Linux Registered User # 386081
A menudo unas pocas horas de "Prueba y error" podrán ahorrarte minutos
de leer manuales.


Reply to: