LinuxでSkypeを使用しています。
連絡先のアバターのSkypeによってキャッシュされた画像はどこにありますか?
私はそれらのSkypeアバターも入手したかったので、whitequarkの回答を使用して、それを実行する小さなbashスクリプトを作成しました。ここにあります:
#!/ bin/bash if [\($#-lt 1 \)]; then echo "使用法:$ 0 folder "; echo"フォルダーの形式は/home/username/.Skype/username"; exit; fi; for i in `ls $ 1`; do if [-f $ 1/$ i]; then #echo" i:$ i "; filedump = `hexdump -v -e '" "1/1"%02x "" "' $ 1/$ i | sed -e's/ffd8ffe0/\ nffd8ffe0/g'`; nocc =ʻecho "$ filedump" | wc -l`; #\ ncharの出現。 Wordのnocc-1オカレンスがあることを意味します #echo "nocc:$ nocc"; if ["$ nocc" -ge 2]; then k = 0; old_IFS = $ IFS; #フィールド区切り文字 IFS = $ '\ n'; offset = 0; for j in $ filedump; do w = `エコー$ 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; if [`du $ filename1 | cut -f1` -gt 0]; then convert $ 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ファイルのhexdumpをgrepすると、.Skype /userNNN.dbbファイルでこのヘッダーが多数出現することが明らかになりました。NNNはいくつかの数字です。このファイルは、完全に文書化されていない独自の形式であり、おそらくユーザーに関するすべてのキャッシュ情報を保持しています。ヘッダーをスキャンし、ファイルの終わりまですべてを他のファイルにコピーすることで、アバター自体を抽出できます。すべての画像ビューアは、画像自体(RARJPGが基づいているテクノロジー)の後のデータをスキップします。画像からジャンクを削除したい場合は、変更せずに「変更」できます。 imagemagickとコマンドconvert file.jpg file_clean.jpg
を使用します。 ImageMagickは、説明されているビューアのように動作します。画像を読み取り、それに続くものをスキップして、画像自体のみを書き込みます。