No momento, não tenho Linux no meu laptop para verificar, mas você verifica o conteúdo do diretório ~ / .Skype.
precisa saber é o seguinte
Respostas:
5
Eu também queria obter esses avatares do Skype, então usei a resposta do whitequark para criar um pequeno script bash que faz exatamente isso. Aqui está:
#! / bin / bash
if [\ ($ # -lt 1 \)];
então
eco "Uso: pasta $ 0";
echo "Onde a pasta está no formato /home/username/.Skype/username";
Saída;
fi;
para i em `ls $ 1`;
Faz
se [-f $ 1 / $ i];
então
#echo "i: $ i";
filedump = `hexdump -v -e '" "1/1"% 02x "" "' $ 1 / $ i | sed -e 's / ffd8ffe0 / \ nffd8ffe0 / g'`;
nocc = `echo" $ filedump "| wc -l`; # ocorrências do \ n char. Significa que existem ocorrências nocc-1 da nossa palavra
#echo "nocc: $ nocc";
if ["$ nocc" -ge 2];
então
k = 0;
old_IFS = $ IFS; #field separator
IFS = $ '\ n';
deslocamento = 0;
para j em $ filedump;
Faz
w = `eco $ j | wc -m`; # dá realmente número de letras + 1
w = $ [w-1];
deslocamento = $ [deslocamento + w];
#echo "offset: $ offset";
filename1 = "$ {i} _ $ {k} _notclean.jpg";
filename2 = "$ {i} _ $ {k} .jpg";
dd ibs = 1 if = $ 1 / $ i de = $ filename1 skip = `echo" $ offset / 2 "| status bc` = não mais;
if [`du $ filename1 | corte -f1` -gt 0];
então
converter $ filename1 $ filename2; #convert, na verdade, é usado apenas para remover os dados após a imagem
fi;
rm $ filename1;
k = $ [k + 1];
feito;
IFS = $ old_IFS;
fi;
fi;
feito
Isso nem sempre funciona, existem alguns avatares que não são encontrados e extraem algumas imagens quebradas. Veja minha resposta para uma solução mais limpa.
Guillaume Brunerie
8
Aqui está um script muito mais limpo, extraindo avatares de baixa e alta definição do arquivo main.db e salvando-os em arquivos com o nome dos nomes de usuário correspondentes do Skype.
Você precisará do sqlite3 e do xxd para executar este script.
O conteúdo do banco de dados main.db é bastante fácil de entender, com um pouco de imaginação, há muito mais que pode ser extraído dele.
#!/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
Primeiro, eles discutem alguns comandos que permitem salvar avatares do cache do Skype com sua interface pública, pois aparentemente não funcionam no Linux. Não sei se eles já consertaram essa interface e não é disso que se trata.
Segundo, um desenvolvedor do Skype disse que todas as imagens são armazenadas no formato JPEG e fornecem um cabeçalho em hex ( JFIF). grep'ing hexdump de todos os arquivos do Skype com o for i in *; do echo $i; hd $i | grep 'ff d8 ff e0'; donecomando revelou muitas ocorrências desse cabeçalho nos arquivos .Skype / userNNN.dbb em que NNN é algum número. Esses arquivos têm um formato proprietário absolutamente não documentado e provavelmente estão mantendo todas as informações em cache sobre os usuários; você pode extrair os próprios avatares pesquisando o cabeçalho e copiando tudo até o final do arquivo para outro arquivo. Todos os visualizadores de imagem pulam todos os dados após a própria imagem (é baseada em uma tecnologia RARJPG) e, se você deseja remover o lixo deles, pode "modificá-lo" sem modificá-lo, por exemplo, com imagemagick e comandoconvert file.jpg file_clean.jpg. O ImageMagick se comporta como o visualizador descrito: lê a imagem, ignora qualquer coisa que a segue e depois grava apenas a própria imagem.
Respostas:
Eu também queria obter esses avatares do Skype, então usei a resposta do whitequark para criar um pequeno script bash que faz exatamente isso. Aqui está:
fonte
Aqui está um script muito mais limpo, extraindo avatares de baixa e alta definição do arquivo main.db e salvando-os em arquivos com o nome dos nomes de usuário correspondentes do Skype.
Você precisará do sqlite3 e do xxd para executar este script.
O conteúdo do banco de dados main.db é bastante fácil de entender, com um pouco de imaginação, há muito mais que pode ser extraído dele.
fonte
Este tópico do fórum do Skype é sobre avatares: http://forum.skype.com/index.php?showtopic=99471 .
JFIF
). grep'ing hexdump de todos os arquivos do Skype com ofor i in *; do echo $i; hd $i | grep 'ff d8 ff e0'; done
comando revelou muitas ocorrências desse cabeçalho nos arquivos .Skype / userNNN.dbb em que NNN é algum número. Esses arquivos têm um formato proprietário absolutamente não documentado e provavelmente estão mantendo todas as informações em cache sobre os usuários; você pode extrair os próprios avatares pesquisando o cabeçalho e copiando tudo até o final do arquivo para outro arquivo. Todos os visualizadores de imagem pulam todos os dados após a própria imagem (é baseada em uma tecnologia RARJPG) e, se você deseja remover o lixo deles, pode "modificá-lo" sem modificá-lo, por exemplo, com imagemagick e comandoconvert file.jpg file_clean.jpg
. O ImageMagick se comporta como o visualizador descrito: lê a imagem, ignora qualquer coisa que a segue e depois grava apenas a própria imagem.fonte