Comparison of hex editors

Last updated

The following is a comparison of notable hex editors.

Contents

General

GUI Console Software license Latest stable versionLatest release dateWindowsMacintoshLinux
HxD YesNoProprietary freeware2.5.0.0February 11, 2021 Win95, WinNT4 and upNoNo
010 Editor YesNo Proprietary 15.0July 31, 2024YesYesYes
beye NoYes GPL-2.0-only or GPL-3.0-only 6.1.0December 12, 2009YesYesYes
bvi NoYes GPL-3.0-or-later 1.4.2 [1] March 7, 2023 DOS, Win95 and upYesYes
Cheat Engine YesNoProprietary freeware7.2August 14, 2021YesYes, ver. 6.2No
GNU Emacs YesYes GPL-3.0-or-later 29.1 [2] July 30, 2023YesYesYes
FlexHex YesNoProprietary freeware for personal use2.7October 12, 2018 Windows XP and upNoNo
Frhed (Free Hex Editor)YesNo GPL-2.0-or-later 1.7.1July 30, 2009 Win98 and upNoNo
Hexer NoYes BSD-3-Clause 1.06April 24, 2020YesYesYes
Hiew NoYes Proprietary 8.81March 24, 2024YesNoNo
ImHex YesNo GPL-2.0-only 1.26.2March 23, 2024 [3] YesYesYes
VEDIT YesYes Proprietary 6.24.2Jan 1, 2015YesNoNo
UltraEdit YesNo Proprietary 26.10 (Windows)
18.0 (Linux / Mac OS X)
May 7, 2019
January 2, 2018
YesYesYes
WinHex YesNo Proprietary 21.0December 13, 2023 Win95 and upNoNo
Vim YesYesVim9.1.0 [4] January 2, 2024YesYesYes
Binary Ninja YesYes Proprietary 3.5.4526 [5] September 15, 2023YesYesYes

Features

Maximum file sizePartial file loadingDisk sector editingProcess memory editingData inspector Bit editing Insert/delete bytes Character encodings (ao)Search Unicode File formats Disassembler File compareFind in filesBookmarksMacro Text editor
HxD 8 EiB [6] YesWindows 9x/NT and upYesYesYesYesANSI, ASCII, OEM, EBCDIC, MacintoshYesNoIndividual instructions onlyYesNoYesNoNo
010 Editor 8 EiB YesYesWinNT onlyYesYesYesANSI, OEM, Unicode, UTF-8, EBCDIC, CustomYes279 [7] YesYesYesYesYesYes
beye 8  PiB YesNoYesYesANSI, EBCDIC, ASCII, MacintoshYes29 [8] AVR, Java, x86, i386, x86-64, ARM/XScale, PowerPC, PPC64 YesNo
bvi Limited by RAMYesYesYesANSI, ASCII NoNoYes and replaceYes
Emacs 2.3 EB [9] [10] [11] [12] Yes check.svgUn­knownNoNoNoNoYesYes [13] Un­knownNoNoUn­knownUn­knownYes [14] Yes
FlexHex Unlimited[ citation needed ]YesYesYesYesYesANSI, OEM, UTF-16Yes2 [15] [16] NoYesNoYesNo
Frhed Limited by RAMYesNo(read only)YesYesANSI, OEMYesNoNoYesNoYesNo
Hiew Unlimited[ citation needed ]YesWinNT onlyYesYesYes ASCII, OEM, Unicode, customYesNo x86, x86-64, MMX, SSE 4.2, 3DNow! - all assembler, ARM YesYesYes
VEDIT Standard, 2 GiB, Pro 64, unlimited[ citation needed ]YesDOS version onlyNoYesYesANSI, OEM, EBCDIC, ASCII, customNoNoNoYesYesYesYesYes
UltraEdit >4 GiBYesNoNoNoNoYesANSI, OEM, EBCDIC, ASCII, Mac, Unix, UTF-8YesNoNoYesYesYes
WinHex Unlimited[ citation needed ]YesYesYesYesYesPartial support of these formats: ANSI, UNICODE, OEM, UTF-8/UTF-16, EBCDIC, ASCII Yes44 [17] [18] Only x86 Intel opcodesYesYes and replaceYes [19] No
vim Limited by RAMNoNoNoNoYes [20] YesASCII, ISO-8859, DOS (OEM), UTF-8, UTF-16, partial EBCDIC (compilation required), unicodeYesNoNoYes [21] NoPlug-in [22] YesYes
ImHex 16 EiB YesYesYesYesYesYesANSI, OEM, Unicode, UTF-8, EBCDIC, Shift-JIS, CustomYes65 [23] YesYesYesYesYesNo
Binary Ninja Limited by RAMYesNoYesNoYesYesYesNoYesNoYesOfficial pluginOfficial pluginsNo
Maximum file sizePartial file loadingDisk sector editingProcess memory editingData inspector Bit editing Insert/delete bytes Character encodings (ao)Search Unicode File formats Disassembler File compareFind in filesBookmarksMacro Text editor

See also

Notes

ao: ANSI is the Windows character set, OEM is the DOS character set. Both are based on ASCII.

Related Research Articles

The editor war is the rivalry between users of the Emacs and vi text editors. The rivalry has become an enduring part of hacker culture and the free software community.

<span class="mw-page-title-main">Emacs Lisp</span> Dialect of Lisp in the Emacs text editor

Emacs Lisp is a Lisp dialect made for Emacs. It is used for implementing most of the editing functionality built into Emacs, the remainder being written in C, as is the Lisp interpreter.

<span class="mw-page-title-main">GNU Debugger</span> Source-level debugger

The GNU Debugger (GDB) is a portable debugger that runs on many Unix-like systems and works for many programming languages, including Ada, Assembly, C, C++, D, Fortran, Haskell, Go, Objective-C, OpenCL C, Modula-2, Pascal, Rust, and partially others.

In computing, the utility diff is a data comparison tool that computes and displays the differences between the contents of files. Unlike edit distance notions used for other purposes, diff is line-oriented rather than character-oriented, but it is like Levenshtein distance in that it tries to determine the smallest set of deletions and insertions to create one file from the other. The utility displays the changes in one of several standard formats, such that both humans or computers can parse the changes, and use them for patching.

In computing, tar is a computer software utility for collecting many files into one archive file, often referred to as a tarball, for distribution or backup purposes. The name is derived from "tape archive", as it was originally developed to write data to sequential I/O devices with no file system of their own, such as devices that use magnetic tape. The archive data sets created by tar contain various file system parameters, such as name, timestamps, ownership, file-access permissions, and directory organization. POSIX abandoned tar in favor of pax, yet tar sees continued widespread use.

In computer programming, Base64 is a group of binary-to-text encoding schemes that transforms binary data into a sequence of printable characters, limited to a set of 64 unique characters. More specifically, the source binary data is taken 6 bits at a time, then this group of 6 bits is mapped to one of 64 unique characters.

Ctags is a programming tool that generates an index file of names found in source and header files of various programming languages to aid code comprehension. Depending on the language, functions, variables, class members, macros and so on may be indexed. These tags allow definitions to be quickly and easily located by a text editor, a code search engine, or other utility. Alternatively, there is also an output mode that generates a cross reference file, listing information about various names found in a set of language files in human-readable form.

vile is a text editor that combines aspects of the Emacs and vi editors. These editors are traditionally located on opposing sides of the editor wars, as users of either tend to have strong sentiments against the editor they do not use. vile attempts to reconcile these positions.

<span class="mw-page-title-main">Source-code editor</span> Text editor specializing in software code

A source-code editor is a text editor program designed specifically for editing source code of computer programs. It may be a standalone application or it may be built into an integrated development environment (IDE).

A hex editor is a computer program that allows for manipulation of the fundamental binary data that constitutes a computer file. The name 'hex' comes from 'hexadecimal', a standard numerical format for representing binary data. A typical computer file occupies multiple areas on the storage medium, whose contents are combined to form the file. Hex editors that are designed to parse and edit sector data from the physical segments of floppy or hard disks are sometimes called sector editors or disk editors.

This article provides basic comparisons for notable text editors. More feature details for text editors are available from the Category of text editor features and from the individual products' articles. This article may not be up-to-date or necessarily all-inclusive.

<span class="mw-page-title-main">Brief (text editor)</span> 1980s programmers text editor

Brief, is a once-popular programmer's text editor in the 1980s and early 1990s. It was originally released for MS-DOS, then IBM OS/2 and Microsoft Windows. The Brief interface and functionality live on, including via the SourceForgeGRIEF editor.

<span class="mw-page-title-main">GNU Emacs</span> GNU version of the Emacs text editor

GNU Emacs is a free software text editor. It was created by GNU Project founder Richard Stallman, based on the Emacs editor developed for Unix operating systems. GNU Emacs has been a central component of the GNU project and a flagship project of the free software movement. Its tag line is "the extensible self-documenting text editor."

Emacs, originally named EMACS, is a family of text editors that are characterized by their extensibility. The manual for the most widely used variant, GNU Emacs, describes it as "the extensible, customizable, self-documenting, real-time display editor". Development of the first Emacs began in the mid-1970s, and work on GNU Emacs, directly descended from the original, is ongoing; its latest version is 29.4, released June 2024.

The write is one of the most basic routines provided by a Unix-like operating system kernel. It writes data from a buffer declared by the user to a given device, such as a file. This is the primary way to output data from a program by directly using a system call. The destination is identified by a numeric code. The data to be written, for instance a piece of text, is defined by a pointer and a size, given in number of bytes.

comp (command)

In computing, comp is a command used on DEC OS/8, DOS, DR FlexOS, IBM OS/2, Microsoft Windows and related computer operating systems such as ReactOS. It is used to perform comparisons of multiple computer files to show the differences between them.

<span class="mw-page-title-main">Spacemacs</span> Free software

Spacemacs is a configuration framework for GNU Emacs. It can take advantage of all of GNU Emacs' features, including both graphical and command-line user interfaces, and being executable under X Window System and within a Unix shell terminal. It is free and open-source software (FOSS) released under the GPL-3.0-or-later license.

010 Editor is a commercial hex editor and text editor for Microsoft Windows, Linux and macOS. Typically 010 Editor is used to edit text files, binary files, hard drives, processes, tagged data, source code, shell scripts, log files, etc. A large variety of binary data formats can be edited through the use of Binary Templates.

References

  1. https://bvi.sourceforge.net/download.html [ bare URL ]
  2. "GNU Emacs". GNU.org . Retrieved 2023-08-09.
  3. https://github.com/WerWolv/ImHex/releases [ bare URL ]
  4. https://www.vim.org/vim-9.1-released.php [ bare URL ]
  5. Wiens, Jordan (2023-09-15). "Binary Ninja - 3.5: Expanded Universe". Binary Ninja. Retrieved 2024-02-18.
  6. HxD features
  7. "010 Editor - Binary Template Repository". SweetScape Software Inc. Retrieved 2022-10-05.
  8. "beye / Code / [r238] /newtwindow-branch/src/plugins/bin/". SourceForge . Retrieved 2022-10-05.
  9. "GNU Emacs 23.2 NEWS -- history of user-visible changes".
  10. "Buffers". A buffer's size cannot be larger than some maximum, which is defined by the largest buffer position representable by Emacs integers. This is because Emacs tracks buffer positions using that data type. For typical 64-bit machines, this maximum buffer size is 2^{61} - 2 bytes, or about 2 EiB. For typical 32-bit machines, the maximum is usually 2^{29} - 2 bytes, or about 512 MiB. Buffer sizes are also limited by the amount of memory in the system.
  11. "Does Emacs have problems with large files?".
  12. "GNU emacs manual - Narrowing".
  13. "Special Input for Incremental Search". gnu.org.
  14. "Bookmarks". gnu.org.
  15. "User-defined Data Fields". Inv Softworks LLC. Retrieved 2022-10-05.
  16. The file "FlexHEX\Structures\Disk.fsd" of FlexHex 2.71 installation contains example parsers for FAT and NFTS file system headers
  17. "Additional Templates for WinHex & X-Ways Forensics". X-Ways Software Technology AG. Retrieved 2022-10-05. lists ~30 formats.
  18. WinHex 20.6 release package "winhex.zip" contains 14 template files with ".tpl" suffix with parsers for various storage system formats.
  19. WinHex: Scripting
  20. help eval
  21. vimdiff
  22. vim-bookmarks
  23. "ImHex-Patterns". GitHub . Retrieved 2023-01-29.