Ok guys. I decided to show off my project that I've been working on since coming
across Micah Carrick's superb tutorial in late November 08. So it's about 7 weeks
I would describe myself as a very inexperienced programmer. No knowledge of Gtk
and limited C experience. I don't really know what inspired this project to be
honest. I was experimenting with trying to learn assembly language and with
disassembly. I couldn't find a decent X window based disassembler, Lida being
the best I came across, which uses a Perl front end and C back end. I became
interested in the ELF executable file format and wanted to learn more about it.
There are a couple of terminal based applications (Binary Utils) that allow the
ELF format to be examined and disassembled. The binary code can be hex dumped
for examination but thats about it. Then there is a really good GtK based
hexadecimal editor called Bless (the opposite of Hex apparently). It is written
using C# based on the Novell Mono project. Something that it is TOO MS Windows
related in my opinion, a little like the .NET programming environment.
So here is my project. Maybe a little ambitious for a novice like myself. The
project proposes to develop an application that performs 3 functions.
1. It allows an executable, relocatable or shared object file to be easily
examined and dissected for content, in a nice Gtk windowed environment.
So it is a Binaryfile Inspector GUI (BIG).
2. The binary code is dissected and displayed in hexadecimal format in neat
sections that correspond to the file structure, that is shown in a treeview
format. The hecadecimal code can be edited.
So the application is also a Hexadecimal Editor (HE).
3. And the binary code can be Disassembled in a number of ways. Flow control
as in Lida and block control as in Objdump. The code is displayed in a nice
Source View that can be saved for further examination and editing.
So the application is a Hexadecimal Editor And Disassembler (HEAD).
And so we have the name of the application....tongue firmly in cheek.
The project is coming on very well. Much of the binaryfile inspector is complete.
And the disassembler is functional. The hexadecimal code is available for viewing
but can't yet be edited. Just for good measure I have an embedded terminal which
is always useful for this type of application.
The application can be described as a Reverse Engineering Tool.