Sobre el proyecto
ImHex es un editor hexadecimal de código abierto dirigido a ingenieros inversos, programadores y personas que trabajan con datos sin procesar hasta altas horas de la noche. Tiene una interfaz gráfica moderna construida con Dear ImGui y ofrece versiones estable, nightly y web. La aplicación de escritorio es compatible con Windows, macOS, Linux y FreeBSD; las versiones también incluyen compilaciones "NoGPU" con renderizado por software para sistemas sin hardware gráfico compatible con OpenGL 3.0.
La experiencia de edición principal incluye parcheo de bytes, gestión de parches, deshacer/rehacer infinito y comandos de copia flexibles. Los datos se pueden copiar como bytes sin procesar, cadenas hexadecimales, arrays en lenguajes como C, C++, C#, Rust, Python, Java y JavaScript, vistas hexadecimales en arte ASCII o HTML autocontenido. La búsqueda abarca texto simple y hexadecimal, regex, patrones binarios con comodines, rangos de valores numéricos y extracción de cadenas. El editor también admite ir desde el inicio, el final o la posición del cursor, vistas paginadas y múltiples reglas de resaltado por color.
ImHex incluye un lenguaje de patrones personalizado similar a C++ para analizar y resaltar el contenido de archivos. Admite arrays, punteros, structs, uniones, enums, campos de bits, espacios de nombres, little/big endian, condicionales y mensajes de error útiles. El lenguaje de patrones puede visualizar imágenes, audio, modelos 3D, coordenadas y marcas de tiempo. Los archivos de patrones, bibliotecas, archivos mágicos, codificaciones, temas, nodos de procesador y reglas YARA se pueden descargar mediante un actualizador de contenido integrado desde la base de datos de ImHex.
El inspector de datos puede interpretar bytes como enteros con/sin signo, floats, valores LEB128, cadenas ASCII/wide/UTF-8, marcas de tiempo, GUIDs, colores y más. Admite copiar y modificar bytes, ocultar filas no utilizadas y añadir tipos personalizados mediante el lenguaje de patrones.
Un preprocesador de datos basado en nodos permite a los usuarios modificar, descifrar o decodificar datos antes de que se muestren en el editor hexadecimal, sin cambiar la fuente subyacente. Se pueden añadir nodos personalizados.
Los datos se pueden cargar desde muchas fuentes: archivos locales, discos y particiones sin procesar, memoria de servidor GDB, formatos Intel HEX y Motorola SREC, Base64, paquetes UDP, memoria de procesos y archivos remotos por SSH/SFTP. Los archivos grandes se manejan con una vista paginada para una carga eficiente.
La vista de diferencias compara datos de distintas fuentes, resalta las diferencias y ofrece una tabla de diferencias. El desensamblador integrado se basa en Capstone y admite arquitecturas como ARM, ARM64, MIPS, x86, PowerPC, SPARC, RISC-V, WebAssembly y otras. Se pueden añadir desensambladores personalizados.
Las herramientas de análisis incluyen detección de archivos mágicos, una base de datos de tipos MIME, gráficos de distribución de bytes, gráficos de entropía, valores de entropía más altos/promedio, detección de archivos cifrados/comprimidos y gráficos de distribución de digramas/por capas. Se pueden ejecutar reglas YARA para escanear archivos vulnerables, resaltar coincidencias y saltar a los resultados.
Los marcadores admiten nombres personalizados, colores, comentarios, resaltado, salto y apertura del contenido de marcadores en nuevas pestañas. Las herramientas de hashing incluyen CRC8/16/32 con polinomios personalizados, MD5, la familia SHA, Adler32 y muchos otros algoritmos, aplicados a regiones seleccionadas o cadenas arbitrarias.
Se incluye un conjunto de utilidades útiles: demanglers de Itanium/MSVC/Rust/D basados en LLVM, una tabla ASCII, reemplazador de regex, calculadora, calculadora gráfica, selector de color hexadecimal, conversor de base, intercambiador de bytes, calculadora de permisos UNIX, visualizador de floats IEEE754, divisor/combinador/triturador de archivos, cliente/servidor TCP, herramienta de solicitudes HTTP y más. La interfaz admite múltiples espacios de trabajo, diseños personalizados y ventanas desacoplables. Los principiantes pueden usar el modo simplificado, tutoriales interactivos, logros y la documentación.
ImHex admite plugins. El SDK se puede compilar localmente u obtener en GitHub Actions, y hay una plantilla de plugin disponible. El proyecto está mayormente licenciado bajo GPLv2-only, mientras que libimhex y la biblioteca de plugins de UI están bajo LGPLv2.1 para permitir plugins propietarios. Los requisitos del sistema son modestos: aproximadamente 50 MiB de RAM y 100 MiB de almacenamiento, con OpenGL 3.0 recomendado para las versiones normales. El proyecto está traducido a muchos idiomas y acepta contribuciones.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.