Group: Super Administrators
Joined: Oct. 2003
Member Rating: 4
||Posted on: Apr. 21 2009,05:46
There will be a lot happening to HexEdit in the near future. In the past development has been a spare time activity but I am now working on HexEdit full-time. A former colleague, with many years experience in this area, may also be assisting in the near future.
This is a roadmap to show where HexEdit will be going in the next year.
HexEdit (shareware version)
HexEdit 1.0 was released as freeware (with source code) in 1999 and enjoyed great success (more than half a million downloads from Download.com alone). I have always been keen to develop the software, particularly by adding many of the ideas I had from the very beginning (eg background searches, highlighter, bookmarks, templates, aerial view, unlimited file sizes, info tips, etc).
In order to cover expenses of continued development (and as encouragement for myself) I have sold HexEdit as shareware for a small fee. Development of HexEdit has never been about making money though at one stage I was selling one copy every few days, but this has dwindled with lack of promotion.
Since the first shareware version (2001) I have tried to make one or two releases every year with at least one significant new feature. (There have been 12 releases in the last 8 years.) Each release also refines and improves existing features. Apart from a few major features of my own invention almost all aditions are in response to user feedback.
HexEdit 3.4 is just about ready for release, and should appear before the end of April 2009. Many small improvements have been made as well as the following major changes.
One major new feature is the addition of navigation points. This is similar to the same named feature in Visual Studio but implemented in a better way.
HexEdit 3.3 implemented a basic ruler. In 3.4 this has been redesigned and greatly enhanced. For example, the ruler now includes "handles" that you can drag to adjust rows size, grouping etc (similar to the handles in the Microsoft Word ruler that allow you to adjust indentation and tabs).
The built-in calculator has had a complete make-over. For example, you can now enter any expression including brackets (C expression syntax), assign to variables, even arrays.
Finally, several templates have been enhanced. In particular the PE template (for the Windows portable executable format as used in .EXE, .DLL etc) has been enhanced to handle .NET CLR data. This makes use of new functions for use in expressions (eg GetBool, which allows optional template features by prompting the user).
HexEdit 3.5 should be released in about 3 months. A new feature in this version will be a "aerial view" facility, something I have planned since I created HexEdit but have not had time to implement. The idea behind the aerial view is to get a high-level overview of a file using a single pixel to represent a single byte (or group of bytes for a very large file).
Aerial view makes use of existing colors for byte ranges in the active color scheme. Preliminary testing indicates this could be a very useful feature.
HexEdit 4.0 should appear in about a year. This will incorporate a "plugin" architecture that will allow data encapsulated within other files or data to be viewed (and in some cases modified).
One application of this would be to allow viewing and editing of files stored in other containers such as .ZIP files or compound file containers (eg older MS Word format files etc). Moreover, plugins could be applied recursively.
There are many other possibilities. For example, a plugin could be designed (as has been requested by one user) with the ability to edit text files containing hex text as if it was a binary file and have changes automatically written back to the text file, while preserving white space and line endings and even other (non-hex) text.
Free Template "Viewer"
HexEdit templates are incredibly powerful and it seems that a free template viewer would be useful. First, a creator of a template could distribute the template to anyone wishing to inspect or modify (via the template) a file of that format if there was a free viewer available.
[Perhaps "viewer" is a misnomer as templates have the facility to allow changes to be made to fields in a file if they are not marked read-only.]
Another consideration is that template display in HexEdit can be slow for some templates when combined with some (usually large) data files. This is due to 2 problems:
- repeated evaluation (sometimes millions of times or more) of expressions
- lack of "virtual mode" in the template tree view - meaning all nodes must be filled in before it is displayed
I intend to address these problems by writing the viewer in C#.
First the .NET CLR provides facilities for "compiling" expressions. So for an expression that is evaluated many times it would be compiled once so that repeated evaluations are performed much more quickly.
The second performance improvement would be to use a tree control that supported a "virtual" mode (as well as other required features like multiple columns). This would make the initial display of many templates instantaneous instead of requiring many seconds or even minutes. Branches of the tree would not have to be evaluated until they were expanded in the tree view - for example, in very large arrays with fixed size elements.
Unfortunately, there is no such .Net tree control available that has the performance and capabilities that are required, so I have developed my own based on the Philip Piper's "ObjectListView" class (see http://www.codeproject.com/KB/list/ObjectListView.aspx.)
Free versions of HexEdit
We have always provided a free version of HexEdit. This is virtually identical to the shareware version of a few years earlier. For example, HexEdit 3.0 was released in January 2005 and the equivalent free version (3.0F) is to be released shortly.
We have also made the source code for the free version available. However, since 2.0 this has become problematic as we started using the commercial BCG library, so you could only build it if you bought BCG. Luckily Microsoft has recognized the worth of the BCG library and has incorporated it into MFC, so in the future we will provide easy access to the source code again and all you will need to build it is Visual Studio 2008.
Soon after HexEdit 3.4 (shareware) is released we will release HexEdit 3.0F (freeware). This will be identical to HexEdit 3.0 with the addition that a few bugs will be addressed that have been found recently.
Some time towards the end of 2009 we will release a free version of HexEdit based on HexEdit 3.2. This will be ported to the new MFC (and use of BCG removed). This will include the complete source code but will require VS 2008.
Edited by andrew on Apr. 21 2009,17:34
Moderator of Forums and creator of Hex Edit