Groovy Hex Editor

(c) SB-Software / Scott M. Baker, smbaker@sb-software.com


Purpose:

Groovy Hex Editor is a tool for editing binary formats. I've paid particular attention to making it colorful and easy to use and tried to give it a cool looking color scheme (hence the name "groovy" hex editor). It's a fully functional hex editor with many advanced features. You can toggle the display between hex and decimal, and there is a built in inspector that easily lets you see the hex, decimal, and binary equivalents of a group of bytes at once. You can easily control the number of bytes displayed per line, and the number of bytes per group. This make is excellent for viewing various data types (bytes, words, long words, etc). This program features the SB-Software no-hassle guarantee: no spyware, no adware, no viruses, no expiration, and no disabled features.

Installation

Installation is very straightforward -- the built in install program should install the software to a program group in your start menu, as well as place an icon on your desktop. It's all automatic, and there's a built in uninstall program that should be able to get rid of everything if you decide you don't want the software.

Quick Start:

  1. Launch the program (via start menu, desktop icon, or whatever....)
  2. Use the File:Open menu item to open a file that you want to edit
  3. Click any set of bytes in the editor window and start typing to change them
  4. Use the File:Save command when you're finished to save your changes to disk

Features:


Table of Contents


Hex Editor Window Options:

There is a bright green bar across the top of the main window that holds several quick-access options that control how the hex editor is displayed and how it is worked. The options are:

BPL (bytes-per-line) This controls the number of bytes that are displayed on each grid in the editor. 16 bytes per line is a good traditional value to use -- it's what the good ol' DOS debug program used to use back in the old days. You can adjust the screen anywhere from 1 byte per line (wow! that sounds useful....) all the way up to 32 bytes per line
BPG (bytes-per-group) This sets the number of bytes per group (or "word") in the window. If you set the bytes per group to "1", then each column in the display will hold exactly one byte. If you set it to "2", then each column will have two bytes (i.e. like a short word or short int). If you set it to 4, then each column contains four bytes (i.e. just like a int or longint). You can even set it to "3", but I don't know why you'd want to as there are damn few 24-bit machines in the world...
Offset Format You can decide whether you want your offsets in decimal or hex. I suppose it depends on whether you're a base-16 or base-10 type of person.
Bytes Format You can toggle the format of the bytes between decimal and hex.

Interesting notes, facts, exciting trivia, and other observations...


The Object Inspector

The object inspector is that crazy pink panel in the lower left. What it does is display the current word (word size is determined by the "BPG" setting) in binary, decimal, and hex. You can edit the number in any of those three formats, and then hit the <Commit> button to write the values to the main window. You can use the revert button if you make a mistake.

Now, you don't need to use the object inspector to edit the main window -- you can just click in the main window and start typing. The whole purpose of the object inspector is so that you can see the current word in all three common number bases, and see your changes simultaneously update in hex, binary, and decimal.


The File Information Display

The file information display is the center window at the bottom of the main window. It displays the current file name and the size of the file. It also tells you whether or not the file is "dirty" - i.e. if you have changed it since it was last loaded or saved.

There's not a whole lot of useful stuff here -- I've got some big plans for more file statistical information to throw into this space as the future develops.


Hex Keypad

On the bottom right of the display is your typical 16-digit hex keypad, reminiscent of the mid 1980s. The hex keypad is fully functional -- you can point and click the buttons if you prefer rather than typing using the keyboard. Not quite sure why you'd want to though.... The hex keypad is kind of there for nostalgia purposes -- it looks cool and it reminds you that yes, you are using a hex editor...

At one time, I had the program making a loud "clunk" sound every time you use the hex keypad, but that was ... well ... rather annoying ... so I took out the sound effect and you'll just have to imagine in your head what kind of cool sound effect that hex keypad ought to be making


Main Menu - File - Open, Close, Save, etc

The file menu holds all of your traditional file operations: Open, Close, Save, and Save As. It also has the all-important "Quit" button for when you're done editing your file, or when you've simply had enough.

I'm hoping the file options are self explanatory -- if you don't know what it means to "open" a file, then I hope somebody takes your PC away from you and beats you over the head with it....

The shrink to system tray option shrinks the program down to an teeny tiny little icon in the system tray (that thing in the lower right of the widows task bar). I'm not sure why you wanna do that, but somebody asked for it, so there it is.... I suppose it's good for getting the program out of the way while you're working on something else.

Main Menu - Edit - Undo and Redo

The undo and redo commands will reverse and re-apply changes that you made. If you screwed something up, you can "undo" it. If you undo something and then want it back again, then you "redo" it. You should also take a look at the Tools:ChangeLog option as it is a big list of all the stuff you've changed, so you can quickly see and remember what you've edited.

Main Menu - Export - Clipboard, Html, Pdf, Xls

Here is where you can find the nifty export commands. These allow you to export the contents of the main window to the file format of your choice, perfect for sharing your hexadecimal exploits with your friends and colleagues. You've got several formats to choose from:

Clipboard - copies to the clipboard in a comma-seperated format

Html - it's a webpage with a big whopping table in the middle of it

Pdf - adobe portable document format. good for sharing with non-PC users, and good for printing.

Xls - excel spreadsheet format. Use this and you can harness the might and power of Microsoft Office to view your hex numbers

Main Menu - Search - Find and Find Next

Files are big places wiht lots of data in them, and the Find and Find Next commands are just what you need to get what you're looking for. You can search in all the popular data formats:

Ascii (i.e. "Text" for those who don't know any better)

If you want to search in Ascii, just type a string (i.e. type the string "scott" into search specification, hit the find button and it ought to find my name ... that is, if my name is in the file ... otherwise it won't ... but I'm sure you could have guessed that). If you're performing an Ascii search, then you can use the case sensitive checkbox to determine whether the program will be sensitive to differences between upper and lower case or not.

Hex - things like FF 00 FE ED FA CE 99

Please don't put any "0x" in front of your hex numbers. Just type a list of them like "12 F0 A1 E9" or something like that. You can even string them together like "12F0A1E9" if separating the bytes with spaces is too much word for you.

Decimal - a base 10 number, like 1234567

You can enter a decimal number and we'll give it our best shot at trying to find it. We automatically set the size of our search based on how big of a number you enter. For example, if you search for "123", which fits in one byte of data, then we'll search for single bytes. If you enter "65000" which is a big whopping 16-bit number, then we'll search for a double-byte quantity.

Main Menu - Settings - Display and Colors

Here is where you access the almighty settings page that lets you set your preferences. You can access the following settings pages:

Display:

The display settings contain a few really important options. The first is the blinky cursor. If you find blinky cursors obnoxious, then you can turn it off, and opt for a steady cursor. The other really important option is the color scheme. If the somewhat "loud" aqua/pink color scheme is too much for you, you can pick the really boring looking windows color scheme instead, where everything is some shade of silver.

Color Settings:

Color settings are for advanced users who like to tweak (i.e. mess with) the default colors of the program. You can several different colors:

background -- the background of the hex editor (sounds obvious, doesn't it?)

byte - the color of bytes (i.e. the center part of the hex editor display)

ascii - the color of ascii (the right-hand part of the display)

cursor - the color of the byte (or character) that is currently under the cursor

change - this one is really friggin' cool. The change highlight feature will leave all the bytes that you change a different color. That way, you know what you've edited.

Main Menu - Tools - Change Log, Redo Log, Gadgets

The tools menu contains useful tools that augment the operation of the hex editor

ChangeLog:

The changelog holds a list of all the bytes that you have changed in the file. That way, when you screw up and can't remember which bytes you've edited, you can use the changelog to figure out what you did.

The ChangeLog works hand-in-hand with the "undo" and "redo" features. When you use the "undo" command (from the Edit menu in the main form), all it does is pop the bottom item off the undo list and reverse the changes.

Redo Log:

The redo log is kind of the opposite of the Change Log. What the redo log holds is a list of items that you have "undone" with the "undo" command. When you use the "redo" command, what it does is pop the bottom item off the redo list, and re-apply the changes.

Gadgets:

The gadgets are mainly gizmos left over from some of my other programming adventures that I thought looked cool, so I threw them in here in the hopes that they would serve a useful purpose.

Right now, the gadgets consist of various implementations of my VFD display class. VFD stands for "Vacuum Fluorescent Display", and it's an old-time calculator display that can display some fields. The live cursor offset and live cursor word displays show you the current offset (and byte/word) where the cursor is hovering. The clock is, well, a clock...

If you like the gadgets, then bop on over to www.sb-software.com and try out the freeware binary clocks and nixie clocks that you can download.

Main Menu - Tools - String Sifter

The string sifter tool is designed to help you locate ascii strings in the binary file that you are editing. It does this by scanning the binary file and located contiguous strings (i.e. strings without any "bad" characters in them).

The first thing to do is to configure the parameters of your search:

Hit the <run> button to execute the string sifter.

The string sifter will search the binary file and locate all contiguous ascii strings. A valid string is composed of letters [A-Za-z], numbers [0-9], white space (tab, space, etc) and punctuation. Strings are terminated once an invalid character is reached.

You can sort by offset or alphabetical by clicking columns in the string list. The <Goto> button will cause the main hex editor window to move to the location of the string.

Main Menu - Register

You ought to use this one immediately. Like right now. Stop reading this file and please register your software. Registering is how I, the shareware author, get paid for all of my hard work. If nobody registers, then I don't get any money, I can't eat and pay the rent, and (most importantly), I can't continue to develop this very fine software application that you are using.

Here's how it works. You pay me a small (yet very meaningful) registration fee. There's several ways to do this -- online via credit card or paypal, and through the good ol' US Mail system.  In return, I email you have a registration code. You type that code into the program, and abracadabra! your software is now registered. No more 5 second delay and nag screen every time you start the software.

Main Menu - Help

There's two options here. The first is the user's manual (which happens to be this thing you're reading right now).

The second is the about box. The about-box has the all important program version number in it. That way, when the program crashes, hangs, locks up, explodes, self destructs, melts down, GPFs, SEGFAULTs, or whatever you think it does, you can find the version number and email me and say "Hey Scott, version 1.0 of your !@#$ program just crashed when I clicked the right mouse button while standing on my head and counting to seven backwards".

Seriously though, the version number is real important to me, as is the program name (hey guys, I have lots of programs, please tell me which one you're asking about). Feel free to email me wiht suggestions, questions, comments, bug reports, or whatever. You can reach me at smbaker@sb-software.com


Register

This software is not free! You are allowed to evaluate the software for a limited amount of time. If you find the software useful and continue to use it, then you must register to continue using the product.

Complete registration information is available at http://www.sb-software.com/credit/

Registrations may be paid for online in a variety of methods (credit card, etc), or may be made through the mail. See the website site at http://www.sb-software.com/


Command Line Options

The command line options allow you to alter the behavior of the program from the command line. They're useful for old hackers like me who still launch everything from a command window. The command line syntax is:

hexedit [options] <filename>

The <filename> argument allows you to specify what file you want opened. For example:

hexedit c:\windows\taskman.exe   Launch the hex editor, and open the file "c:\windows\taskman.exe" for editing

You can use the following command line options:

option   description   example
-max   maximize the program window   hexedit -max
-size w,h   set the main window size   hexedit -size 320,200
-pos x,y   set the main window position   hexedit -pos 200,200

Revision History