1#!/bin/bash -e 2 3INPUT=$1 4OUTPUT=$2 5SIZE=$3 6BUF=$4 7 8if [ ! -e "$INPUT" ]; then 9 echo "ERROR: No input file \"$INPUT\"" 10 exit 1 11fi 12 13if [ "$SIZE" -gt 1024 ]; then 14 echo "ERROR: SIZE bigger than 1K" 15 exit 1 16fi 17 18BIG_END=$[SIZE / 256] 19LIT_END=$[SIZE - (BIG_END * 256)] 20BIG_END=$(echo "ibase=10;obase=16;$BIG_END" | bc) 21LIT_END=$(echo "ibase=10;obase=16;$LIT_END" | bc) 22 23rm -rf "$OUTPUT" 24dd if="$INPUT" of="$OUTPUT" bs=1k count=10 25echo -en "\x$LIT_END\x$BIG_END" >> "$OUTPUT" 26echo -n "$BUF" >> "$OUTPUT" 27SKIP=$[10 * 1024 + SIZE + 2] 28dd if="$INPUT" of="$OUTPUT" seek=$SKIP skip=$SKIP bs=1 29