Try this:
tail -c +$FROM file.dat | head -c $TO$LENGTH > file1.dat
Just assign FROM and TOLENGTH as you need. Note that the numbering for tail is one-based and e.g. tail -c +4 means to start at the fourth byte, that is to skip the first three bytes.
As an example:
$ printf 'abcdefghijklmnopqrstuvwxyz\n' > test.txt
$ tail -c +4 test.txt | head -c 6; echo
defghi