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 14.0.1March 7, 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.0October 12, 2019 DOS, Win95 and upYesYes
Cheat Engine YesNoProprietary freeware7.2August 14, 2021YesYes, ver. 6.2No
GNU Emacs YesYes GPL-3.0-or-later 29.1 [1] 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 [2] 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 YesYesVim8.2.0000December 12, 2019YesYesYes
Binary Ninja YesYes Proprietary 3.5.4526 [3] 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 [4] YesWindows 9x/NT and upYesYesYesYesANSI, ASCII, OEM, EBCDIC, MacintoshYesNoIndividual instructions onlyYesNoYesNoNo
010 Editor 8 EiB YesYesWinNT onlyYesYesYesANSI, OEM, Unicode, UTF-8, EBCDIC, CustomYes279 [5] YesYesYesYesYesYes
beye 8  PiB YesNoYesYesANSI, EBCDIC, ASCII, MacintoshYes29 [6] AVR, Java, x86, i386, x86-64, ARM/XScale, PowerPC, PPC64 YesNo
bvi Limited by RAMYesYesYesANSI, ASCII NoNoYes and replaceYes
Emacs 2.3 EB [7] [8] [9] [10] Yes check.svgUn­knownNoNoNoNoYesYes [11] Un­knownNoNoUn­knownUn­knownYes [12] Yes
FlexHex Unlimited[ citation needed ]YesYesYesYesYesANSI, OEM, UTF-16Yes2 [13] [14] 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 [15] [16] Only x86 Intel opcodesYesYes and replaceYes [17] No
vim Limited by RAMNoNoNoNoYes [18] YesASCII, ISO-8859, DOS (OEM), UTF-8, UTF-16, partial EBCDIC (compilation required), unicodeYesNoNoYes [19] NoPlug-in [20] YesYes
ImHex 16 EiB YesYesYesYesYesYesANSI, OEM, Unicode, UTF-8, EBCDIC, Shift-JIS, CustomYes65 [21] 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 used as the primary implementation and extension language for Emacs

Emacs Lisp is a dialect of the Lisp programming language used as a scripting language by 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. Emacs Lisp is also termed Elisp, although there are also older, unrelated Lisp dialects with that name.

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.

RAR is a proprietary archive file format that supports data compression, error correction and file spanning. It was developed in 1993 by Russian software engineer Eugene Roshal and the software is licensed by win.rar GmbH. The name RAR stands for Roshal Archive.

In computer programming, a magic number is any of the following:

Flex is a free and open-source software alternative to lex. It is a computer program that generates lexical analyzers . It is frequently used as the lex implementation together with Berkeley Yacc parser generator on BSD-derived operating systems, or together with GNU bison in *BSD ports and in Linux distributions. Unlike Bison, flex is not part of the GNU Project and is not released under the GNU General Public License, although a manual for Flex was produced and published by the Free Software Foundation.

<span class="mw-page-title-main">UltraEdit</span>

UltraEdit is a text editor for Microsoft Windows, Linux, and MacOS. It was initially developed in 1994 by Ian D. Mead, the founder of IDM Computer Solutions Inc., and was acquired by Idera Inc. in the August of 2021. Originally called MEDIT, it was first designed to run on Windows 3.1. A version called UltraEdit-32 was later created to run on Windows NT and Windows 95. The last 16-bit UltraEdit program version was 6.20b. UltraEdit-32 was later renamed to UltraEdit in version 14.00. Version 22.2 was the first native 64-bit version of the text editor. Starting with 2022.0, versioning had become year-based.

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.

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.

Intel hexadecimal object file format, Intel hex format or Intellec Hex is a file format that conveys binary information in ASCII text form, making it possible to store on non-binary media such as paper tape, punch cards, etc., to display on text terminals or be printed on line-oriented printers. The format is commonly used for programming microcontrollers, EPROMs, and other types of programmable logic devices and hardware emulators. In a typical application, a compiler or assembler converts a program's source code to machine code and outputs it into a object or executable file in hexadecimal format. In some applications, the Intel hex format is also used as a container format holding packets of stream data. Common file extensions used for the resulting files are .HEX or .H86. The HEX file is then read by a programmer to write the machine code into a PROM or is transferred to the target system for loading and execution. There are various tools to convert files between hexadecimal and binary format, and vice versa.

<span class="mw-page-title-main">MicroEMACS</span> MicroEMACS is a small text editor program from the EMACS family

MicroEMACS is a small, portable Emacs-like text editor originally written by Dave Conroy in 1985, and further developed by Daniel M. Lawrence (1958–2010) and was maintained by him. MicroEMACS has been ported to many operating systems, including CP/M, MS-DOS, Microsoft Windows, VMS, Atari ST, AmigaOS, OS-9, NeXTSTEP, and various Unix-like operating systems.

<span class="mw-page-title-main">SlickEdit</span>

SlickEdit, previously known as Visual SlickEdit, is a cross-platform commercial source code editor, text editor, and Integrated Development Environment developed by SlickEdit, Inc. SlickEdit has integrated debuggers for GNU C/C++, Java, WinDbg, Clang C/C++ LLDB, Groovy, Google Go, Python, Perl, Ruby, Scala, PHP, Xcode, and Android JVM/NDK. SlickEdit includes features such as built-in "beautifiers" that can enhance code as you type, code navigation, context tagging, symbol references, third-party tool integration, DIFFZilla, syntax highlighting, and 15 emulations.

<span class="mw-page-title-main">SREC (file format)</span> File format developed by Motorola

Motorola S-record is a file format, created by Motorola in the mid-1970s, that conveys binary information as hex values in ASCII text form. This file format may also be known as SRECORD, SREC, S19, S28, S37. It is commonly used for programming flash memory in microcontrollers, EPROMs, EEPROMs, and other types of programmable logic devices. In a typical application, a compiler or assembler converts a program's source code to machine code and outputs it into a HEX file. The HEX file is then imported by a programmer to "burn" the machine code into non-volatile memory, or is transferred to the target system for loading and execution.

<span class="mw-page-title-main">MIT/GNU Scheme</span>

MIT/GNU Scheme is a programming language, a dialect and implementation of the language Scheme, which is a dialect of Lisp. It can produce native binary files for the x86 processor architecture. It supports the R7RS-small standard. It is free and open-source software released under v2 or later of the GNU General Public License (GPL). It was first released by Guy Lewis Steele Jr. and Gerald Jay Sussman at the Massachusetts Institute of Technology in 1986, as free software even before the Free Software Foundation, GNU, and the GPL existed. It is now part of the GNU Project.

<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.2, released January 2024.

Ledger is a command-line based double-entry bookkeeping application. Accounting data is stored in a plain text file, using a simple format, which the users prepare themselves using other tools. Ledger does not write or modify data, it only parses the input data and produces reports.

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. "GNU Emacs". GNU.org . Retrieved 2023-08-09.
  2. https://github.com/WerWolv/ImHex/releases
  3. Wiens, Jordan (2023-09-15). "Binary Ninja - 3.5: Expanded Universe". Binary Ninja. Retrieved 2024-02-18.
  4. HxD features
  5. "010 Editor - Binary Template Repository". SweetScape Software Inc. Retrieved 2022-10-05.
  6. "beye / Code / [r238] /newtwindow-branch/src/plugins/bin/". SourceForge . Retrieved 2022-10-05.
  7. "GNU Emacs 23.2 NEWS -- history of user-visible changes".
  8. "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.
  9. "Does Emacs have problems with large files?".
  10. "GNU emacs manual - Narrowing".
  11. "Special Input for Incremental Search". gnu.org.
  12. "Bookmarks". gnu.org.
  13. "User-defined Data Fields". Inv Softworks LLC. Retrieved 2022-10-05.
  14. The file "FlexHEX\Structures\Disk.fsd" of FlexHex 2.71 installation contains example parsers for FAT and NFTS file system headers
  15. "Additional Templates for WinHex & X-Ways Forensics". X-Ways Software Technology AG. Retrieved 2022-10-05. lists ~30 formats.
  16. WinHex 20.6 release package "winhex.zip" contains 14 template files with ".tpl" suffix with parsers for various storage system formats.
  17. WinHex: Scripting
  18. help eval
  19. vimdiff
  20. vim-bookmarks
  21. "ImHex-Patterns". GitHub . Retrieved 2023-01-29.