While I'm not experienced with this sort of task (fair warning...), I suspect that if you're reading stuff from a binary file (especially if you're familiar with C), the fact that characters of a string can be read as $string{0}, $string{1} etc. may well be useful, corresponding of course to a C-like modelling of strings as arrays of characters. Read the binary data in (use fseek if you have suitable offsets handy) as a string and it should remain intact for you to go over in the above fashion.
I'm not confident that the usual string-manipulation functions are 100% binary-safe; instead, the [man]sscanf()[/man] function should also be familiar when in comes to parsing text-like data, and the [man]unpack()[/man] function should be able to convert bytes to corresponding PHP values (e.g., null-terminated strings, 32-bit ints).