GNU Poke

GNU poke is an interactive, extensible editor for
binary data. Not limited to editing basic entities such as bits
and bytes, it provides a full-fledged procedural, interactive
programming language designed to describe data structures and to
operate on them.