4 pontos por GN⁺ 2024-06-30 | 1 comentários | Compartilhar no WhatsApp

Um editor hexadecimal para engenheiros reversos, programadores e quem trabalha às 3 da manhã

Apoio

  • É possível apoiar via GitHub Sponsors, Patreon e PayPal

Capturas de tela

  • Capturas de tela adicionais disponíveis

Recursos

Visualização hexadecimal avançada

  • Patching de bytes, gerenciamento de patches e Undo/Redo ilimitado
  • Copiar bytes em vários formatos
  • Busca simples por strings e hexadecimal
  • Ir para o início, fim ou posição atual do cursor
  • Destaque colorido
  • Exibição em vários tipos de dados
  • Decodificação de dados em ASCII e codificações personalizadas
  • Visualização de dados paginados

Linguagem de padrões semelhante a C++

  • Carregamento automático com base em tipo MIME e valores mágicos
  • Suporte à visualização de vários tipos de dados
  • Mensagens de erro úteis, realce de sintaxe e indicação de erros

Suporte a temas

  • Modo noturno por padrão, com suporte a cores e estilos personalizados
  • Suporte a fontes personalizadas

Importação e exportação de dados

  • Arquivos Base64, patches IPS e IPS32, relatórios em Markdown

Inspetor de dados

  • Interpretação de dados em vários tipos
  • Copiar e modificar bytes
  • Suporte à adição de novos tipos de dados

Pré-processador de dados baseado em nós

  • Modificação, descriptografia e decodificação de dados
  • Suporte à adição de nós personalizados

Carregamento de várias fontes de dados

  • Arquivos locais, disco raw, servidor GDB, dados Intel Hex e Motorola SREC, memória de processo

Busca de dados

  • Busca no arquivo inteiro ou em uma área selecionada
  • Extração de strings, busca por sequência, busca com expressão regular, padrões binários e valores numéricos

Suporte a hashing de dados

  • Vários algoritmos disponíveis
  • Hashing de áreas específicas e strings arbitrárias

Suporte a diffing

  • Comparação entre diferentes fontes de dados
  • Destaque das diferenças e visualização em tabela

Disassembler integrado

  • Suporte a todas as arquiteturas compatíveis com Capstone

Favoritos

  • Suporte a nomes e cores personalizados
  • Destaque de áreas marcadas e navegação até os favoritos

Analisador de dados e ferramentas de visualização

  • Parser de arquivos baseado em file magic e banco de dados de tipos MIME
  • Gráfico de distribuição de tipos de byte, gráfico de entropia

Suporte a regras YARA

  • Varredura de arquivos com regras YARA oficiais
  • Destaque de correspondências e navegação até elas

Ferramentas úteis

  • Vários demanglers, tabela ASCII, substituidor de expressões regulares, avaliador de expressões matemáticas, calculadora gráfica, seletor de cores, conversor de bases, byte swapper, calculadora de permissões UNIX, busca de definições de termos na Wikipedia, utilitários de arquivo, visualizador de float IEEE754, cliente/servidor TCP, calculadora do algoritmo de Euclides

Atualizações de conteúdo integradas

  • Download de arquivos a partir do banco de dados

Interface moderna

  • Suporte a múltiplos espaços de trabalho e layouts personalizados
  • Janelas destacáveis

Fácil de começar

  • Suporte a vários idiomas, modo simplificado para iniciantes, documentação extensa, muitos arquivos de exemplo no banco de dados, tutorial interativo

Linguagem de padrões

  • Definição de estruturas e tipos de dados com sintaxe semelhante a C
  • Parsing e destaque do conteúdo dos arquivos

Banco de dados

  • Padrões de formatos, bibliotecas, arquivos magic e constantes

Requisitos

  • Requer GPU com suporte a OpenGL 3.0
  • Suporte a Windows, macOS e Linux

Instalação

  • Consulte o guia de instalação

Compilação

  • Requer GCC ou Clang, com suporte a C++23 ou superior

Contribuição

  • Consulte o guia de contribuição

Desenvolvimento de plugins

  • Use o projeto de template

Créditos

  • Agradecimentos aos principais contribuidores e bibliotecas utilizadas

Licença

  • Em sua maior parte sob licença GPLv2-only, com algumas partes sob LGPLv2.1

Opinião do GN⁺

  • O ImHex é uma ferramenta muito útil para tarefas de engenharia reversa e programação. Destaca-se especialmente pela capacidade de visualizar e analisar vários tipos de dados.
  • Ele oferece recursos amigáveis ao usuário, como o modo noturno, que ajudam a reduzir a fadiga visual mesmo durante longos períodos de trabalho.
  • Graças à compatibilidade com diversas fontes de dados, pode ser usado em diferentes ambientes.
  • Outras ferramentas com recursos semelhantes incluem HxD e 010 Editor.
  • Ao adotar novas tecnologias ou projetos open source, é importante considerar bem os prós e contras. No caso do ImHex, por exemplo, o suporte a GPU é obrigatório.

1 comentários

 
GN⁺ 2024-06-30
Comentários do Hacker News
  • O ImHex é o melhor editor hexadecimal que já usei até agora

    • O recurso de templates de arquivo destaca automaticamente seções de tipos de arquivo conhecidos
    • Interpreta e mostra os bytes selecionados simultaneamente como vários tipos de dados
    • É muito mais rápido que outros editores ao trabalhar com arquivos grandes
    • Como ponto negativo, a UI em imgui às vezes tem bugs
  • Fico me perguntando se existe uma forma de este editor mostrar bytes ASCII com glifos CP437

    • Eu lia arquivos binários no DOS dessa forma, e consigo ler os glifos mais rápido do que os valores hexadecimais
    • Mostrar caracteres não imprimíveis como pontos não fornece muita informação
  • Tentei usar o ImHex, mas achei complexo demais

    • No macOS, ainda prefiro o Hex Fiend
    • É simples, rápido e oferece o que eu quero
    • No Windows, ainda não encontrei um editor hexadecimal "simples" perfeito
  • A linguagem de padrões é muito útil e ajuda bastante no aprendizado

    • Adoro este programa
  • O ImHex geralmente exige uma GPU com suporte a OpenGL 3.0

    • Fico me perguntando por que um editor hexadecimal precisa de OpenGL
    • Queria saber se há um motivo real para exigir OpenGL ou se é só firula
  • O ImHex parece bom

    • Eu uso o recurso de busca com curingas do 010 Editor, mas o ImHex também oferece isso
    • Como ele oferece mais recursos, pretendo testá-lo
  • Gosto muito dessa área da cultura da computação

    • Engenharia reversa, escrever módulos de kernel, entender como as coisas funcionam e fazê-las realizar funções para as quais não foram projetadas
    • Porém, raramente há maneiras legais de fazer isso, e normalmente exige muito tempo e ajuda de colegas
  • Este projeto é realmente excelente

    • Foi muito divertido mexer na ROM de um relógio inteligente da Philips
    • Há uma DSL embutida semelhante a Rust, muito leve mesmo sem gerenciamento de memória
    • Isso permite visualizar e extrair dados estruturados de streams binários
    • Também há um editor visual para fazer cálculos simples sem código
    • Quando testei, pareceu um pouco inacabado
    • Escrever código na DSL foi mais intuitivo e fácil
  • Por enquanto, vou continuar usando o 010 Editor

    • É o editor hexadecimal mais impressionante que já usei
    • Não gosto do framework de GUI (Dear ImGui) usado em projetos novos
    • Ele foi feito para sistemas embarcados com telas pequenas e sem gerenciador de janelas, e no desktop acaba proporcionando uma experiência estranha por falta de integração da UI
  • Este projeto parece bem legal

    • Fico me perguntando se desenvolver um editor hexadecimal como projeto é uma boa ideia
    • Um editor hexadecimal simples não é difícil, mas há muito espaço para praticar, como fazer parsing de formatos de arquivo
    • Também há bastante espaço para desenvolver ferramentas de engenharia reversa