1. Imhex: A hex editor for reverse engineers (github.com)
ImHex:面向逆向工程师的十六进制编辑器
ImHex 是一款专为逆向工程师、程序员以及需要在深夜工作时保护视力的用户设计的高级十六进制编辑器。它提供了一套强大且全面的工具集,用于分析、编辑和理解二进制文件。
核心功能特性
1. 功能丰富的十六进制视图
- 编辑与导航:支持字节修补、补丁管理、无限撤销/重做、多种格式复制(如C/Python数组)、字符串与十六进制搜索、以及从文件起始/结束/当前光标位置的跳转。
- 数据高亮与显示:提供可配置的前景与背景高亮规则,并能以多种数据类型(如各种位宽的整数、浮点数、RGBA颜色、HexII等)显示数据。支持自定义编码(如UTF-8、ShiftJIS)解码。
2. 自定义模式语言
- 使用类似C语言的语法,允许用户定义结构、联合、枚举等来解析文件内容。
- 支持自动根据文件类型加载模式,能够可视化图像、音频、3D模型等多种数据。
3. 主题与界面
- 提供深色模式(默认)和浅色模式,支持通过可分享的主题文件自定义所有UI元素的颜色和样式。
- 现代界面支持多工作区、自定义布局和窗口分离。
4. 数据导入/导出与处理
- 支持从多种数据源加载数据,包括:本地大文件、原始磁盘/分区、GDB服务器(访问进程或设备内存)、Intel Hex/Motorola SREC、Base64编码数据、UDP数据包、进程内存、通过SSH/SFTP的远程文件。
- 提供数据检查器,能将选定字节解释为多种类型(整数、浮点数、时间、GUID等)。
- 节点数据预处理器允许在显示前对数据进行修改、解密或解码,而不改变原始文件。
- 支持导入/导出Base64、IPS补丁、Markdown报告及多种编程语言的数组。
5. 高级搜索与分析
- 数据搜索:支持字符串提取、序列搜索(忽略大小写)、正则表达式、二进制模式(含通配符)以及按数值范围搜索。
- 数据哈希:集成大量哈希算法(CRC系列、MD5、SHA系列、XXHash、Blake2等),可对文件区域或任意字符串计算哈希。
- 数据差异比较:可比较不同数据源的数据,并高亮显示差异。
- 数据可视化分析:提供基于文件魔数的解析器、字节分布图、熵图,并能检测加密/压缩文件。
- YARA规则支持:可扫描文件漏洞,并高亮显示匹配项。
6. 集成工具
- 反汇编器:支持所有Capstone架构(如ARM、x86、MIPS、RISC-V、PowerPC等)。
- 书签:支持带名称、颜色的书签,可快速跳转、添加注释。
- 实用工具集:包含多种工具,如名称修饰解析器、ASCII表、正则替换器、计算器、图形计算器、颜色选择器、进制转换、文件拆分/合并/碎纸、IEEE754浮点数可视化、TCP客户端/服务器、HTTP请求等。
7. 扩展性与易用性
- 内置内容更新器:可直接下载数据库中的模式文件、库、魔数文件等资源。
- 易于上手:支持多语言、为新手提供简化模式、有详尽文档、示例文件和交互式教程。
技术细节
- 模式语言:拥有独立的语法和文档,其数据库(包含格式模式、库等)托管在GitHub仓库。
- 系统要求:
- 操作系统:Windows 7+,macOS Sequoia+(官方二进制文件),现代Linux(提供多种发行版官方包),FreeBSD。
- 硬件:需要支持OpenGL 3.0的GPU(有无GPU的软件渲染版本可选)。CPU支持x86、AMD64、ARM64等小端架构。内存建议50MB以上,存储空间约100MB。
- 编译与安装:需要支持C++23的GCC或Clang编译器,MSVC和AppleClang不受支持。提供了详细的安装和编译指南。
- 插件开发:提供了插件模板和SDK,允许开发者扩展ImHex功能。可通过构建ImHex或使用GitHub Actions获取SDK。
许可与支持
- 许可证:主体采用GPLv2,但
libimhex和ui插件库采用LGPLv2.1,以允许开发专有插件。 - 代码签名:由SignPath基金会提供免费代码签名。
- 开发与贡献:项目欢迎社区贡献,核心代码推送权由WerWolv等贡献者掌握。项目使用了众多优秀的开源库(如Dear ImGui、Capstone、YARA等)作为依赖。