Um editor hexadecimal de engenheiros reversos, programadores e pessoas que valorizam suas retinas ao trabalhar às 3 da manhã.
/ˈꞮmhɛks/
![Faça o download da versão mais recente do IMHEX!](https://images.downcodes.com/uploads/20250131/img_679cc825bf5dc31.png)
![Faça o download da mais recente versão noturna pré-lançamento do IMHEX](https://images.downcodes.com/uploads/20250131/img_679cc825bf9c932.png)
![Use a versão da Web do IMHEX diretamente no seu navegador!](https://images.downcodes.com/uploads/20250131/img_679cc825bfd8233.png)
![Leia a documentação do IMHEX!](https://images.downcodes.com/uploads/20250131/img_679cc825c013c34.png)
Apoio
Se você gosta do meu trabalho, considere me apoiar nos patrocinadores do Github, Patreon ou PayPal. Muito obrigado!
Capturas de tela
![Editor Hex, padrões e informações de dados](https://images.downcodes.com/uploads/20250131/img_679cc825c04fe35.png)
![Marcadores, desmontador e processador de dados](https://images.downcodes.com/uploads/20250131/img_679cc825c0da536.png)
Mais capturas de tela
![Processador de dados descriptografando alguns dados e exibindo -os como uma imagem](https://images.downcodes.com/uploads/20250131/img_679cc825c15bf37.png)
![STL Parser escrito na linguagem padrão visualizando um modelo 3D](https://images.downcodes.com/uploads/20250131/img_679cc825c215438.png)
![Vista de informações de dados exibindo várias estatísticas sobre o arquivo](https://images.downcodes.com/uploads/20250131/img_679cc825c2bb839.png)
Características
Vista hexadecimal característica
- Patching de bytes
- Gerenciamento de patches
- Infinito desfazer/refazer
- "Copie bytes como ..."
- Bytes
- String hexadecimal
- C, C ++, C#, Rust, Python, Java e JavaScript Array
- Vista hexágica ascii-arte
- HTML Div
- Pesquisa simples de cordas e hexadecipal
- Goto de posição de início, final e cursor atual
- Destaque colorido
- Regras de destaque em primeiro plano configurável
- Destaque de fundo usando padrões, resultados e favoritos
- Exibindo dados como uma lista de muitos tipos diferentes
- Inteiros hexadecimais (8, 16, 32, 64 bits)
- Inteiros decimais assinados e não assinados (8, 16, 32, 64 bits)
- Flutuadores (16, 32, 64 bits)
- Cores RGBA8
- Hexii
- Binário
- Decodificação de dados como ASCII e codificações personalizadas
- Suporte interno para UTF-8, UTF-16, Shiftjis, a maioria das codificações do Windows e muito mais
- Visualização de dados paginados
C ++-como a linguagem padrão para análise destacando o conteúdo de um arquivo
- Carregamento automático com base em tipos MIME e valores mágicos
- Matrizes, ponteiros, estruturas, sindicatos, enumes, bitfields, namespaces, pouco e grande e grande apoio endiano, condicionais e muito mais!
- Mensagens de erro úteis, destaque da sintaxe e marcação de erros
- Suporte para visualizar muitos tipos diferentes de dados
- Imagens
- Áudio
- Modelos 3D
- Coordenadas
- Carimbos de hora
Apoio ao tema
- Não queima suas retinas quando usado em sessões noturnas
- Modo escuro por padrão, mas um modo de luz também está disponível
- Cores e estilos personalizáveis para todos os elementos da interface do usuário através de arquivos de temas compartilháveis
- Suporte para fontes personalizadas
Importando e exportando dados
- Arquivos base64
- Patches IPS e IPS32
- Relatórios de Markdown
Inspetor de dados
- Interpretando os dados de tantos tipos diferentes com Endianness, Decimal, Hexadecimal e Octal Support e Bit Invertion
- Inteiros não assinados e assinados (8, 16, 24, 32, 48, 64 bits)
- Flutuadores (16, 32, 64 bits)
- LEB128 assinado e não assinado
- ASCII, Wide and UTF-8 caracteres e strings
- time32_t, time64_t, data e hora
- GUIDS
- Cores RGBA8 e RGB65
- Copiar e modificar bytes através do inspetor
- Adicionando novos tipos de dados através da linguagem padrão
- Suporte para esconder linhas que não são usadas
Pré-processador de dados baseado em nó
- Modifique, descriptografar e decodificar dados antes de serem exibidos no editor hexadecimal
- Modificar dados sem tocar a fonte subjacente
- Suporte para adicionar nós personalizados
Carregando dados de muitas fontes de dados diferentes
- Arquivos locais
- Suporte para arquivos enormes com carregamento rápido e eficiente
- Discos crus
- Carregando dados de discos brutos e partições
- Servidor GDB
- Acesse a RAM de um processo em execução ou dispositivos incorporados através do GDB
- Intel Hex e Motorola SREC dados
- Processar memória
- Inspecione todo o espaço de endereço de um processo de corrida
Pesquisa de dados
- Suporte para pesquisar o arquivo inteiro ou apenas uma seleção
- Extração de string
- Opção para especificar o comprimento mínimo e o conjunto de caracteres (maiúsculas, maiúsculas, dígitos, símbolos)
- Opção para especificar a codificação (ASCII, UTF-8, UTF-16 Big e Little Endian)
- Pesquisa de sequência
- Procure uma sequência de bytes ou personagens
- Opção para ignorar o caso do personagem
- Pesquisa regex
- Procure strings usando expressões regulares
- Padrão binário
- Procure sequências de bytes com curingas opcionais
- Pesquisa de valor numérico
- Procure por inteiros e carros alegóricos assinados/não assinados
- Procure intervalos de valores
- Opção para especificar tamanho e endianness
- Opção para ignorar valores inalignados
Suporte de hash de dados
- Muitos algoritmos diferentes disponíveis
- CRC8, CRC16 e CRC32 com valores iniciais e polinômios personalizados
- Muitos polinômios padrão disponíveis
- MD5
- SHA-1, SHA-224, SHA-256, SHA-384, SHA-512
- Adler32
- AP
- Bkdr
- Bernstein, Bernstein1
- DEK, DJB, ELF, FNV1, FNV1A, JS, PJW, RS, SDBM
- OnEattime, girando, shiftandxor, superfast
- Murmur2_32, murmurhash3_x86_32, murmurhash3_x86_128, murmurhash3_x64_128
- Siphash64, Siphash128
- Xxhash32, xxhash64
- Tiger, Tiger2
- Blake2b, Blake2s
- Hash de regiões específicas dos dados carregados
- Hash de cordas arbitrárias
Suporte difícil
- Compare dados de diferentes fontes de dados
- Destaque da diferença
- Vista da tabela de diferenças
Desmontador integrado
- Suporte para todas as arquiteturas suportadas pela Capstone
- ARM32 (braço, polegar, córtex-m, aarch32)
- ARM64
- MIPS (MIPS32, MIPS64, MIPS32R6, MICRO)
- x86 (16 bits, 32 bits, 64 bits)
- PowerPC (32 bits, 64 bits)
- SPARC
- IBM Systemz
- xcore
- M68K
- TMS320C64X
- M680X
- Ethereum
- Risc-v
- WebAssembly
- MOS65XX
- Filtro de pacotes de Berkeley
Marcadores
- Suporte para marcadores com nomes e cores personalizados
- Destacando a região marcada no editor hexadecimal
- Salte para os favoritos
- Abra o conteúdo do favorito em uma nova guia
- Adicione comentários aos favoritos
Analisador de dados e visualizador de características
- Analisador de arquivo baseado em arquivos e banco de dados de tipo MIME
- Gráfico de distribuição de tipo de byte
- Gráfico de entropia
- Entropia mais alta e média
- Detecção de arquivo criptografada / comprimida
- Digram e gráficos de distribuição em camadas
Yara Suporte de regras
- Digitalize um arquivo para vulnerabilidades com regras oficiais de Yara
- Matches de destaque no editor hexadecimal
- Salte para as partidas
- Aplicar várias regras de uma só vez
Ferramentas úteis
- Itanium, MSVC, ferrugem e Demangler D-argetes baseados em LLVM
- Tabela ASCII
- Replacer regex
- Avaliador de expressão matemática (calculadora)
- Calculadora de gráficos
- Seletor de cores hexadecimal com suporte para muitos formatos diferentes
- Conversor base
- Byte Swapper
- Calculadora de permissões Unix
- Localizador de definição de termo da Wikipedia
- Utilitários de arquivos
- Divisor de arquivo
- Combinente de arquivos
- Arquivo Shredder
- Visualizador de flutuação IEEE754
- Divisão por calculadora de multiplicação invariante
- Cliente/servidor TCP
- Calculadora de algoritmo euclidiano
Updater de conteúdo interno
- Faça o download de todos os arquivos encontrados no banco de dados diretamente do IMHEX
- Arquivos de padrões para decodificar vários formatos de arquivo
- Bibliotecas para a linguagem padrão
- Arquivos mágicos para detecção de tipo de arquivo
- Nós do processador de dados personalizados
- Codificações personalizadas
- Temas personalizados
- Regras de yara
Interface moderna
- Suporte para vários espaços de trabalho
- Suporte para layouts personalizados
- Janelas destacáveis
Fácil de começar
- Suporte para muitos idiomas diferentes
- Modo simplificado para iniciantes
- Documentação extensa
- Muitos arquivos de exemplo disponíveis no banco de dados
- Realizações guiando você através dos recursos do IMHEX
- Tutoriais interativos
Linguagem padrão
A linguagem do padrão é a linguagem de programação completamente personalizada desenvolvida para o IMHEX. Ele permite definir estruturas e tipos de dados em uma sintaxe do tipo C e, em seguida, use-os para analisar e destacar o conteúdo de um arquivo.
- Código fonte: link
- Documentação: Link
Banco de dados
Para padrões de formato, bibliotecas, arquivos mágicos e constantes, consulte o repositório Imhex-Patterns.
Sinta -se à vontade para PR seus próprios arquivos também!
Requisitos
Para usar o IMHEX, os seguintes requisitos mínimos do sistema precisam ser atendidos.
Importante
O IMHEX requer uma GPU com suporte OpenGL 3.0 em geral. Existem lançamentos disponíveis (com o sufixo -NoGPU
) que são renderizados por software e não exigem uma GPU, no entanto, eles podem ser muito mais lentos que as versões aceleradas da GPU.
Se possível, faça com que o IMHEX use a GPU dedicada no seu sistema, em vez da integrada. O IMHEX geralmente funciona bem com as GPUs integradas, mas alguns drivers Intel HD GPU nas janelas são conhecidos por causar artefatos gráficos.
- OS :
- Windows : Windows 7 ou superior (Windows 10/11 recomendado)
- MacOS : MacOS 12.1 (Monterey) ou superior,
- Versões mais baixas são suportadas, mas você precisará compilar o IMHEX
- Linux : Linux "moderno". As distribuições a seguir têm lançamentos oficiais disponíveis. Outras distros são apoiadas através dos lançamentos Appimage e Flatpak.
- Ubuntu e Debian
- Fedora
- Rhel/Almalinux
- Arch Linux
- Basicamente, qualquer outra distribuição também funcionará ao compilar o IMHEX de fontes.
- CPU : x86_64 (64 bits)
- GPU : OpenGL 3.0 ou superior
- O IGPUS Intel HD integrado é suportado, no entanto, são conhecidos certos drivers 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 lançamentos renderizados por software disponíveis para Windows e MacOS
- RAM : 256 MB, mais pode ser necessário para análises mais complicadas
- Armazenamento : 150 MB
Instalação
Informações sobre como instalar o IMHEX podem ser encontradas no guia de instalação
Compilação
Para compilar o IMHEX em qualquer plataforma, o GCC (ou CLANG) é necessário com uma versão que suporta C ++ 23 ou superior. No MacOS, o CLANG também é obrigado a compilar algum código OBJC. Todos os lançamentos estão sendo construídos usando o GCC mais recente disponível.
Observação
Muitas dependências são agrupadas no repositório usando submódulos, portanto, clone-o usando a opção --recurse-submodules
. Todas as dependências que não são agrupadas podem ser instaladas usando os scripts do instalador de dependência encontrados na pasta /dist
.
Para obter mais informações, consulte o guia de compilação.
Contribuindo
Veja contribuindo
Desenvolvimento de plug -in
Para desenvolver plugins para o IMHEX, use o seguinte projeto de modelo para começar. Em seguida, você tem acesso à totalidade do Libimhex, bem como à API IMHEX e ao Registro de Conteúdo para interagir com o IMHEX ou adicionar novo conteúdo.
Créditos
Colaboradores
- Itrooz para colocar o IMHEX na web, bem como centenas de contribuições em todas as partes do projeto
- jumanji144 para enormes contribuições para a linguagem padrão e a infraestrutura da IMHEX
- Mary por sua imensa ajuda portundo IMHEX para macos e ajuda durante o desenvolvimento
- Roblabla para adicionar suporte ao instalador MSI ao IMHEX
- MailAnder por colocar o IMHEX no Flathub
- Todo mundo que relatou problemas sobre discórdia ou github com o qual tive ótimas conversas :)
Dependências
- Muito obrigado a Ocornut por seu incrível querido imgui, que é usado para construir toda a interface
- Graças a Epezent por Implet usado para plotar dados em vários lugares
- Obrigado a Nelarius pelos imnodes usados como base para o processador de dados
- Agradecemos a Balazsjako pelo imguicolortExtedit usado para o destaque da sintaxe da linguagem do padrão
- Obrigado a Nlohmann por sua biblioteca JSON usada para arquivos de configuração
- Obrigado a Vitaut pela biblioteca libfmt, o que torna a formatação e o registro muito melhor
- Graças a Btzy pelo Nativefiledialog-estendido e seu grande apoio, usado para lidar com diálogos de arquivos em todas as plataformas
- Obrigado ao Danyspin97 pelo XDGPP usado para lidar com os caminhos da pasta no Linux
- Obrigado a Aquynh pelo Capstone, que é a base da janela de desmontagem
- Agradecemos ao RXI pelo micro -ano usado para extrair ativos baixados para lojas
- Graças ao Virustotal por Yara usado pelo plugin Yara
- Obrigado a Martinsos por Edlib usado para pesquisa de sequência na visão difícil
- Graças a Ron4fun pelo hashlibplus que implementa todos os algoritmos de hash sob o sol
- Obrigado a Mackron pelo miniaudio costumava reproduzir arquivos de áudio
- Obrigado a todos os outros grupos e organizações cujas bibliotecas são usadas no IMHEX
Licença
A maior parte do IMHEX está sob a licença somente GPLV2. Exceções notáveis a isso são as seguintes peças que estão sob a licença LGPLV2.1:
- /lib/libimhex : a biblioteca que permite que os plugins interajam com o IMHEX.
- /Plugins/UI : a biblioteca de plug -in da interface do usuário que contém alguns elementos de interface do usuário comuns que podem ser usados por outros plugins
O motivo disso é permitir que os plugins proprietários sejam desenvolvidos para o IMHEX.