ICY Hexplorer Help

v.1.84b (C)2002

















1. What is this program for

ICY Hexplorer is a program used to edit files. Contrary to text editors, or graphic editors, Hexplorer doesn't format file content, but it displays it as it is, allowing you to edit it hexadecimally or like text editor does, so it gives you low level access to each kind of file, providing many tools. Hexplorer performes all operations in computers RAM, so they are fast, but if you want to edit large files, you need a huge amount of RAM. On some operating systems (for instance Windows NT) memory is allocated on hard disk if there isn't enough RAM, in that case you can edit very large files, but performance is lower. This program was created as an answer to my needs, I hope you'll find it useful too. I would be very pleased if you wrote to me and send suggestions and bug reports, I could improve and debug this program better then.

2. How to use it

File opened with Hexplorer is seen in two panels. On left hand in hexadecimal form, and on the right hand as text interpretation of bytes. Their color corresponds with values of bytes, however this can be disabled if you don't like it (Select Options dialog from View menu). Clicking on hexadecimal or text panel places cursor in desired position and panel. Dragging mouse or clicking with [Shift] pressed makes a selection of bytes. You enter data in hexadecimal panel by entering digits 0 to 9 and letters A to F, and in text panel by entering all alfanumerical signs. Some special signs can be also entered in text mode if they are not reserved for program commands, for example [Ctrl+X] is 18h byte, but [Ctrl+Z] is reserved for Undo command. Pressing [Insert] button switches data enterance mode from insert to overwrite. Unlike to other programs this mode affects also Paste function. It inserts or writes over data depending on current mode. Some standard viewing keys are available. These are [PgUp], [PgDn], [Home] - jumps to begining of file, [End] - jumps to end of file. Pressing [Tab] switches panel. Right mouse button pops up context menu with some instant functions available. In the status bar you can see whether editor is in insert or overwrite mode, current position in a file, size of selection, value of byte, word, double word, quad (depending on selection), size of file and whether the file has been saved or not.

3. Program functions

Every program option is accessible from menu and some of them are replicated on tool bar and in the context menus. Some commands are also accessible with keyboard shortcuts. Take a look at the program's main menu to find out these shortcuts. Note that some toolbar buttons also react to right mouse button click, what pops up context menu with functions somewhat related to the buttons main function. For example right clicking on Open button pops up menu with recently edited files. Here is a description of program functions which differ to other applications. I'll skip some obvious functions like Open or Save.

  • File:
    • New - Creates new, empty file. If you want to fill it at startup (with zeros for example), use Paste Chain from Edit menu.
    • Open...
    • Reopen - Reload actually edited file. All changes are immediatelly discarded.
    • Save
    • Save As...
    • Execute - Creates temporary image of the file in Hexplorer directory and executes it. If it's image, sound, www page, then default application associated with this file will open the file, an executalbe file (EXE) will be executed.
    • Recent - clicking one of these recently edited files opens it.
    • Print... - In a standard print dialog you can choose to print entire file or selected bytes only.
    • Date, Time and Attributes - Opens dialog window, where you can change attributes, dates and times of currently edited file. Changes on disk are made right after pressing OK button.
    • Insert File... - Pastes other file into cursor.
    • Exit

  • Edit:
    • Undo
    • Cut
    • Copy
    • Copy As - formates and copies selection of bytes to text clipboard. Data can be formated to a C/C++ source, hexadecimal numbers, assembler source or text filtered from selection. The selection can also be copied to a new file.
    • Paste/Writeover - this function is affected by insert/overwrite mode.
    • Paste MRU - Pops up context menu with most recently used hex strings, so you can choose one of them to paste it.
    • Paste external text
      • As Is - Sometimes you may want to copy text from other editor to Hexplorer. Use this function then.
      • Interpret As Hex Numbers - Interpretes text in the text clipboard as hexadecimal numbers and pastes interpreted this way bytes. Sample usage of this function is when you have C or assembler source with bytes typed as text like "0x345a, (...)" or "db 71h, a2h, (...)" and you want to paste them into currently edited file as normal bytes, not as text. Note that these sample languages have big-endian numbers parser, so 0x345a is 5a34 word in computers memory. This cause problems if you convert not single bytes, but words or double words. Use Swap Bytes functions to fix this.
    • Delete
    • Select All
    • Paste Chain... - Pastes byte string many times. In dialog, which opens after you select this command you can enter bytes in text form or as hexadecimal string. Similar way of entering data appears in Find, Replace, Highlight String and many other dialogs in this program. When you choose number of reapeats and press OK, string will be pasted starting from cursor position. For example, entering text string "kitty." what corresponds to byte string "6B697474792E" and choosing to repeat it 3 times, will paste into cursor string "kitty.kitty.kitty".
    • Operation
      • Reset Selection - Fills selection with zeros.
      • Fill Selection... - Eradicates selection by filling it with byte string. It is somewhat similar to Paste Chain command, but it overwrites selected bytes by new string, instead of inserting new bytes.
      • Pseudo Random Numbers - Fills selection with pseudo random bytes. Uses fast Lagged Fibonacci RNG algorithm.
      • XOR Selection... - This is very like Fill Selection but it performs XOR (exclusive or)operation on selection and source pattern.
      • OR Selection... - This performs OR operation. There is many applications for this function. For example to set the least significant bit of bytes in selection OR it with byte 1.
      • AND Selection... - This performs AND operation. AND is often used to put bit masks. Example: to reset every other byte in selection AND it with word FF00h.
      • Increment Byte(s) - Increments selected bytes by 1.
      • Decrement Byte(s) - Decrements selected bytes by 1.
      • Negate Selection - reverses bits in selection.
      • Swap Bytes (16 bits)
      • Swap Bytes (32 bits) - Both Swap Bytes functions are usually used to convert integer numbers from big-endian to little-endian and vice versa.
    • Find... - Standard find dialog, except for Find All function whitch places all results in Navigator tool window, where you can quickly find out their positions, number and jump through them. Uses fast Boyer Moore algorithm.
    • Replace... - Another standard dialog. The only difference to other applications is that, as in almost every dialog in Hexplorer, you can enter data as text or as hexadecimal number.
    • Find Next
    • Find Previous

  • View:
    • Go To Address... - Jumps to hexadecimally or decimally entered position. Additionally you can save choosen position to quickly access it with Go To Position #n commands and you can add a comment which appears by the address. Jump may be relative to cursor, begining or end of file.
    • Go To - Position #n - Jumps to selected position. Use Remember As function or Go To Address dialog to set these bookmarks.
    • Remember As - Position #n - Saves actual cursor position in selected bookmark.
    • Highlight String - Lets you choose up to three (named: alpha, beta and gamma) hex strings that will be highlighted while editing. To disable highlight, select string from combo box, type nothing and press OK.
    • Simple Data Types - In a tool window displays numerical interpretation of bytes as simple data types such as integer or float. Double clicking on selected type allows to change its value.
    • Pixel View - Displays grafical interpretations of bytes in a tool window. It can be useful for finding data patterns or images in a file. First button lets you set the bits per pixel value. You can also set the column width to adjust view - enter new value and press Set button.
    • Navigator - Opens tool window displaying all remembered positions in a file. It displays its global address, address relative to cursor and comment. Double clicking on a position causes jump to it. Upper button changes base of values of addresses. Lower button resets selected position.
    • Windows Calculator - runs MS Windows(R) Calculator, you can make simple calculations and base convertions with it.
    • Options - In options dialog you can adjust fonts and colors (five color schemes available) the program uses, set the number of columns, set number by which columns are grouped together or enable automatic column number option, which adjust column number to current window size, and a number of minor options.

  • Structures:
    • (List of structures) - Clicking one of them opens new Structure Viewer window displaying that structure. Structure is a conglomerate of simple data types in memory or in file. (well, that is structure in this program, in programming languages structures may also contain other structures.) If you know structure, meaning of its members and it's position in a file you can quickly access it with this tool. Structures are stored in file structures.dat in program directory. In the left upper corner of the tool window from a combo box you can choose other structure from the list of available structures. On the right of the combo size of a structure is displayed. In the right upper corner there are 5 buttons:
      • 1-st deletes current structure.
      • 2-nd adds new member to the structure. In a dialog you can choose its name, type and count. If count is other than 1, it will be an array of the choosen type. The member is inserted at the selected position, if no member is selected, new member is inserted at the end of members list.
      • 3-rd removes selected structure member.
      • 4-th clones(duplicates) selected member.
      • 5-th changes the base of displayed values.
      Below there is a list of structure members. Clicking a member highlights its position in a file, double clicking it, allows to change its value.
    • Add New... - Creates new structure.

  • Crypto
    • Encryption - Encrypts or decrypts selected data with password. Programs pseudo random number generator is seeded with passwords crc and its output is xored to data. Encryption is very fast.
    • Find Pattern - Find repeating data patterns in selected fragment of file. In a tool dialog you can set minimal and maximal length of analised strings, difference between these numbers is significant to calculation time, except for analised data size of course. Listbox below displays ten results with least entropy. Entropy is in bytes, and it is difference between strings whith analised lengths. Example: entropy is zero for 3 bytes strings in "tektektektektektektek", it is two for 5 bytes strings in "aaaa.aaab.aaac.".
    • File Type - Tries to recognize file type by its header.
    • Checksum - Counts checksum of selected bytes, to count whole file checksum - you can select it all with upper button. Checksums are generated by xoring following bytes to a 8, 16, 32 or 64 bit number. Two CRC16 checksums and CRC32 are also generated. Tool window allows to view checksum numbers in different bases, this can be adjusted by lower button. Double clicking on selected sum copies its value to clipboard.
    • Byte occurence - counts occurences of bytes in selection. Double clicking on selected byte highlights it in whole file.

  • Macros:
    • (...) - List of hem files containing macros in Hexplorer directory. Choosing one of them runs a macro. Macro is a series of key presses saved in a file. Warning: macro may work different with different column number set. This is because when you press for example down button, it increases position in a file by column number. If you want to make macro more flexible avoid using up/down and pgup/pdgn keys while recording.
    • Record - After choosing a file, begins recording of keys pressed. Mouse events are not saved.
    • Stop - Stops macro recording.

  • Help:
    • Help
    • Go To Homepage
    • Download newest version - this tries to download the newest version of Hexplorer, however this might be a problem when the server is down, and this will happen some day...
    • About...

4. Copyright

This program is freeware. It can be used, copied and distributed free of charge. It cannot be sold for profit. There is no warranty for the program. Use it at your own risk. The only person responsible for any damage this tool may cause is its user. The newest version and other programs on my homepage.