52 lines
1.2 KiB
Bash
Executable File
52 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
Usage() {
|
|
echo "Usage: $0 input > output"
|
|
}
|
|
|
|
extract_meta() {
|
|
img_file=${1}
|
|
meta_size=272
|
|
|
|
if [ "$#" == "0" ]; then
|
|
echo "Error: No image file!!!"
|
|
elif [ ! -f ${img_file} ]; then
|
|
echo "Error: Image file does not exist!!!"
|
|
fi
|
|
|
|
meta1=`dd if=${img_file} bs=1 count=$meta_size status=none | xxd -p`
|
|
meta1=${meta1//[[:space:]]/}
|
|
|
|
block_size=0x${meta1:26:2}${meta1:24:2}
|
|
block_offset=${block_size}
|
|
#echo ${block_size}
|
|
#echo ${block_offset}
|
|
block_size=`dd if=${img_file} bs=1 count=4 skip=$((${block_offset} + 12)) status=none | xxd -p`
|
|
block_size=0x${block_size:2:2}${block_size:0:2}
|
|
block_offset=$((${block_offset} + ${block_size}))
|
|
#echo ${block_size}
|
|
#echo ${block_offset}
|
|
block_size=`dd if=${img_file} bs=1 count=4 skip=$((${block_offset} + 12)) status=none | xxd -p`
|
|
block_size=0x${block_size:2:2}${block_size:0:2}
|
|
block_offset=$((${block_offset} + ${block_size}))
|
|
#echo ${block_size}
|
|
#echo ${block_offset}
|
|
#return
|
|
|
|
meta2=`dd if=${img_file} bs=1 count=$meta_size skip=$block_offset status=none | xxd -p`
|
|
meta2=${meta2//[[:space:]]/}
|
|
|
|
echo ${meta1} | xxd -r -p
|
|
echo ${meta2} | xxd -r -p
|
|
}
|
|
|
|
main() {
|
|
if [ "$#" == "0" ]; then
|
|
Usage
|
|
else
|
|
extract_meta $@
|
|
fi
|
|
}
|
|
|
|
main $@
|