RiflettoTV – Hacking… semplice semplice!

14 11 2007

Ho letto sul blog di Andy parecchi articoli su come scaricare i film messi a disposizione da RiflettoTV.
Voglio dare il mio contributo a questa causa! Innanzi tutto notiamo che il metodo di RiflettoTV non è un vero e proprio Streaming, infatti il Film viene contemporaneamente salvato nella cache del nostro Browser ed eseguito dall’applicazione Flash incorporata nella pagina.
Sapendo questo sfruttiamo le nostre conoscenze del sistema per impadronirci di questa cache su disco per poterla utilizzare a nostro piacimento!

Mi spiego meglio con un esempio:

Apriamo il link del canale di RiflettoTV sul quale “trasmettono” il film che vogliamo scaricare, selezioniamo quindi il film e mettiamo in pausa, notiamo come nella barra di progresso ci sia un’ombra che avanza, quello è il livello di bufferizzazione del film sull’HD, a questo punto apriamo un terminale ed eseguiamo:
:~> ps -A | grep firefox
17600 ? 00:00:00 firefox
17608 ? 01:10:36 firefox-bin

in modo da mostrare solo i processi di nome firefox, quello che ci interessa è “firefox-bin”, ma in particolare la colonna del PID (il ProcessID, nell’esempio la prima colonna), ovvero il numero 17608 nel nostro esempio, grazie al concetto in Linux per il quale tutto è un file, possiamo andare ad esplorare la cartella “/proc/” che contiene varie sottocartelle numerate proprio con i PID, che a loro volta contengono file e cartelle con informazioni sul processo in questione, una cartella che ci interessa in particolare è la cartella “/proc/PID/fd/” che contiene i link simbolici o SLink (vedi in seguito) a tutti i files/pipe aperti da quel processo, detto questo eseguiamo:
:~> ls -l /proc/17608/fd | grep tmp
lrwx------ 1 poe84it users 64 14 nov 08:30 72 -> /tmp/Flash5XQ0Ux

così facendo mostriamo tutti i file aperti da firefox-bin che contengono la stringa “tmp”, in modo tale da individuare il file temporaneo che flash usa come cache. Nel nostro esempio il files 72 che punta al file /tmp/Flash5XQ0Ux .
A questo punto la situazione volge a nostro favore, infatti i file system come ext2 o ext3 utilizzano un metodo di allocazzione differente dai “tradizionali” FAT16/32 o NTFS in quanto più file possono puntare ad una stessa area di memoria o inode, e solo che dopo tutti i files che puntano a quella data porzione di memoria sono stati eliminati essa viene resa libera, detto ciò andiamo con questo comando…:
:~>ln /tmp/Flash5XQ0Ux ~/Desktop/Star\ Wars\ III\ La\ vendetta\ dei\ Sith.flv

…a creare un HardLink, ovvero un link al livello del FS che lega nel destino questi due files: /tmp/Flash5XQ0Ux e ~/Desktop/Star Wars III La vendetta dei Sith.flv, e mentre Firefox scarica il nostro film e poi successivamente (alla chiusura della pagina o al cambiamento di canale/programma) lo “elimina”, noi abbiamo salvato dall’eliminazione definitiva l’area dati creando l’HLink sul Desktop! Mi raccomando, attendere che Firefox scarichi completamente il film nella cache, altrimenti avremo un film a metà! :P

Nota: Gli HLink differiscono sostanzialmente dai link classici di windows, in quanto quelli di windows sono gestiti a livello di Sistema Operativo, mentre gli HLink sono gestiti a livello di FS, in pratica i i link di windows sono dei file contenenti delle istruzioni per il SO affinchè rintracci il file al quale puntano, mentre gli HLink puntano direttamente allo stesso file.
In Linux esistono anche altri tipi di link, i così detti Soft Link o SLink, che sono una via di mezzo tra gli HLink e i link di casa RedMond, in quanto contengono semplicemente in formato testuale il Path del file al quale puntano (come i link Windows) ma sono gestiti a livello di FS (come gli HLink), qundi del tutto trasparenti all’utente ed ai processi, solo che i SLink, a differenza degli HLink, non puntando direttamente ad un’area di memoria, non prevengono quindi la cancellazione del file al quale puntano, infatti un SLink può puntare anche ad un file inesistente…


Azioni

Informazione

5 risposte

14 11 2007
Andy

Bell’articolo! :-)

14 11 2007
poe84it

Grazie! E’ un’onore ricevere un commento dal mitico Andy! :)

28 11 2007
Nino

ciao poe84it
ho provato a seguire la tua guida,ho creato sul desktop la cartella: Star Wars III La vendetta dei Sith.flv , ma mi sono arenato e non capisco perchè, ho dato i tuoi comandi ma qualcosa non va:

nino@Nemo:~$ ps -A | grep firefox
14485 ? 00:00:00 firefox
14501 ? 00:01:34 firefox-bin
nino@Nemo:~$ ls -l /proc/14501/fd | grep tmp
lr-x—— 1 nino adm 64 2007-11-28 15:04 15 -> /home/nino/.mozilla/firefox/82rlxan9.Default User/extensions/{44851133-3425-48cc-a957-5a29b9396a5f}/chrome/tmp.xpi
nino@Nemo:~$ ln /home/nino/.mozilla/firefox/82rlxan9.Default User/extensions/{44851133-3425-48cc-a957-5a29b9396a5f}/chrome/tmp.xpi ~/Desktop/Star\ Wars\ III\ La\ vendetta\ dei\ Sith.flv
ln: accedo a `/home/nino/.mozilla/firefox/82rlxan9.Default’: Nessun file o directory
ln: accedo a `User/extensions/{44851133-3425-48cc-a957-5a29b9396a5f}/chrome/tmp.xpi’: Nessun file o directory
nino@Nemo:~$

dove sbaglio?
ciao

29 11 2007
poe84it

Innanzitutto devi andare sul sito di rifletto tv e cominciare la visione del film e mettere in pausa (flash creerà automaticamente un file FlashXXXX nella cartella tmp dove registrerà l’flv del film).
Secondo, il ” grep tmp ” ci serve appunto per individuare i file che sono nella cartella ” /tmp “, mentre a te ha visualizzato un xpi (estenzione di firefox) che si chiama tmp!
Terzo, il comando ” ln ” non funziona perchè lo hai invocato così:
ln blabla1 blabla2 la\ vendetta.flv
siccome nel path del file su cui fare l’HLink (il primo argomento) c’è uno spazio il comando ln considera la parte prima dello spazio come il file da collegare (che chiaramente non esiste) e la seconda parte come il link da creare… per riprendere il tuo esempio ln crede di dover fare un link a “/home/nino/.mozilla/firefox/82rlxan9.Default”
in “User/extensions/{44851133-3425-48cc-a957-5a29b9396a5f}/chrome/tmp.xpi”.
Ecco i motivi per cui dà errore…
Quando si inserisce un path o nome file contenente spazi, o lo si mette tra doppi apici (es “la vendetta.flv” ) oppure bisogna fare l’escape dello spazio (es la\ vendetta.flv)! ;)

p.s.: se hai bisogno di una consulenza “live” sono su skype come poe84it (Tanto per cambiare :D )!

14 05 2008
Luca

ora non si può più usare questo hack: rifletto tv è stata sequestrata dalla finanza, sembra per violazione del diritto d’autore

Lascia un commento