Moving bytes in file by offset and length

Hi,
I'm looking for a way (other than C) to pull out a number of bytes in a Linux file for a giving length. for example:

file1 contains 2 records:
abcdefghijkl
mnopqrstuv
.....
so, I want to pull starting in byte 9 for a length of 8

file2 would contain:

ijkmnopq

Thanks

This example also is a good example of why I dislike '<<'; the pipe head is in the middle of the data structure:

tail -c +3 <<! | head -c -n 2
1234567
!
34

This is with HP-UX old bits, your head and tail may differ, see the man pages!

Thanks DG... it worked