Estoy usando Skype en Linux.
¿Dónde puedo encontrar imágenes almacenadas en caché por skype de los avatares de mis contactos?
Estoy usando Skype en Linux.
¿Dónde puedo encontrar imágenes almacenadas en caché por skype de los avatares de mis contactos?
Respuestas:
También quería obtener esos avatares de Skype, así que utilicé la respuesta de whitequark para hacer un pequeño script bash que hace exactamente eso. Aquí está:
#! / bin / bash si [\ ($ # -lt 1 \)]; entonces echo "Uso: carpeta $ 0"; echo "Donde la carpeta tiene la forma /home/username/.Skype/username"; salida; fi; para i en `ls $ 1`; hacer si [-f $ 1 / $ i]; entonces #echo "i: $ i"; filedump = `hexdump -v -e '" "1/1"% 02x "" "' $ 1 / $ i | sed -e 's / ffd8ffe0 / \ nffd8ffe0 / g' '; nocc = `echo" $ filedump "| wc -l`; # ocurrencias del \ n char. Significa que no hay ocurrencias de nuestra palabra nocc-1 #echo "nocc: $ nocc"; if ["$ nocc" -ge 2]; entonces k = 0; old_IFS = $ IFS; # separador de campo IFS = $ '\ n'; desplazamiento = 0; para j en $ filedump; hacer w = `echo $ j | wc -m`; # da realmente el número de letras + 1 w = $ [w-1]; desplazamiento = $ [desplazamiento + 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 | cortar -f1` -gt 0]; entonces convertir $ filename1 $ filename2; #convert solo se usa para eliminar los datos después de la imagen fi; rm $ filename1; k = $ [k + 1]; hecho; IFS = $ old_IFS; fi; fi; hecho
Aquí hay una secuencia de comandos mucho más limpia que extrae los avatares de baja y alta definición del archivo main.db y los guarda en archivos con los nombres de usuario de Skype correspondientes.
Necesitará sqlite3 y xxd para ejecutar este script.
El contenido de la base de datos main.db es bastante fácil de entender, con un poco de imaginación, se puede extraer mucho más de él.
#!/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
Este hilo del foro de Skype trata sobre avatares: http://forum.skype.com/index.php?showtopic=99471 .
JFIF
). grep'ing hexdump de todos los archivos de Skype con el for i in *; do echo $i; hd $i | grep 'ff d8 ff e0'; done
comando reveló muchas ocurrencias de este encabezado en archivos .Skype / userNNN.dbb donde NNN es algún número. Estos archivos tienen un formato patentado absolutamente indocumentado y probablemente guardan toda la información almacenada en caché sobre los usuarios; puede extraer los avatares escaneando el encabezado y luego copiando todo hasta el final del archivo en otro archivo. Todos los visores de imágenes omitirán cualquier dato después de la imagen en sí (una tecnología en la que se basa RARJPG), y si desea eliminar la basura de ellos, puede "modificarla" sin modificarla, por ejemplo, con imagemagick y comandoconvert file.jpg file_clean.jpg
. ImageMagick se comporta como el visor descrito: lee la imagen, omite todo lo que le sigue y luego escribe solo la imagen misma.