Dưới đây là tập lệnh sạch hơn nhiều trích xuất cả hình đại diện độ phân giải thấp và độ phân giải cao từ tệp main.db và lưu chúng vào các tệp được đặt tên theo tên người dùng Skype tương ứng.
Bạn sẽ cần sqlite3 và xxd để chạy tập lệnh này.
Nội dung của cơ sở dữ liệu main.db khá dễ hiểu, với một chút trí tưởng tượng, có rất nhiều điều có thể được trích xuất từ nó.
#!/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