J'utilise Skype sur Linux.
Où puis-je trouver des images mises en cache par skype des avatars de mon contact?
J'utilise Skype sur Linux.
Où puis-je trouver des images mises en cache par skype des avatars de mon contact?
Réponses:
Je voulais aussi obtenir ces avatars Skype, 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 if [\ ($ # -lt 1 \)]; puis echo "Utilisation: dossier $ 0"; echo "Où le dossier est au format /home/username/.Skype/username"; sortie; Fi; pour i dans «ls $ 1»; faire si [-f $ 1 / $ i]; puis #echo "i: $ i"; depositedump = `hexdump -v -e '" "1/1"% 02x "" "' $ 1 / $ i | sed -e 's / ffd8ffe0 / \ nffd8ffe0 / g' '; nocc = `echo" $ depositedump "| wc -l`; # occurrence du \ n char. Signifie qu'il y a des occurrences nocc-1 de notre parole #echo "nocc: $ nocc"; if ["$ nocc" -ge 2]; puis k = 0; old_IFS = $ IFS; # séparateur de champ IFS = $ '\ n'; offset = 0; pour j dans $ fileump; faire w = `echo $ j | wc -m`; # donne en fait un nombre de lettres + 1 w = $ [w-1]; offset = $ [offset + w]; #echo "offset: $ offset"; filename1 = "$ {i} _ $ {k} _notclean.jpg"; filename2 = "$ {i} _ $ {k} .jpg"; dd ibs = 1 if = $ 1 / $ i of = $ filename1 skip = `echo" $ offset / 2 "| bc` status = noxfer; if [`du $ filename1 | cut -f1` -gt 0]; puis convertir $ filename1 $ filename2; #convert est en fait uniquement utilisé 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 basse définition et haute définition du fichier main.db et les enregistre dans des fichiers nommés d'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 à en extraire.
#!/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 fil de discussion Skype concerne les avatars: http://forum.skype.com/index.php?showtopic=99471 .
JFIF
). grep'ing hexdump de tous les fichiers Skype avec la for i in *; do echo $i; hd $i | grep 'ff d8 ff e0'; done
commande a 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 non documenté et conservent probablement toutes les informations mises en cache sur les utilisateurs; vous pouvez extraire les avatars eux-mêmes en recherchant l'en-tête, puis en copiant tout jusqu'à la fin du fichier dans un autre fichier. Toutes les visionneuses d'images ignoreront toutes les données après l'image elle-même (une technologie basée sur RARJPG), et si vous voulez en supprimer les éléments indésirables, vous pouvez les "modifier" sans les modifier, par exemple avec imagemagick et la commandeconvert file.jpg file_clean.jpg
. ImageMagick se comporte comme la visionneuse décrite: il lit l'image, ignore tout ce qui le suit et n'écrit que l'image elle-même.