Ideas of projects based on wiki:hachoir-core.
Break API for Hachoir 2.0
Playing with files
- hachoir-grep: find a string in a binary file
- hachoir-strip: remove all "useless" bytes of a file
- hachoir-fuzzer
- Reverse engineering: How to write a parser of unknown file format
- Forensics
- Steganography
See also browser:trunk/hachoir-tools for other experimental tools.
Other
use hachoir-fuzzer to automatically test HachoirDONE: Hachoir is now tolerant to fuzzingticket: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...
- Event driven system: allow fields to signal modify events up to parent fields, all the way to root
- 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 wiki:hachoir-strip program to keep parser light
- 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.
- 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