这个项目能做什么

ImHex 是一个面向逆向工程师、程序员以及深夜处理原始数据的人员的开源十六进制编辑器。它采用 Dear ImGui 构建现代图形界面,提供稳定版、夜间版和网页版。桌面应用支持 Windows、macOS、Linux 和 FreeBSD;发行版还包含针对不支持 OpenGL 3.0 兼容图形硬件的系统的软件渲染 "NoGPU" 构建。 主要编辑体验包括字节补丁、补丁管理、无限撤销/重做以及灵活的复制命令。数据可以以原始字节、十六进制字符串、C、C++、C#、Rust、Python、Java 和 JavaScript 等语言的数组、ASCII 艺术十六进制视图或自包含 HTML 的形式复制。搜索功能覆盖纯文本和十六进制、正则表达式、带通配符的二进制模式、数值范围以及字符串提取。编辑器还支持从起始位置、结束位置或光标位置进行跳转、分页视图以及多种颜色高亮规则。 ImHex 包含一种自定义的类 C++ 模式语言,用于解析和高亮文件内容。它支持数组、指针、结构体、联合体、枚举、位字段、命名空间、小端/大端、条件语句以及有用的错误信息。该模式语言可用于可视化图像、音频、3D 模型、坐标和时间戳。模式文件、库、魔数文件、编码、主题、处理器节点以及 YARA 规则可以通过内置的内容更新器从 ImHex 数据库下载。 数据检查器能够将字节解释为有符号/无符号整数、浮点数、LEB128 值、ASCII/宽字符/UTF-8 字符串、时间戳、GUID、颜色等。它支持复制和修改字节、隐藏未使用的行,以及通过模式语言添加自定义类型。 基于节点的数据预处理器允许用户在十六进制编辑器显示数据之前对数据进行修改、解密或解码,而不改变底层源数据。用户可以添加自定义节点。 数据可以从多种来源加载:本地文件、原始磁盘和分区、GDB 服务器内存、Intel HEX 和 Motorola SREC 格式、Base64、UDP 数据包、进程内存以及通过 SSH/SFTP 访问的远程文件。大文件通过分页视图进行高效加载。 差异视图可比较不同来源的数据,高亮显示差异,并提供差异表。集成的反汇编器基于 Capstone,支持 ARM、ARM64、MIPS、x86、PowerPC、SPARC、RISC-V、WebAssembly 等架构,并且可以添加自定义反汇编器。 分析工具包括文件魔数检测、MIME 类型数据库、字节分布图、熵图、最高/平均熵值、加密/压缩文件检测以及分级/层叠分布图。YARA 规则可用于扫描易受攻击的文件、高亮匹配项并跳转到结果。 书签支持自定义名称、颜色、注释、高亮、跳转以及在新标签页中打开书签内容。哈希工具包括支持自定义多项式的 CRC8/16/32、MD5、SHA 系列、Adler32 以及许多其他算法,可应用于选定区域或任意字符串。 内置了一套实用工具:基于 LLVM 的 Itanium/MSVC/Rust/D 去修饰器、ASCII 表、正则表达式替换器、计算器、绘图计算器、十六进制颜色选择器、基数转换器、字节交换器、UNIX 权限计算器、IEEE754 浮点数可视化器、文件分割/合并/粉碎工具、TCP 客户端/服务器、HTTP 请求工具等等。界面支持多工作区、自定义布局以及可分离的窗口。初学者可以使用简化模式、交互式教程、成就以及文档。 ImHex 支持插件。SDK 可以在本地构建或通过 GitHub Actions 获取,并提供插件模板。该项目主要采用 GPLv2-only 许可证,而 libimhex 和 UI 插件库则采用 LGPLv2.1,以允许专有插件。系统要求适中:大约需要 50 MiB RAM 和 100 MiB 存储空间,正常版本推荐使用 OpenGL 3.0。该项目已翻译成多种语言,欢迎贡献。