นี่คือสคริปต์ที่สะอาดกว่ามากที่แยกทั้งอวตารที่มีความละเอียดต่ำและสูงจากไฟล์ 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