4 puntos por GN⁺ 2024-06-30 | 1 comentarios | Compartir por WhatsApp

Un editor hex para ingenieros de reversa, programadores y quienes trabajan a las 3 de la mañana

Soporte

  • Se puede apoyar a través de GitHub Sponsors, Patreon y PayPal

Capturas de pantalla

  • Se ofrecen capturas de pantalla adicionales

Funciones

Vista hex enriquecida

  • Patching de bytes, gestión de parches y Undo/Redo ilimitado
  • Copia de bytes en varios formatos
  • Búsqueda simple de cadenas y hexadecimal
  • Ir al inicio, al final o a la posición actual del cursor
  • Resaltado colorido
  • Visualización en varios tipos de datos
  • Decodificación de datos en ASCII y codificaciones personalizadas
  • Vista de datos paginados

Lenguaje de patrones similar a C++

  • Carga automática basada en tipos MIME y valores mágicos
  • Soporte para visualización de varios tipos de datos
  • Mensajes de error útiles, resaltado de sintaxis e indicadores de error

Soporte de temas

  • Modo nocturno por defecto, con soporte para colores y estilos personalizados
  • Soporte para fuentes personalizadas

Importación y exportación de datos

  • Archivos Base64, parches IPS e IPS32, reportes en Markdown

Inspector de datos

  • Interpretación de datos en varios tipos
  • Copia y modificación de bytes
  • Soporte para agregar nuevos tipos de datos

Preprocesador de datos basado en nodos

  • Modificación, descifrado y decodificación de datos
  • Soporte para agregar nodos personalizados

Carga de múltiples fuentes de datos

  • Archivos locales, discos raw, servidor GDB, datos Intel Hex y Motorola SREC, memoria de procesos

Búsqueda de datos

  • Búsqueda en todo el archivo o en el área seleccionada
  • Extracción de cadenas, búsqueda de secuencias, búsqueda con expresiones regulares, patrones binarios y valores numéricos

Soporte para hashing de datos

  • Uso de varios algoritmos
  • Hashing de áreas específicas y cadenas arbitrarias

Soporte para diffing

  • Comparación entre distintas fuentes de datos
  • Resaltado de diferencias y vista en tabla

Desensamblador integrado

  • Soporte para todas las arquitecturas compatibles con Capstone

Marcadores

  • Soporte para nombres y colores personalizados
  • Resaltado de áreas marcadas e ir a marcadores

Analizador de datos y herramientas de visualización

  • Parser de archivos basado en file magic y base de datos de tipos MIME
  • Gráfico de distribución de tipos de bytes y gráfico de entropía

Soporte para reglas YARA

  • Escaneo de archivos con reglas YARA oficiales
  • Resaltado de coincidencias e ir a coincidencias

Herramientas útiles

  • Varios demanglers, tabla ASCII, reemplazador de expresiones regulares, evaluador de expresiones matemáticas, calculadora gráfica, selector de color, conversor de bases, byte swapper, calculadora de permisos UNIX, búsqueda de definiciones de términos en Wikipedia, utilidades de archivos, visualizador de float IEEE754, cliente/servidor TCP, calculadora del algoritmo de Euclides

Actualizaciones de contenido integradas

  • Descarga de archivos desde la base de datos

Interfaz moderna

  • Soporte para múltiples espacios de trabajo y layouts personalizados
  • Ventanas desacoplables

Fácil para empezar

  • Soporte para varios idiomas, modo simplificado para principiantes, documentación extensa, muchos archivos de ejemplo en la base de datos y tutorial interactivo

Lenguaje de patrones

  • Definición de estructuras y tipos de datos con sintaxis similar a C
  • Parseo y resaltado del contenido de archivos

Base de datos

  • Patrones de formatos, bibliotecas y archivos de magic y constantes

Requisitos

  • Requiere GPU y soporte para OpenGL 3.0
  • Compatible con Windows, macOS y Linux

Instalación

  • Consulta la guía de instalación

Compilación

  • Requiere GCC o Clang, con soporte para C++23 o superior

Contribución

  • Consulta la guía de contribución

Desarrollo de plugins

  • Usa el proyecto plantilla

Créditos

  • Agradecimientos a los principales contribuidores y a las bibliotecas utilizadas

Licencia

  • Mayormente bajo licencia GPLv2-only, con algunas partes bajo licencia LGPLv2.1

La opinión de GN⁺

  • ImHex es una herramienta muy útil para tareas de ingeniería inversa y programación. Destaca especialmente por su capacidad para visualizar y analizar distintos tipos de datos.
  • Incluye funciones amigables para el usuario, como el modo nocturno, que pueden reducir la fatiga visual durante sesiones largas de trabajo.
  • Gracias a su compatibilidad con diversas fuentes de datos, puede aprovecharse en varios entornos.
  • Otras herramientas con funciones similares incluyen HxD y 010 Editor.
  • Al adoptar nuevas tecnologías u open source, conviene considerar bien sus ventajas y desventajas. Por ejemplo, en el caso de ImHex, el soporte de GPU es indispensable.

1 comentarios

 
GN⁺ 2024-06-30
Comentarios de Hacker News
  • ImHex es, por mucho, el mejor editor hexadecimal que he usado hasta ahora

    • La función de plantillas de archivo resalta automáticamente secciones de tipos de archivo conocidos
    • Interpreta y muestra los bytes seleccionados como varios tipos de datos al mismo tiempo
    • Es mucho más rápido que otros editores al trabajar con archivos grandes
    • Como desventaja, la UI de imgui a veces tiene errores
  • Me pregunto si hay una forma de que este editor muestre los bytes ASCII con glifos CP437

    • En DOS leía archivos binarios de esta manera, y puedo leer los glifos más rápido que los valores hexadecimales
    • Mostrar los caracteres no imprimibles como puntos no aporta mucha información
  • Probé ImHex, pero era demasiado complejo

    • En macOS todavía prefiero Hex Fiend
    • Es simple, rápido y ofrece lo que quiero
    • En Windows todavía no he encontrado un editor hexadecimal "simple" perfecto
  • El lenguaje de patrones es muy útil y ayuda mucho para aprender

    • Me encanta este programa
  • ImHex generalmente requiere una GPU compatible con OpenGL 3.0

    • Me pregunto por qué un editor hexadecimal necesita OpenGL
    • Me pregunto si hay alguna razón real para necesitar OpenGL o si es solo por estética
  • ImHex se ve bien

    • Uso la función de búsqueda con comodines de 010 Editor, pero ImHex también la ofrece
    • Como ofrece más funciones, pienso probarlo
  • Me encanta mucho esta área de la cultura informática

    • Ingeniería inversa, escribir módulos del kernel, entender cómo funcionan las cosas y hacer que realicen funciones para las que no fueron diseñadas
    • Sin embargo, rara vez hay formas legales de hacer esto y se necesita mucho tiempo y ayuda de colegas
  • Este proyecto es excelente

    • Me divertí mucho manipulando la ROM de un reloj inteligente de Philips
    • Tiene un DSL integrado similar a Rust y es muy ligero, incluso sin gestión de memoria
    • Esto permite visualizar y extraer datos estructurados de flujos binarios
    • También hay un editor visual para hacer cálculos simples sin código
    • Cuando lo probé, daba una sensación algo incompleta
    • Escribir código en el DSL fue más intuitivo y fácil
  • Por ahora seguiré usando 010 Editor

    • Es el editor hexadecimal más impresionante que he usado hasta ahora
    • No me gusta el framework GUI (Dear ImGui) que usa este proyecto nuevo
    • Está pensado para sistemas embebidos con pantallas pequeñas y sin gestor de ventanas, y en entornos de escritorio ofrece una experiencia extraña por la falta de integración de la UI
  • Este proyecto se ve bastante genial

    • Me pregunto si desarrollar un editor hexadecimal como proyecto es una buena idea
    • Un editor hexadecimal simple no es difícil, pero hay mucho espacio para practicar cosas como parsear formatos de archivo
    • También hay mucho margen para desarrollar herramientas de ingeniería inversa