In this article, we are going to review some of the best hex editors for Linux. But before we start, let’s look at what a hex editor really is.
What is Hex editor
In simple words, a hex editor allows you to examine and edit binary files. The difference between a regular text editor and the hex editor is that the regular editor represents the logical content of file, while a hex editor represents the physical contents of file.
Who use Hex editor
Hex editors are used for editing individual bytes of data and are mostly used by programmers or system administrators. Some of the most common used cases are debugging or reverse engineering binary communication protocols. Of course there are many other things you can use hex editors – for example reviewing files with unknown file format, performs hex comparison, reviewing program memory dump and others.
Most of these mentioned hex editors are available to install from the default repository using your distribution’s package manager, like so:
# yum install package [On CentOS] # dnf install package [On Fedora] # apt install package [On Debian/Ubuntu] # zypper install package [On OpenSuse] # pacman -Ss package [on Arch Linux]
If no package available, head over to the website of each tool where you will get the standalone package for download and installation procedures, along with details on dependencies.
1. Xxd Hex Editor
Most (if not every) Linux distributions come with an editor that allows you to perform hexademical and binary manipulation. One of those tools is the command line tool – xxd, is most commonly used to make a hex dump of a given file or standard input. It can also convert a hex dump back to its original binary form.
2. Hexedit Hex Editor
Hexedit is another hexademical command line editor that might already be preinstalled on your OS. Hexedit shows both the hexademical and ASCII view of the file at the same time.
3. Hexyl Hex Editor
Another useful tool for examining binary file is hexyl, is a simple hex viewer for Linux terminal that uses a colored output to determine different categories of bytes.
The view of hexyl is split in three columns:
- Offset column to tell you how many bytes into the file you are.
- Hex column, which contains the hexademical view of the file. (Note that there is a splitting line in between)
- Textual representation of a file.
The installation of this hex viewer is different for different operating systems, so it is recommended to check the read-me file in the project to see the exact installation instructions for your OS.
4. Ghex – GNOME Hex Editor
Ghex is a graphical hex editor that lets users edit binary file in both hex and ASCII format. It has multilevel undo and redo mechanism that some may find useful. Another useful feature is the find and replace functions and the conversion between binary, octal, decimal and hexademical values.
5. Bless Hex Editor
One of the more advanced hex editors in this article is Bless, is similar to Ghex, it has graphical interface that allows you to edit large data files with multilevel undo/redo mechanism. It also has customizable data views, find-replace feature and multi-threaded search and save operations. Multiple files can be opened at once using tabs. Functionality can also be extended through plugins.
6. Okteta Editor
Okteta is another simple editor for reviewing raw data files. Some of the main features of okteta include:
- Different views of characters – traditional in columns or in rows with value of top of character.
- Editing similar to a text editor.
- Different profiles for data views.
- Multiple open files.
- Remote files by FTP or HTTP.
wxHexEditor is another one of the Linux hex editors that has some advanced features and while there is no official documentation for the editor, there is a well written wiki page that provides explanation as to how to use the too. The wiki page can be found here.
whHexEditor is aimed mainly at large files. It works faster with larger files, because it does not attempt to copy the entire file into your RAM. It has low memory consumption and can view multiple files at once. Actually since it has so many features and benefits, you may want to review them all in the wiki page or the official wxHexEditor website.
8. Hexcurse – Console Hex Editor
Hexcurse is an ncurses-based hex editor. It is able to open, edit, and save files, within a friendly terminal interface that allows you to go to specific line or perform a search. You can easily toggle between hex/decimal addresses or switch between hex and ASCI windows.
9. Hexer Binary Editor
Hexer is another command line binary editor. The difference in this one is that it is Vi like style editor for binary files. Some of the most notable features are – multi buffers, multilevel undo, command line editing with completion and binary regular expression.
That was a quick review of some of the most commonly used hex editors in Linux. Let us hear your opinion. What hex editors do you use and why do you prefer that editor in particular? What makes it better over the others?