|
Display Options
- Easy selection of display format from toolbar drop-down lists
- Easy selection of character set (ASCII, ANSI, MSDOS, EBCDIC) using
drop down list
- Easy selection of colour schemes, font, font size etc using drop-down
lists
- Choose any font (including typeface, style and size)
- You can undo all display changes not just file changes (see Undo
below)
- Option to show only text area, only hex area, or both areas
- Quickly select the next larger or smaller valid font size using toolbar buttons or mouse
wheel
- Mark and remember important bytes with the highlighter
- Number of columns setable up to 1000
- Column grouping setable from 2 to number of columns
- Autofit mode automatically adjusts the number of columns to fit the window
- You can hide highlights, bookmarks etc (without
actually deleting them)
- Addresses (on the left side of the window) can be in hex or decimal
- Hex digits can be displayed in upper or lower case (all windows, dialogs,
status bar etc)
- Skins allow you to completely change the look of menus, toolbars etc
- Window tabs facilitates switching between files
- See also Colour Options,
Advanced
Display Options, EBCDIC
support
Editing Options
- You can edit files over a Terabyte (Windows
2000/XP filesystem) or up to 4 GBytes (FAT32)
- Open and change the last byte of a 10 Gbyte file in seconds
- All the normal cursor movement and editing keys are supported
- Ctrl+Left and Ctrl+Right move by column groups (group size is configurable)
- Holding down shift and pressing cursor movement keys selects a range of bytes
- The normal mouse selection is supported including autoscroll (with acceleration),
shift-clicking etc
- Unlimited undo of all files changes (see Undo below)
- Files can be opened for read-only
- Windows can be toggled between read-write and read-only (if the file is not read-only)
- Windows can be edited in Insert or Overtype mode
- Unlike some editors you don't need a spare GByte of disk space to edit a Gbyte file
- See also Advanced Editing, Clipboard,
and File Handling
Templates
- Easily gives an overview of almost any type of binary file (using
appropriate template)
- Templates for common formats provided or available for download, and
more being created all the time
- Advanced template system using XML schema for storing templates
- Handles variable length elements (arrays, strings) and optional
elements by evaluating expressions
- Displays a "tree view" in a split window or a tabbed window
- Tree view allows quick location of specific data fields (by expanding
branches)
- Expressions can evaluate any field encountered in the file so far
including array elements & struct members
- Expressions have most C (and hence C++) operators with same precedence
- Integer, floating point, string and boolean types supported by
expressions
- Expressions allow array indexing ([] operator) and structure member
access (. operator)
- Create and assign global variables (including arrays) in expressions
- Complete nesting of elements (eg array of structs, array of arrays
etc)
- Arrays can be variable in length using a length expression and/or
termination condition expression
- Array elements can be variable in size
- Boolean expressions are evaluated to determine presence of optional
elements
- Supports all "Properties" data types including dates,
floats, 64 bit ints etc
- Supports fixed length and terminated strings
- Optional domain check (boolean expression) of fields to flag invalid
values
- Integer fields can be displayed and validated according to an "enum"
(list of names/values)
- Enum syntax is the same as in C/C++
- Supports variable length strings and BLOBs (length = expression)
- Button to jump to the template creator's web site for more info. on a
specific format
Bookmarks
- Unlimited named bookmarks each associated with a file and address
- Add, delete, jump to bookmarks from the Bookmarks list (modeless
dialog)
- Sort bookmarks on name, time last used (jumped to), time changed
(created/moved), filename, offset etc
- Bookmarks are automatically adjusted when bytes are added or deleted
- Validate bookmarks removes all bookmarks that no longer exist (file
gone etc)
- Exclude network and removable drives from validation
- Command to remove all bookmarks from the current file
- Commands to jump to previous/next bookmark in file
- Quickly create unnamed bookmarks using bookmark toggle command
- Quickly jump to any bookmark in the
current file by selecting from bookmarks tool
- Bookmarks tool displays the nearest bookmark in the file
- New bookmarks context menu when you right-click on a bookmark
- Integration with other features (eg jump tools, searches etc)
Undo
- Unlimited undo (only limited by available virtual memory)
- File level undo allows undoing of all modifications to a file
- All display changes are undoable (eg. font, number of columns, etc)
- "Undo Changes" command avoids wading through lots of window level changes
- You are warned before undoing file changes made in another window
Printing
- Print preview (including zoom) is provided
- Printing the current selection or a range of pages is supported
- NEW Duplicate lines (eg masses of nul bytes) can be printed
once with a count
The font size is adjusted so that the printing fits across the
page
Margins and line-spacing can be controlled
Customizable printer headers and footers - current date, file name/dates, page # etc
NEW Printer headers can be positioned vertically
NEW Options to print a border and column headings
Improved print preview including display of margins
Search occurrences and highlights are printed
Properties
- The properties dialog can remain on screen and is updated as you move
the cursor
- The current position of the dialog is restored when you reopen Hex Edit
- Associate category, comments and keywords with
individual files
- View file name, directory, date last created/accessed/modified, current size etc of a file
- View file type (based on extension) as displayed in Windows (NT) Explorer
- View read-only, hidden and system attributes
- Display the hex, decimal, octal and binary values of the current byte at the cursor
- Display the current byte in ASCII, Unicode (NT only), and EBCDIC
- Display values of 4 integral sizes: 8 bit, 16 bit, 32 bit and 64 bit
- Display integral types as (unsigned or signed) decimal
- Display in any of 3 signed formats (2's complement, 1's complement, Sign &
magnitude)
- Display floating point numbers in IEEE, IBM
or C# Decimal formats
- Mantissa & exponent also displayed for floating point types
- Display all numeric types with big- or little-endian byte order
- Date properties page: allows view/change in 15 date
formats
- Dates can be set to current date/time, first/last valid or
invalid values
- Dates can be changed using calendar/spin controls or just typed
in
Colour Options
- Set all colours and save in a "scheme"
- Four built-in schemes used by default for the four different character
set displays
- Unlimited number of custom schemes
- A custom scheme can be associated with a file type (based on file
extension)
- Easily select a built-in or custom scheme from the drop-down list
- Set colours for background, bookmarks, highlighter, hex and decimal
addresses etc
- Set colours for unlimited number of byte value groups
- Colour groups allow non-adjoining ranges (eg. ASCII text = "10,13,32-126")
- Colour groups allow you to easily see file structure and spot many
problems/irregularities
- Comprehensive colour selection: drop-list, hexagon, RGB, HSV etc
Advanced Display Options
- Window display options page allows adjustment of all options
- Save display options as the default or restore the default settings
- Most display options are adjustable on a per window basis
- Display options (including highlights, bookmarks etc) are restored when file
re-opened
- Three options for the display of ASCII control characters (including C/C++ escape chars)
- Options to display "ANSI/graphic" characters (byte values above the normal
ASCII range)
- Option to display IBM/MSDOS graphic characters
- The column of the first byte of the file can be shifted with an offset
- Press "Alt-Enter" to move the current column to be the leftmost column (adjusting
the offset)
- Choose any font (including typeface, style and size)
- Display options for "new" windows can be set including open maximised
- Addresses (on the left side of the window) can be in hex or decimal
- Addresses can be displayed with thousands separators (decimal) or digit grouping (hex)
- International number formats are supported
- There is an option to have a "shadow" cursor in the other (hex/char) area
- There is an option to display char area only (ie. no hex area)
Advanced Editing Options
- The "mark" assists in many editing operations by marking a position
- Conversions between EBCDIC and ASCII
- Conversion between ANSI and IBM/OEM characters sets
- Case conversion commands (including EBCDIC)
- Encryption commands use internal algorithm or Crypto API compliant
CSPs
- MD5 command for checking for tampered downloads
- Take checksum or CRC (several types) of
the current selection
- Add, subtract, negate, NOT, XOR, increment,
decrement etc on the current selection
- Full support for ZLIB compression/decompression
- Keep Same Times option restores file times to old values after saving
Clipboard
- Cut and paste works for binary data (unlike some programs that lose nul bytes)
- Bytes are copied in binary format (compatible with Visual Studio) and text (for NotePad
etc)
- In EBCDIC mode text is converted to ASCII before copying/cutting
- Paste As EBCDIC allows conversion to EBCDIC
- Paste As Unicode allows conversion to Unicode
- Paste As ASCII removes non-ASCII characters (and avoids conversion in EBCDIC mode)
- Copy As Hex Text converts each byte to 2 hex digits
- Copy As C source converts to text suitable for initialising a char array
Write selection to file (overwrite or append)
Find
- Boyer-Moore algorithm and other optimizations gives very fast searches
- The Find Tool allows quick and easy hex or text searches
The Find Tool is resizeable so you can see those long search strings
Abort searches with the Escape key
When the background searches option is on and a new srting is searched for all
occurrences are found using low-priority background threads
EBCDIC searches (case-sensitive and -insensitive) are performed when in EBCDIC mode
The search history lets you recall previous searches from a drop list (or using the
arrow keys)
Standard modeless search dialog with hex/ASCII/Unicode/EBCDIC switch
Find Dialog
- New find dialog is split into 5 pages: Simple, Hex, Text, Number &
Replace pages
- Options include direction, scope, whole word, case-sensitive
- 4 scopes: whole file, to end/start of file, to mark (to search part of
a large file), and all open files
- whole file scope switches to end/start of file scope after first find
to avoid finding the same thing
- Simple page allows hex or text search and basic options
- Hex page allows "?" wildcard to match any nybble and
"mask" to ignore individual bits
- Text page allows "?" wildcard to match any character, and
character set options
- Number page allows search for most formats of integer and floating
point numbers
- Replace page allows Find, Replace and Replace All
- There is an option to just bookmark all found occurrences
- Searches can be alignment restricted with alignment
stride, offset and "relative to mark" options
- Info entered on one page is reflected on other pages (eg text string
is converted to hex using current character set in hex page)
- Info entered is reflected in the Find Tool on toolbar
- Search (and replace) histories are saved between sessions and also
available from Find Tool
- Find dialog stays on screen (modeless) but gets out of the way of the cursor
Calculator
- Supports 4 bases: hexadecimal, decimal, octal, or binary
- Supports 4 number sizes: 64 bit, 32 bit, 16 bit and 8 bit
- Layout similar to Windows calculator but more sensible
- Values displayed for easy reading using spaces/commas (or region specific format)
- Many binary operations (eg. modulus, AND, exclusive-OR, rotations and shifts etc)
- Many unary operations (eg. NOT, flip bytes, reverse bits, shift 1 bit, increment etc)
- Memory operations: store, clear, M+, M-
- File access operations to change cursor position, mark etc
- Use the "GO" button to jump to the address displayed in the calculator
- Mark operations analgous to memory operations: store, clear, Mk+, Mk-
- Read/write values in file at cursor, mark, any address etc
- Read/write file in big- or little-endian format
- All calculator operations are recorded in keystroke macros
- Overflow and errors cause macro minor errors (useful for halt condition)
Jump Tools
- The hex and decimal jump tools allow you to easily jump to any address
- Numbers are automatically formatted as they are entered
- Each tool is updated as the other is changed - can be used as a quick hex/decimal
converter
- The addresses in these tools are updated as the cursor is moved
- During long searches and comparisons the addresses are updated to show progress
- Jump to a previous position with the Jump To Mark command
- The calculator can be used to quickly jump to an absolute or relative address
Keystroke macros
- HexEdit keystroke macros are usually fast and use little memory
- Turning off display refresh can increase macro performance up to 10 times
- Multiplay allows playing of a single macro up to 10,000 times repeatedly
- There are options to refresh the display so you can monitor a macro's progress
- Refresh the display based on time, number of keystrokes played, or number of replays
- Turn on tool/status bar refresh, for example to monitor the current cursor address
- Turn on refresh of the properties dialog to monitor properties at the cursor
- Three error handling levels: halt on warnings, minor errors, or major errors only
- Stopping on errors avoids mangled files, for example when end of file is
encountered
- Useful commands for macros include: swap cursor and mark, select to mark, increment byte
etc
- Mouse clicks and selections are also recorded (relative to top corner of window)
- Macros are not restricted to one file or window, eg. use F2 to move to the next window
- You can select a particular window, for example to build a file from parts of other
files
- If a window that was selected during recording no longer exists an error is generated
- Abort macros at any time by pressing Escape
- Save macros to file and load again at a later time
- Easily replay saved macros without disturbing current in-memory macro
- A message or instructions can be recorded and displayed at playback
- Macros can be nested without limit (ie a macro can execute a different
macro from file)
- Autoexec macro executed when HexEdit is run
- Macros can be auto-run when a file is opened based on file extension
Encryption and passwords are integrated with keystroke macros
A very powerful feature is macros close integration with the calculator
EBCDIC Support
- In EBCDIC mode the character area displays EBCDIC (or a red dot for invalid EBCDIC)
- The character properties page displays the current EBCDIC character including control
codes
- In EBCDIC mode the status bar also displays the current character in EBCDIC
- In EBCDIC mode "Find Tool" searches use EBCDIC text (case-sensitive and
-insensitive)
- The Find Dialog also allows EBCDIC searches
- The clipboard allows conversion to/from EBCDIC
- Specify a custom EBCDIC conversion/display table (in a file called
EBCDIC.TAB)
Unicode Support
- The character properties page displays the current Unicode character (NT only)
- The Find Dialog allows searches for Unicode text
- The clipboard commands allow conversion to/from Unicode
Help
- Extensive on-line help using HTML help
The help introduction explains all important binary file concepts from the very basics
The overview give an explanation of all the things HexEdit can do
The help reference section explains all commands, options etc in detail
All help pages are in "Browse Sequences" (Previous/Next buttons) for
easy skimming.
"Tips of the Day" explain things that are not obvious from just using the
program
Tool tips for all tool bar buttons and status bar panes are provided
The Help/Keymap command displays the current key mappings
All dialogs have a help button
All dialog controls support popup help
Email the author for help, to report bugs etc right from within HexEdit
Tool Bars and Status Bar
- 2 built-in toolbars provide quick access to common commands and the find and address
tools
New look "flat" toolbars with grippers
Toolbars can be customized. New toolbars can be added and
deleted.
Toolbar images can be changed. You can even draw your own button images.
The status bar provides error and progress messages and several "panes" of
info
One pane shows the current byte value in hex, decimal, octal, binary & ASCII/EBCDIC
The distance to mark panes show the distance from the cursor to the mark in hex and
decimal
Other panes indicate read-only/read-write mode, overtype/insert mode and macro recording
Double clicking most panes toggles their status
Standard panes indicate Caps- and Num-Lock
File Handling
- HexEdit does not include file handling facilities (eg,
renaming, deleting etc of files)
- File handling commands are available (indirectly) in the file ope/save
dialogs by right-clicking
- Customizable filter list for File/Open and File/Save dialogs
- HexEdit remembers the directories last used for open, read, write selection,
export etc
- Select multiple files in the File Open dialog using Ctrl+click and Shift+click
- Open multiple files on the command line, eg. "HexEdit *.BMP" will open
all .BMP files
- There is an option to create backup copies of modified files
- Drag and drop into HexEdit window
- Option to add "Open with HexEdit" to Shell shortcut menus
- Re-open up to 16 most recently used file from the File menu
- Re-open any file previously opened from the "Recently Used
Files" dialog
- Open, Open Read-only, Remove etc from the Recently used files dialog
- Sort files on date opened, name, size, date modified etc to help find
that file
- NEW Save All and Close All commands
- Commands are provided to insert a file, or write the current selection to a file
- Append Selection to File (avoids Windows 16 Mbyte clipboard restriction)
- Append Same File adds to the end of the last file written or appended
to
- Append File and Append Same File allow building of a file from
several large pieces
Miscellaneous
- Windows Manager to control windows (save, close, tile etc)
- User-defined tools, including command line options
- Option to only allow a single instance of HexEdit to run
- Multiple monitors under Windows 98/ME/2000/XP are supported
- Context menus (right mouse button) provide quick access to common options
- Several different context menus can be completely customized
- Compare windows (to compare 2 files or 2 parts of the same file)
- Support for international date and number formats (as set in the Control Panel)
Complete keyboard reconfigurability
HexEdit remembers window positions, display options etc
There are many other niceties that you will soon take for granted
Source Code
- Complete C++/MFC source code is available for versions 1.1 and 2.0
- Version 1.1 includes all files needed to build the program and help files
- Version 2.0 requires the commercial BCG library for MFC
- Visual C++ 6 project
- Includes several reuseable components (e.g. timer class, boyer class)
- STL compatible range_set efficiently stores sets of ints containing large chunks
|
|