Hexane Hex Editor

What is Hexane?

Hexane is an attempt to create a fully scriptable hex editor, with support for editing files which are larger than the physically available system memory. We have a number of other neat features in the works, such as process editing and eventually support for a C-like structure definition language.


What's different about Hexane?

Hexane uses an experimental, new data engine design based on B+ trees. It is implemented with speed, efficiency, and usability in mind. For more information on the engine, check out the Engine Page.


Is Hexane Open Source?

Yes! Hexane is licensed under the Gnu Public License v2.


How can I help?

The project is still in the early stages of development. You might check the Progress Page to see where we're at. If you are a strong C/C++ programmer, we could really use your help! Please check the How to Help Page, join the developer's mailing list, and check the forums and IRC to get started.


News

  • 06/21/2007 - I have implemented a nice readline style terminal interface, and have been spending time researching and designing core algorithms and subsystems of the editor. You may have noticed development is a little slow around here. Well, I can guarantee you this project isn't going away any time soon. I spend a lot of my time for this project researching and implementing evaluation programs related to specific subsystems of the editor. For example, one area that has required a lot of my time is the design of the structure mapping code, and interface to a corresponding data processing language. Ideally, I'd like this and the scripting language to be one in the same, but I have yet to find a solution that:

    • Provides a powerful scripting language interface which is well suited for low level data manipulation

    • The scripting language should be under a GPL compatible license, and be easy to embed and use.

    • The structure definition language should be powerful enough to describe complex data structures with relative ease. Ideally, it shouldn't have much of a learning curve for those who know C, and shouldn't resort to convoluted methods of describing structures.

    • The structure definition language and the corresponding interpreter should be easy to interface with, and the language should provide some elements of a real programming language, such as expression evaluation, control constructs, and procedures.

    Like I said, it'd really be nice to find a general purpose language that addresses all of these issues. I might still wind up writing a DSL (domain specific language) for this purpose, but I'd think something like this should already exist somewhere, and I shouldn't have to reinvent the wheel. Theres already about 13,000 lines of code to this thing. I'd rather not make it any more complicated than necessary.

  • 04/02/2007 - New code on the way. Highlights include: totally revamped config file parser, configuration management code, new code to make debugging easier, as well as reworked build scripts, and code to make the gui more consistent and easier to use. I should probably also start planning a pre-alpha release, and set up Doxygen for documentation.

  • 02/10/2007 - I am highly considering using S-lang as the embedded language for Hexane. It seems it would be easy to bind the editor's functionality to the language, and easy enough to embed a S-lang interpreter. S-lang is also used in the Jed Text Editor.

  • 01/30/2007 - I have ported the entire user interface to GtkMM/Sigc++. Its currently about 10,000 lines of C++. There is still lots to be done, in all areas of the program, but it is coming along nicely. Hopefully I'll update the screenshots and post some more code soon.

  • 11/29/2006 - Posted preliminary screenshots of the GUI prototype.

  • 11/28/2006 - Although there haven't been many recent commits, I have been researching the best way to implement the file structure mapping system, and working on the GUI prototype. I think I might also retrofit the config system to use libxml2, and am also heavily considering using Gtkmm/Sigc++ for callbacks to/from the gui. Screenshots and updates to be posted shortly. Stay tuned.

  • 09/18/2006 - Project posted to SourceForge.net.

 Hexane is Hosted by SourceForge.net