Ideas of projects based on wiki:hachoir-core.

Break API for Hachoir 2.0

Playing with files

See also browser:trunk/hachoir-tools for other experimental tools.

Other

  • use hachoir-fuzzer to automatically test Hachoir DONE: Hachoir is now tolerant to fuzzing
  • ticket:41 (Write HTML user interface) DONE: wiki:hachoir-http
  • use Tcpdump to get data at layer 3, 4 or higher. That means remove TCP ACK packets, ignore duplicates, maybe valid checksums, etc.
  • 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 basic_field_set.py. 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.
  • 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