7 | | This section will discuss existing tools related to my project, so they can be used for inspiration. |
| 11 | I am researching existing tools related to my project, so they can be used for inspiration. |
| 12 | |
| 13 | === [http://construct.wikispaces.com/ Construct] === |
| 14 | |
| 15 | TODO: looks promising. Also look at issues and forks. |
| 16 | |
| 17 | === [http://bindata.rubyforge.org/ BinData] === |
| 18 | |
| 19 | TODO: looks promising. |
| 20 | |
| 21 | === [http://wsgd.free.fr/index.html Wireshark Generic Dissector] === |
| 22 | |
| 23 | The length and real value of a field can depend on all previous fields and use |
| 24 | complex expressions. Structures can contain `if`/`while`/`continue`/`break`/… |
| 25 | statements. |
| 26 | |
| 27 | === Less interesting tools === |
| 28 | |
| 29 | [https://www.wireshark.org/ Wireshark] and [http://www.tcpdump.org/ tcpdump]:: |
| 30 | As the Construct wiki notes, you would expect these developers to have some |
| 31 | sort of DSL, but they just use C for everything. Wireshark does use ASN.1, |
| 32 | Diameter, and MIDL for protocols developed with them. |
| 33 | [http://kde.org/applications/utilities/okteta/ Okteta]:: |
| 34 | Has an XML format for simple structures, where the length of a field can |
| 35 | depend on a previous value. Also has an on‐line database of structures, but |
| 36 | it isn’t very popular—there are only nine submissions! |
| 37 | [http://ff-extractor.sourceforge.net/ ffe]:: |
| 38 | Only the simplest structures. |
| 39 | Other hex editors:: |
| 40 | [http://beye.sourceforge.net/ Beye], [http://home.gna.org/bless/ Bless], and |
| 41 | [https://live.gnome.org/Ghex GHex] lack interesting features. |