我在Linux上使用Skype。
我在哪里可以找到联系人头像的Skype缓存的图像?
我的笔记本电脑上现在没有Linux可以进行验证,但是您可以查看〜/ .Skype目录的内容。
—
kartikmohta,2010年
我在Linux上使用Skype。
我在哪里可以找到联系人头像的Skype缓存的图像?
Answers:
我也想获得这些Skype头像,因此我使用了whitequark的答案来制作一个执行该操作的bash脚本。这里是:
#!/ bin / bash 如果[\($#-lt 1 \)]; 然后 回显“用法:$ 0文件夹”; 回显“文件夹的格式为/home/username/.Skype/username”; 出口; fi; 因为我在`ls $ 1`中; 做 如果[-f $ 1 / $ i]; 然后 #echo“ i:$ i”; $ 1 / $ i | filedump =`hexdump -v -e'“” 1/1“%02x”“”'$ 1 / $ i | sed -e's / ffd8ffe0 / \ nffd8ffe0 / g'`; nocc =`echo“ $ filedump” | wc -l`; #出现\ n字符。表示我们的单词有nocc-1出现 #echo“ nocc:$ nocc”; 如果[“ $ nocc” -ge 2]; 然后 k = 0; old_IFS = $ IFS; #field分隔符 IFS = $'\ n'; 偏移量= 0; 对于$ filedump中的j; 做 w =`echo $ j | wc -m`; #实际为lettercount + 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; 如果[`du $ filename1 | 切-f1` -gt 0]; 然后 转换$ filename1 $ filename2; #convert实际上仅用于删除图像后的数据 fi; rm $ filename1; k = $ [k + 1]; 完成 IFS = $ old_IFS; fi; fi; 做完了
这是一个更干净的脚本,它从main.db文件中提取低清晰度和高清晰度头像并将它们保存到以相应的Skype用户名命名的文件中。
您将需要sqlite3和xxd来运行此脚本。
main.db数据库的内容相当容易理解,有些想像中可以从中提取更多内容。
#!/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
这个Skype论坛主题是关于化身的:http : //forum.skype.com/index.php ? showtopic= 99471。
JFIF
)提供标题。使用该for i in *; do echo $i; hd $i | grep 'ff d8 ff e0'; done
命令对所有Skype文件进行十六进制转储后,发现.Skype / userNNN.dbb文件中此标头多次出现,其中NNN是某个数字。该文件具有某些绝对未记录的专有格式,并且可能保留有关用户的所有缓存信息。您可以通过扫描标题来提取自己的化身,然后将所有内容复制到文件结尾,再复制到其他文件。所有图像查看器都将在图像本身之后跳过任何数据(RARJPG所基于的技术),如果要从其中删除垃圾,则可以“修改”它而不用例如imagemagick和command进行修改convert file.jpg file_clean.jpg
。ImageMagick的行为与描述的查看器相同:它读取图像,跳过其后的所有内容,然后仅写入图像本身。