Extending ImHex
Last updated
Was this helpful?
Last updated
Was this helpful?
ImHex is highly customizable and extensible. This can be done in multiple ways.
Plugins are native code shared libraries that are loaded directly by ImHex at startup. Thanks to ImHex's structure, these can do exactly the same thing any built-in part of ImHex can do.
Plugins are normally written in C++, however you may link in code from any other programming language as long as it can generate a static library.
To get started, check out the Plugin Template:
Plugins are highly dependent on the version of ImHex they've been built for. Don't expect a 1.33.0 plugin to work on 1.34.0.
After building a plugin, a .hexplug
file is generated which can be placed in the plugins
folder in the ImHex directory
Scripts are C# Assemblies that link to the ImHex dotnet library.
These scripts have the ability to add or interface with certain often used functionalities but are much less powerful. The advantage of them compared to plugins however is that they are cross platform and don't depend on the version of ImHex.
After building, simply put all generated .dll
files in the <ImHex Folder>/scripts/custom/dotnet/<Plugin Name>
folder. Main.dll
is the main script file, if it contains a Main()
function, it will show up in Extras -> Run Script...
menu where it can be executed.