Binary files can be a pain to debug…

BEdit is for the programmer who deals with binary file formats, and want a tool that is more powerful than a hex editor — but not a fully-fledged customized reader.

You usually have to create custom tools just to dump binary files to a structured ASCII format that you can read and inspect. BEdit is a tool that will help you debug, create and edit binary files in a more structured way than a hex editor.

BEdit is an Editor

bedit_hex_source.png

The goal of this project is for you to be able to write types (in a C-like language, known as the BEdit Layout Language) and where in the binary file the type appears. The editor then applies this format with the binary data, allowing you to do type-safe edits and display the data in a more meaningful way than raw bytes.

Both the command-line and GUI version displays the data as specified in the layout file, but only the GUI version has editing capabilities of the binary file.

bedit_byaddress_byhierarchy.png

BEdit is a Viewer

The GUI version provides three views of your binary file; the hex-editor, by-address view and hierarchy-view (all shown above), each providing their own pros and cons.

As you provide the file structure to BEdit, the hex-editor shows what member is occupying what region of memory. This can quickly show you if you have "unknown" data in the file.

The hierarchical-view displays the data as a tree-view (akin to how a modern C/C++ debugger would show a struct). This view shows you the most important data, at the cost of losing the "natural" ordering. BEdit type members are not necessarily specified in order of appearance in the file.

by-address view is a compromise between the hex-view and hierarchical-view. It shows the members in memory order, but not in the order you declared the data (unless all your data was declared in order).

Command line version is limited to a table view.

bedit_cli_png.png

BEdit is a Command-line Tool

The free, open source, public domain command-line version allows you to format your data just like in the GUI version (both versions utilize the same codebase). The command line version also features a debugger which let's you step through your layout code, instruction by instruction.

The next planned release of BEdit (version 0.2.3) features plotting. This, as with all other viewing related capabilities of BEdit, is also available for the command-line version.

bedit_wav_plot.png

BEdit is Being Updated

This project is in early phase and is being developed. Current version is alpha 0.2.2.

You can get the latest build (both CLI and GUI) from itch.io. Want to support the development? Download the GUI version.

For issues and documentation, head over to GitHub.

Want to build it yourself? The open-source command-line version is available on Bitbucket.

If you have feedback or question you would like to share in private, you can do so by sending an email to [email protected]