Conquistas guiando você pelas funcionalidades do ImHex
Tutoriais interativos
Linguagem de Padrões
A Linguagem de Padrões é a linguagem de programação totalmente personalizada desenvolvida para o ImHex.
Ela permite que você defina estruturas e tipos de dados em uma sintaxe semelhante a C e então os use para analisar e realçar o conteúdo de um arquivo.
Para padrões de formato, bibliotecas, arquivos mágicos e constantes, confira o repositório ImHex-Patterns.
Sinta-se à vontade para enviar seus próprios arquivos lá também!
Requisitos
Para usar o ImHex, os seguintes requisitos mínimos de sistema precisam ser atendidos.
[!IMPORTANT]
O ImHex requer uma GPU com suporte a OpenGL 3.0 em geral.
Existem versões disponíveis (com o sufixo -NoGPU) que são renderizadas por software e não requerem GPU, porém podem ser muito mais lentas que as versões aceleradas por GPU.
Se possível, faça o ImHex usar a GPU dedicada do seu sistema em vez da integrada.
O ImHex geralmente funcionará bem com GPUs integradas, mas certos drivers de GPU Intel HD no Windows são conhecidos por causar artefatos gráficos.
SO:
Windows: Windows 7 ou superior (Windows 10/11 recomendado)
macOS: macOS 15 (Sequoia) ou superior,
Versões inferiores também devem funcionar, mas você precisará compilar o ImHex você mesmo. Os binários de lançamento NÃO funcionarão devido ao GitHub não ter runners CI disponíveis para macOS 15 ou inferior.
A build para macOS não está assinada e exigirá que você as permita manualmente nas configurações de Segurança e Privacidade.
Linux: Linux "moderno". As seguintes distribuições têm lançamentos oficiais disponíveis. Outras distros são suportadas através dos lançamentos AppImage, Flatpak e Snap.
Ubuntu e Debian
Fedora
RHEL/AlmaLinux
Arch Linux
Basicamente qualquer outra distro também funcionará ao compilar o ImHex a partir das fontes.
FreeBSD: Testado no FreeBSD 14.3
Outras versões provavelmente também funcionarão, mas não foram testadas
CPU: Oficialmente suportadas são x86, AMD64 e ARM64, embora qualquer CPU Little Endian deva funcionar.
GPU: OpenGL 3.0 ou superior
GPUs integradas Intel HD são suportadas, no entanto, certos drivers são conhecidos por causar vários artefatos gráficos, especialmente no Windows. Use por sua conta e risco.
Caso você não tenha uma GPU disponível, existem versões renderizadas por software disponíveis para Windows e macOS
RAM: ~50MiB, mais é necessário para análises mais complexas
Armazenamento: ~100MiB
Instalação
Informações sobre como instalar o ImHex podem ser encontradas no guia Instalar
Compilação
Para compilar o ImHex em qualquer plataforma, é necessário GCC (ou Clang) com uma versão que suporte C++23 ou superior.
As versões para Windows e Linux são construídas usando o GCC mais recente disponível.
As versões para macOS são construídas usando o LLVM Clang mais recente disponível.
Importante notar que os compiladores MSVC e AppleClang NÃO são suportados, pois geralmente estão severamente desatualizados e carecem de recursos que o GCC e o LLVM Clang possuem.
[!NOTE]
Muitas dependências estão incluídas no repositório usando submódulos, portanto, certifique-se de cloná-lo usando a opção --recurse-submodules.
Todas as dependências que não estão incluídas podem ser instaladas usando os scripts de instalação de dependências encontrados na pasta /dist.
Para mais informações, consulte o guia Compilação.
Para desenvolver plugins para o ImHex, use o seguinte projeto modelo para começar. Você terá então acesso a toda a libimhex, bem como à API do ImHex e ao Registro de Conteúdo para interagir com o ImHex ou adicionar novo conteúdo.
Para construir um plugin, você precisará usar nosso SDK
Obtendo o SDK localmente
Você pode construir o SDK compilando o ImHex assim:
DESTDIR=install ninja install
O SDK estará disponível em install/usr/local/share/imhex/sdk. Você precisará definir a variável IMHEX_SDK_PATH para esse caminho (absoluto).
Obtendo o SDK em uma CI do Github Actions
Você pode usar esta ação para baixar automaticamente o SDK para seu Runner do Github
Este programa não transferirá nenhuma informação para outros sistemas em rede
a menos que seja especificamente solicitado pelo usuário ou pela pessoa que o instala ou opera.