|
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
|
|