Où Skype enregistre les avatars de mon contact dans Linux?

J'utilise Skype sur Linux.

Où puis-je trouver des images mises en cache par skype des avatars de mon contact?

Je voulais obtenir ces avatars de Skype aussi, alors j'ai utilisé la réponse de Whitequark pour créer un petit script bash qui fait exactement cela. C'est ici:

 #! / Bin / bash

 Si [\ ($ # -lt 1 \)];
 puis
   Echo "Utilisation: dossier $ 0";
   Echo "Où le dossier est sous la forme /home/username/.Skype/username";
   Sortie;
 Fi;

 Pour i in `ls $ 1`;
 faire
   Si [-f $ 1 / $ i];
   puis
     #echo "i: $ i";
     Filedump = `hexdump -v -e '" "1/1"% 02x "" "' $ 1 / $ i |  Sed -e 's / ffd8ffe0 / \ nffd8ffe0 / g'`;
     Nocc = `echo" $ filedled "|  Wc -l`;  # Occurrences du \ n char.  Signifie qu'il y a des occurrences de nocc-1 de notre mot
     #echo "nocc: $ nocc";
     Si ["$ nocc" -ge 2];
     puis
       K = 0;
       Old_IFS = $ IFS;  #field separator
       IFS = $ '\ n';
       Offset = 0;
       Pour j dans $ someted;
       faire
         W = `echo $ j |  Wc -m`;  # Donne effectivement lettercount + 1
         W = $ [w-1];
         Offset = $ [offset + w];
         #echo "offset: $ offset";
         Filename1 = "$ {i} _ $ {k} _notclean.jpg";
         Filename2 = "$ {i} _ $ {k} .jpg";
         Dd ibs = 1 si = $ 1 / $ i de = $ filename1 skip = `echo" $ offset / 2 "|  Bc` status = noxfer;
         Si [`du $ filename1 |  Cut -f1` -gt 0];
         puis
           Convert $ filename1 $ filename2;  #convert n'est en fait utilisé que pour supprimer les données après l'image
         Fi;
         Rm $ filename1;
         K = $ [k + 1];
       terminé;
       IFS = $ old_IFS;
     Fi;
   Fi;
 terminé

Voici un script beaucoup plus propre qui extrait les avatars bas def et haute définition du fichier main.db et les enregistre dans les fichiers nommés après les noms d'utilisateur Skype correspondants.

Vous aurez besoin de sqlite3 et xxd pour exécuter ce script.

Le contenu de la base de données main.db est assez facile à comprendre, avec un peu d'imagination il y a beaucoup plus qui pourrait en être extrait.

#!/bin/bash if (( $# != 1 )) then echo "Usage: $0 folder" echo "Where folder is of the form /home/username/.Skype/username" exit 1 fi # Magic string used at the beginning of JPEG files magic=FFD8FFE0 # We read main.db and extract the Skype name, the avatar image and the # attachments (which often contain a high-def version of the avatar image) sqlite3 "$1/main.db" "select skypename,hex(avatar_image),hex(profile_attachments) from Contacts;" |\ while read line do IFS='|' # We convert the line into an array a=($line) if [[ -n ${a[1]} ]] # There is an avatar_image then # We strip everything before the magic string, convert it back to binary, and save it to a file echo $magic${a[1]#*$magic} | xxd -r -p > ${a[0]}_small.jpg fi if [[ -n ${a[2]} ]] # There is a profile_attachments then # Same as above echo $magic${a[2]#*$magic} | xxd -r -p > ${a[0]}.jpg fi done 

Ce thread du forum Skype concerne les avatars: http://forum.skype.com/index.php?showtopic=99471 .

  • Tout d'abord, ils discutent de certaines commandes qui vous permettent de sauvegarder les avatars du cache Skype avec son interface publique, car il ne fonctionne pas apparemment sur Linux. Je ne sais pas s'ils ont déjà réglé cette interface, et ce n'est pas ce que vous posez votre question.
  • Deuxièmement, un skype dev a déclaré que toutes les images sont stockées au format JPEG et fournissent un en-tête en hexadécimal ( JFIF ). Grep'ing hexdump de tous les fichiers Skype avec le for i in *; do echo $i; hd $i | grep 'ff d8 ff e0'; done for i in *; do echo $i; hd $i | grep 'ff d8 ff e0'; done for i in *; do echo $i; hd $i | grep 'ff d8 ff e0'; done commande for i in *; do echo $i; hd $i | grep 'ff d8 ff e0'; done révélé de nombreuses occurrences de cet en-tête dans les fichiers .Skype / userNNN.dbb où NNN est un certain nombre. Ces fichiers ont un format propriétaire absolument sans papiers et conservent probablement toutes les informations mises en cache sur les utilisateurs; Vous pouvez extraire les avatars eux-mêmes en scrutant l'en-tête, puis en copiant tout jusqu'à la fin du fichier vers un autre fichier. Tous les téléspectateurs d'images sauteront toutes les données après l'image elle-même (une technologie RARJPG est basée sur), et si vous souhaitez supprimer des déchets, vous pouvez "le modifier" sans modifier par exemple avec imagemagick et commande convert file.jpg file_clean.jpg . ImageMagick se comporte comme une visionneuse décrite: il lit l'image, saute tout ce qui le suit, puis écrit uniquement l'image elle-même.