Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".

#1 Le 06/05/2010, à 08:35

Zakhar

Un tuto pour extraire les liens d'un dlc ?

Est-ce qu'un tuto pour extraire les liens d'un dlc vous intéresse ?

(répondez au post si oui !)

Il ne me reste plus qu'à trouver comment on sépare une chaine :

id0=ABCDEFGH&id1=KIOLIUJI&.....&id87=DERFHYUJ

pour en extraire les valeurs séparément (ça doit bien se faire avec une combinaison de cut et de sed...) et le tour est joué.


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#2 Le 06/05/2010, à 09:41

sr40150

Re : Un tuto pour extraire les liens d'un dlc ?

Salut,

Je ne vois pas de quoi tu parles (dlc ?, chez moi dlc signifie Date limite de consommation:) mais comme je suis très curieux... Je suis très intéressé...

Hors ligne

#3 Le 06/05/2010, à 09:44

sr40150

Re : Un tuto pour extraire les liens d'un dlc ?

ah un petit coup de google me renvoie http://www.lire-fichier.com/extension-f … c-1121.htm

Oui le tuto que tu propose pourra toujours servir.

Dernière modification par sr40150 (Le 06/05/2010, à 09:45)

Hors ligne

#4 Le 06/05/2010, à 19:26

Hizoka

Re : Un tuto pour extraire les liens d'un dlc ?

tiens je ne connaissais pas non plus, ca devient courant ça ?

mais en effet ça peut toujours être pratique smile

Hors ligne

#5 Le 06/05/2010, à 20:00

Zakhar

Re : Un tuto pour extraire les liens d'un dlc ?

Effectivement, dlc, outre la date limite de consommation, est également un conteneur de liens vers des sites populaires comme Megaupload, Rapidshare.

Il s'agit d'un format crypté. L'idée est que si quelqu'un publie un truc illégal (ce qu'ici on ne fait évidemment pas vu qu'on utilise du logiciel libre tout à fait légal !) les moteurs de recherche des ayant droit vont associer l'œuvre illégale et l'ensemble des liens, dans le cas où le fichier a été coupé en morceaux.

Les ayant droit vont ensuite demander à MU, RS, etc... de retirer lesdites œuvres illégales, et donc TOUS les morceaux concernant l'ensemble des liens.

Bien sûr aucun risque lorsque vous uploadez une version d'Ubuntu, même en petits morceaux. tongue

Le dlc est donc un conteneur, qui résume en un seul lien l'ensemble de ces liens... et il est crypté pour qu'on ne puisse pas lire les liens unitaires. L'algorithme de cryptage a été inventé par des logiciels comme Jdownloader, lequel est très pratique par ailleurs pour utiliser par exemple Youtube sans avoir à se farcir la saleté d'Adobe Flash !

Et donc le dlc, est sensé protéger les liens unitaires. Si on demande aux vilains de supprimer leur dlc, pas de problème pour en refaire un autre et le remettre en ligne vu qu'un fichier dlc est tout petit.

Bien évidemment la protection est débile et inefficace, vous imaginez bien que les protecteurs des ayant-droit peuvent tout simplement faire tourner JDownloader avec le dlc pour découvrir ce qui se cache derrière.

Et pour nous, Linuxiens, les dlc est juste une barrière stupide pour nous empêcher d'utliser notre commande favorite :

wget

... et profiter à fond de la vitesse de nos lignes !


Voici donc comment on obtient les liens unitaires d'un dlc (ça vous servira si on "pirate" vos œuvres GPL ou CCbySA lol lol)


Il vous faut :
- Jdownloader (Ne serait-ce que pour éviter Flash !.. C'est un programme Java, et il existe un dépôt launchpad pour installer les commandes de lancement dans le menu et 2 ou 3 bricoles).
- Une virtualbox avec Lucid/Karmic (pas obligatoire, mais c'est plus simple pour limiter les flux qui circulent sur le réseau)

1) on lance tcpdump pour capturer les paquets

sudo tcpdump -i eth0 -w out_dlc -s 0

2) On lance Jdownloader
3) On ouvre le dlc dans Jdownloder et on attend qu'il ait fini d'explorer le paquet

4) on fait Ctrl+C sur le tcpdump

5) on sépare les flux capturés

tcpflow -r out_dlc

(tcpflow n'est pas installé par défaut, si vous ne l'avez pas déjà installé, la commande vous sera fournie pour l'installer)

Et voila...

On obtient alors des fichiers dont un contient nos liens sous la forme

POST /mgr_linkcheck.php HTTP/1.1
Accept: */*
Accept-Encoding: *;q=0.1
TE: trailers
Expect: 100-continue
Host: www.megaupload.com
Connection: TE
Date: Wed, 05 May 2010 23:41:26 GMT
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
Content-Length: 829
Content-Type: application/x-www-form-urlencoded

id0=A7FM1HEC&id1=TE2ZOYNE&id2=2TZB6EUY&id3=AUSIZ2K2/......./&id59=8HH3FXM9

La ligne en gras est ce qu'on cherche.

Et donc le premier fichier (id0) sera :

http://www.megaupload.com/?d=A7FM1HEC

etc...

Pour parfaire le script, un grep pour avoir le bon fichier, un cut/sed pour isoler les identifiants, et vous pouvez maintenant faire une bardée de wget en parallèle pour récupérer à fond la caisse votre distribution Ubuntu depuis Megaupload. lol

Dernière modification par Zakhar (Le 06/05/2010, à 20:03)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#6 Le 06/05/2010, à 21:45

Totor

Re : Un tuto pour extraire les liens d'un dlc ?

Zakhar a écrit :

Pour parfaire le script, un grep pour avoir le bon fichier, un cut/sed pour isoler les identifiants,

Pas tout saisis (j'ai lu en diagonal) mais pour isoler les identifiants, c'est pas bien compliqué :

ids=( $(awk '/^id0=/ {gsub(/&?id[[:digit:]]+=/," ");print}' <fichier>) )

ids est un tableau contenant la liste des identifiants...

EDIT :
et pour avoir la liste des URL :

urls=( $(awk -F: '/Host/ { host=$2} /^id0=/ {gsub(/&?id[[:digit:]]+=/," "host"\\&d=");print} ' <fichier>) )

Ensuite, si tu veux les utiliser individuellement, tu fais un :

for url in "${urls[@]}"
do
wget "${url}"
done

Dernière modification par Totor (Le 08/05/2010, à 09:37)


-- Lucid Lynx --

Hors ligne

#7 Le 06/05/2010, à 23:31

Zakhar

Re : Un tuto pour extraire les liens d'un dlc ?

Merci totor !

Mais en réalité on n'a pas besoin de la partie
id0
id1

etc...

On a juste besoin de ce qui est entre le = et le &

De plus le nombre de id est variables.

Donc je pense faire :
- un cut avec le limiteur & (je sais pas la syntaxe, mais un coup de man devrait me la donner)

là on doit alors obtenir une liste de :
id0=ABCDEFG
id1=AAAAAAA
...
id57=12345678

Ensuite je fais un

sed 's/.*=//'

... et normalement le tour est joué. tongue

C'est que awk j'ai pas encore pratiqué... et ça m'a l'air encore plus touffu que sed !

Mais cette partie est pas trop urgente, pour l'instant je l'ai fait "à la main", c'est encore faisable !

Dernière modification par Zakhar (Le 06/05/2010, à 23:33)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#8 Le 07/05/2010, à 12:46

Totor

Re : Un tuto pour extraire les liens d'un dlc ?

Zakhar a écrit :

Mais en réalité on n'a pas besoin de la partie
id0
id1

etc...

On a juste besoin de ce qui est entre le = et le &

De plus le nombre de id est variables.

as-tu testé ce que je t'ai fourni au moins avant de poster de genre de chose ? roll


-- Lucid Lynx --

Hors ligne

#9 Le 07/05/2010, à 22:09

Zakhar

Re : Un tuto pour extraire les liens d'un dlc ?

Non roll

Mais ce qui est bien avec Linux c'est qu'on peut souvent faire de plusieurs façons, et j'aime bien les façons que je suis capable de comprendre. Awk est pour l'instant en dehors de mes pratiques (et donc momentanément de ma compréhension)

Et donc pour l'instant j'ai fait :

echo "$STR" | tr "&" "\n" | sed 's/.*=//'

Ca fonctionne parfaitement.

On obtient :

ABCDEFG
AAAAAAA
...
12345678

Le tr remplace le & par des sauts de ligne.
Sur chaque ligne, le sed coupe tout ce qu'il y a jusqu'au = compris

Et effectivement, je les utilise ensuite dans un for, comme tu le mentionnes.

Cela dit je ne doute pas que ta commande awk fonctionne également, je la testerai à l'occasion et tâcherai de la comprendre !

Dernière modification par Zakhar (Le 07/05/2010, à 22:11)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#10 Le 08/05/2010, à 11:30

Totor

Re : Un tuto pour extraire les liens d'un dlc ?

Zakhar a écrit :

On obtient :

ABCDEFG
AAAAAAA
...
12345678

Avec ma méthode, on obtient un tableau contenant les éléments suivant :

www.megaupload.com&d=AAAAAAA
...
www.megaupload.com&d=12345678

D'ailleurs, wget acceptant plusieurs urls, on peut procéder ainsi une fois qu'il (le tableau) est constitué:

wget ${urls[@]}

et si tu ne souhaite pas utiliser de tableau, ceci :

wget $(awk -F: '/Host/ { host=$2} /^id0=/ {gsub(/&?id[[:digit:]]+=/," "host"\\&d=");print} ' <fichier>)

suffit amplement !
Pour awk, ça se passe ici


-- Lucid Lynx --

Hors ligne

#11 Le 15/05/2010, à 23:48

Zakhar

Re : Un tuto pour extraire les liens d'un dlc ?

Oui, mais avoir Megaupload devant ne m'intéresse pas trop, je veux juste l'extension. wink


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

Haut de page ↑