HxD is a highly popular freeware hex editor for Windows, known for its ability to handle massive files and provide direct-to-disk editing of files, RAM, and physical disks. While HxD is powerful out of the box, it supports a plugin framework specifically designed to extend its Data Inspector. HxD Plugin Framework Overview
The HxD plugin framework allows developers to create custom Data Inspector extensions. These extensions act as new "types" that the inspector can interpret and display in real-time as you navigate through a file.
Primary Function: The framework is used to write Data Type Converters. These convert raw byte sequences into human-readable strings and vice-versa.
Supported Languages: The framework is natively written in Delphi, but it includes headers for C and C++. It can also be utilized by any language capable of creating standard DLLs and exporting C-like functions (such as PureBasic). Capabilities:
Supports fixed-width (e.g., 32-bit integers) and variable-width encodings (e.g., UTF-8, x86 assembly).
Allows for custom endianness handling, making it possible to define mixed-endian data types.
Enables custom navigation for "array" elements within the inspector. Key Plugin Examples hxd plugins
Because HxD’s plugin ecosystem is specialized for the Data Inspector, most available plugins focus on complex data conversion or disassembly:
HxD Disassembly Plugin: A notable third-party plugin that adds a disassembly view directly to the Data Inspector. It supports various CPU architectures (like Motorola 6800/6809) by loading external definition files.
stong/hxd-plugin: A collection of handy conversion tools, including Base64 decoding/encoding, specifically for the HxD inspector. How to Install HxD Plugins
Since HxD does not have a "one-click" plugin manager, installation is typically manual:
Locate your HxD installation directory (usually in C:\Program Files\HxD). Create a folder named Plugins if it doesn't already exist.
Place the plugin's .dll file (ensuring it matches your HxD architecture, Win32 or Win64) and any required configuration files (like .ini or .csv) into this sub-directory. HxD is a highly popular freeware hex editor
Restart HxD; the new data types should appear in the Data Inspector sidebar. Future Expansion
The developer of HxD, Maël Hörz, has indicated that a more robust plugin system for custom editors and viewers (such as a full structure viewer or partition table editor) is a long-term goal for the software. Currently, the plugin system remains focused on the Data Inspector interface. AI responses may include mistakes. Learn more Plugin framework for HxD's data inspector - GitHub
This plugin framework allows to create extensions for HxD's data inspector, as plugin DLLs, which can be written in Delphi, C, C++ Disassembly Plugin for HxD's Data inspector - GitHub
Extract embedded files, detect signatures, and recover data from unallocated space or raw dumps.
Though HxD’s plugin API is relatively simple, the community and third-party developers have created several distinct categories:
First, let's set expectations. HXD is a native Windows application written in Delphi or Lazarus. It prioritizes speed and low memory usage. Adding a robust plugin system would introduce complexity, security risks (malicious DLLs), and slow down startup times. Getting Started with HxD Plugins d) Data Carving
So, when users request "HXD plugins," they generally want one of three things:
While native plugins do not exist in the traditional sense, the community has developed several clever workarounds.
HxD comes pre-loaded with a vast array of checksum algorithms (CRC32, MD5, SHA-1, SHA-256, etc.).
Send the current file or selected block to an external disassembler (like IDA Free), a hex comparator, or a custom Python script for further processing.
The closest thing HxD has to a plugin system is its ability to parse binary data using Structure Definitions. Instead of manually counting bytes to find an offset, you can "teach" HxD the layout of a file format.
Health, Mana, FileVersion) instead of just raw hex offsets..pas or .hxd definition files for common formats like ZIP headers, EXE headers (PE Format), and save game files.