2011/4/14 Jean-Pierre Chauvel <[email protected]>:
> 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
>

Que interesante, esto nos demuestra que tanto se puede lograr cuando
el código es libre, uno realmente es dueño de lo que sucede en su
computadora.

Saludos
-- 
Linux Registered User # 386081
A menudo unas pocas horas de "Prueba y error" podrán ahorrarte minutos
de leer manuales.
_______________________________________________
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:  [email protected]
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

Responder a