January 17, 2025

exe逆向神器-ImHex

ImHex-专为逆向工程师、程序员和凌晨 3 点工作的人们提供的十六进制编辑器

github:https://github.com/WerWolv/ImHex

截图

十六进制编辑器、模式和数据信息 书签、反汇编器和数据处理器

更多截图

数据处理器解密一些数据并将其显示为图像用模式语言编写的 STL 解析器,可视化 3D 模型数据信息视图显示有关文件的各种统计信息

特征

特色十六进制视图
  • 字节修补
  • 补丁管理
  • 无限次撤消/重做
  • “将字节复制为...”
    • 字节
    • 十六进制字符串
    • C、C++、C#、Rust、Python、Java 和 JavaScript 数组
    • ASCII-Art 十六进制视图
    • HTML 自包含 div
  • 简单的字符串和十六进制搜索
  • 从开始、结束和当前光标位置跳转
  • 彩色突出显示
    • 可配置前景突出显示规则
    • 使用图案、查找结果和书签突出显示背景
  • 将数据显示为多种不同类型的列表
    • 十六进制整数(8、16、32、64 位)
    • 有符号和无符号十进制整数(8、16、32、64 位)
    • 浮点数(16、32、64 位)
    • RGBA8 颜色
    • 己烯二酰亚胺
    • 二进制
  • 将数据解码为 ASCII 和自定义编码
    • 内置对 UTF-8、UTF-16、ShiftJIS、大多数 Windows 编码等的支持
  • 分页数据视图
自定义类似 C++ 的模式语言,用于解析突出显示文件的内容
  • 根据 MIME 类型和魔法值自动加载
  • 数组、指针、结构、联合、枚举、位域、命名空间、小端和大端支持、条件等等!
  • 有用的错误消息、语法高亮和错误标记
  • 支持可视化多种不同类型的数据
    • 图片
    • 声音的
    • 3D 模型
    • 坐标
    • 时间戳
主题支持
  • 深夜使用不会灼伤你的视网膜
    • 默认为暗色模式,但也提供亮色模式
  • 通过可共享的主题文件可自定义所有 UI 元素的颜色和样式
  • 支持自定义字体
导入和导出数据
  • Base64 文件
  • IPS 和 IPS32 补丁
  • Markdown 报告
数据检查器
  • 将数据解释为多种不同类型的数据,包括字节顺序、十进制、十六进制和八进制支持以及位反转
    • 无符号和有符号整数(8、16、24、32、48、64 位)
    • 浮点数(16、32、64 位)
    • 有符号和无符号 LEB128
    • ASCII、宽字符和 UTF-8 字符和字符串
    • time32_t、time64_t、DOS 日期和时间
    • GUID
    • RGBA8 和 RGB65 颜色
  • 通过检查器复制和修改字节
  • 通过模式语言添加新的数据类型
  • 支持隐藏未使用的行
基于节点的数据预处理器
  • 在十六进制编辑器中显示数据之前对其进行修改、解密和解码
  • 无需接触底层源即可修改数据
  • 支持添加自定义节点
从许多不同的数据源加载数据
  • 本地文件
    • 支持大文件,加载快速高效
  • 原始磁盘
    • 从原始磁盘和分区加载数据
  • GDB 服务器
    • 通过 GDB 访问正在运行的进程或嵌入式设备的 RAM
  • Intel Hex 和摩托罗拉 SREC 数据
  • 进程内存
    • 检查正在运行的进程的整个地址空间
数据搜索
  • 支持搜索整个文件或仅搜索选定内容
  • 字符串提取
    • 指定最小长度和字符集的选项(小写、大写、数字、符号)
    • 指定编码的选项(ASCII、UTF-8、UTF-16 大端和小端)
  • 序列搜索
    • 搜索字节或字符序列
    • 忽略字符大小写的选项
  • 正则表达式搜索
    • 使用正则表达式搜索字符串
  • 二进制模式
    • 使用可选通配符搜索字节序列
  • 数值搜索
    • 搜索有符号/无符号整数和浮点数
    • 搜索值的范围
    • 指定大小和字节顺序的选项
    • 忽略未对齐值的选项
数据哈希支持
  • 有多种不同的算法可供选择
    • 具有自定义初始值和多项式的 CRC8、CRC16 和 CRC32
      • 许多默认多项式可用
    • MD5
    • SHA-1、SHA-224、SHA-256、SHA-384、SHA-512
    • 阿德勒32
    • 美联社
    • 保定市
    • 伯恩斯坦,伯恩斯坦1
    • DEK、DJB、ELF、FNV1、FNV1a、JS、PJW、RS、SDBM
    • 一次一个、旋转、ShiftAndXor、超快速
    • Murmur2_32、MurmurHash3_x86_32、MurmurHash3_x86_128、MurmurHash3_x64_128
    • SipHash64、SipHash128
    • XXHash32,XXHash64
    • 老虎,老虎2
    • Blake2B、Blake2S
  • 对加载数据的特定区域进行哈希处理
  • 任意字符串的哈希计算
差异支持
  • 比较不同数据源的数据
  • 差异突出显示
  • 差异表格视图
集成反汇编器
  • 支持 Capstone 支持的所有架构
    • ARM32(ARM、Thumb、Cortex-M、AArch32)
    • ARM64
    • MIPS(MIPS32、MIPS64、MIPS32R6、Micro)
    • x86(16 位、32 位、64 位)
    • PowerPC(32 位、64 位)
    • 超视距雷达
    • IBM 系统 Z
    • 核心
    • M68K
    • 泰克TMS320C64X
    • M680X
    • 以太坊
    • RISC-V
    • WebAssembly
    • MOS65XX
    • 伯克利包过滤器
书签
  • 支持自定义名称和颜色的书签
  • 在十六进制编辑器中突出显示书签区域
  • 跳至书签
  • 在新标签页中打开书签内容
  • 为书签添加评论
功能强大的数据分析器和可视化工具
  • 基于 File magic 的文件解析器和 MIME 类型数据库
  • 字节类型分布图
  • 熵图
  • 最高和平均熵
  • 加密/压缩文件检测
  • 二线图和分层分布图
YARA 规则支持
  • 使用官方 yara 规则扫描文件以查找漏洞
  • 在十六进制编辑器中突出显示匹配项
  • 跳至比赛
  • 一次应用多个规则
有用的工具
  • 基于 LLVM 的 Itanium、MSVC、Rust 和 D-Lang 解析器
  • ASCII 表
  • 正则表达式替换器
  • 数学表达式求值器(计算器)
  • 图形计算器
  • 支持多种不同格式的十六进制颜色选择器
  • 基转换器
  • 字节交换器
  • UNIX 权限计算器
  • 维基百科术语定义查找器
  • 文件实用程序
    • 文件分割器
    • 文件合并器
    • 文件粉碎机
  • IEEE754 浮点可视化工具
  • 不变乘法计算器
  • TCP 客户端/服务器
  • 欧几里得算法计算器
内置内容更新程序
  • 直接从 ImHex 下载数据库中找到的所有文件
    • 用于解码各种文件格式的模式文件
    • 模式语言库
    • 用于文件类型检测的魔法文件
    • 自定义数据处理器节点
    • 自定义编码
    • 自定义主题
    • Yara 规则
现代界面
  • 支持多个工作区
  • 支持自定义布局
  • 可拆卸窗户
易于上手
  • 支持多种不同的语言
  • 适合初学者的简化模式
  • 详尽的文档
  • 数据库中有许多示例文件
  • 成就引导您了解 ImHex 的功能
  • 交互式教程

模式语言

模式语言是专为 ImHex 开发的完全自定义的编程语言。它允许您以类似 C 的语法定义结构和数据类型,然后使用它们来解析和突出显示文件的内容。

数据库

有关格式模式、库、魔法和常量文件,请查看ImHex-Patterns存储库。

您也可以随意在那里 PR 您自己的文件!

要求

要使用 ImHex,需要满足以下最低系统要求。

重要的

ImHex 通常需要支持 OpenGL 3.0 的 GPU。目前有-NoGPU软件渲染版本(带后缀),不需要 GPU,但这些版本可能比 GPU 加速版本慢很多。

如果可能的话,让 ImHex 使用系统上的专用 GPU,而不是集成 GPU。ImHex 通常也可以在集成 GPU 上正常运行,但 Windows 上的某些 Intel HD GPU 驱动程序已知会导致图形伪影。

安装

有关如何安装 ImHex 的信息,请参阅安装指南

编译

要在任何平台上编译 ImHex,需要支持 C++23 或更高版本的 GCC(或 Clang)。Windows 和 Linux 版本使用最新的 GCC 构建。MacOS 版本使用最新的 LLVM Clang 构建。

值得注意的是,MSVC 和 AppleClang 编译器均不受支持,因为它们都严重过时并且缺少 GCC 和 LLVM Clang 所具有的功能。

笔记

许多依赖项使用子模块捆绑到存储库中,因此请确保使用该--recurse-submodules选项进行克隆。所有未捆绑的依赖项都可以使用/dist文件夹中的依赖项安装程序脚本进行安装。

欲了解更多信息,请参阅编译指南。

贡献

参见贡献

插件开发

要为 ImHex 开发插件,请使用以下模板项目开始。然后,您可以访问整个 libimhex 以及 ImHex API 和内容注册表,以便与 ImHex 交互或添加新内容。

致谢

贡献者

依赖项

执照

ImHex 的大部分内容都遵循 GPLv2 许可证。值得注意的例外是以下部分,它们遵循 LGPLv2.1 许可证:

这样做的原因是为了允许为 ImHex 开发专有插件。

About this Post

This post is written by 杨CC, licensed under CC BY-NC 4.0.

#逆向-exe类