Clone wiki

hachoir / Ideas

Ideas of projects based onhachoir-core.

Break API for Hachoir 2.0

Playing with files

See also hachoir-tools for other experimental tools.


  • use Tcpdump to get data at layer 3, 4 or higher. That means remove TCP ACK packets, ignore duplicates, maybe valid checksums, etc.
    • See ticket:69 ticket:75
    • See projects Scapy, impacket, libpcap and Wireshark (ethereal)
  • use fuse to let unmodified programs use:
    • a transparent conformity check
    • a transparent binary fuzzing (same as a proxy for network fuzzers)
  • Editing:
    • Event driven system: allow fields to signal modify events up to parent fields, all the way to root
    • Aigh, never mind, already implemented in Now to actually use it...
  • Validation, Correction, Optimization, Stripping
    • Parsers should have a way to define correction operations (e.g. rebuild the validation sections/fields), so they can perform elementary error correction on corrupted files.
    • This may be as simple as recomputing CRC & Length, or as complex as searching for new offsets and locations, or deleting completely corrupted frames in an audio file.
    • <haypo> Should not be stored in hachoir-parser to keep parser "light"
    • Optimization: parsers should ideally be able to optimize files, reorganizing them (e.g. OLE2) to be more efficient.
    • <haypo> OLE2 sucks
    • Stripping: parsers should know how to strip themselves of private informations.
    • <haypo> I prefer to store it in hachoir-strip program to keep parser light
  • Ability to dump the content of a field into a file (ie: Content of a file from a filesystem, content of a section from an executable...)
    • Isn't this basically finished, as per "getSubIStream()" on all fields? Add SubFile and FragmentGroup/CustomFragment (these last two need to be made into standard classes!) and you have an easy way to dump to file (see hachoir-http)

Working on hardware

  • Canoscan 5000F: Project started with Thibault North which aims to write a Linux driver for this scanner

See also