Fhex全功能十六进制编辑器
Fhex 是一款全功能的十六进制编辑器,兼容 Linux/Windows/MacOS 。
Fhex 诞生的目的是开发一个轻量级但有用的工具,因为现有的十六进制编辑器有一些不同的局限性(例如依赖性太多,缺少十六进制着色功能等)。
该项目基于 qhexedit2、capstone 和 keystone 引擎。
特征
- 块加载器 - 用于仅加载大文件的一部分而不会耗尽内存(使用 alt + 左/右箭头在块之间移动)。请注意,在块模式下,所有操作(例如搜索)仅适用于当前块,除了文件保存(保存整个文件)。但是,每次编辑一个块时,请在移动到另一个块之前保存它,否则将丢失更改。
- 搜索和替换(支持 UTF-8、十六进制、正则表达式、反向搜索)[
CTRL + F
] - 彩色输出(空格、ASCII 字符、0xFF、UTF-8 和 NULL 字节有不同的颜色)
- 将选定的字节解释为整数、长整型、无符号长整型 [
CTRL + B
] - 复制并粘贴 [
CTRL + C
和CTRL + V
] - 复制选定的 unicode 字符 [
CTRL + Space
] - 将所有选定字节 [
Delete
或CTRL + D
]归零 - 撤消和重做 [
CTRL + Z
和CTRL + Y
] - 拖放(提示:拖放两个文件以区分它们)
- 覆盖同一个文件或创建一个新文件 [
CTRL + S
] - 转到偏移量 [
CTRL + G
] - 支持插入模式以插入新字节而不是覆盖现有字节 [
INS
] - 创建新实例 [
CTRL + N
] - 所选文本的基本文本查看器 [
CTRL + T
] - 重新加载当前文件 [
F5
] - 在字节级别比较两个不同的文件
- 可浏览的二进制图表(详见后文)[
F1
] - 十六进制 - 十进制数转换器 [
F2
] - 十六进制字符串转义符(例如从 010203 到 \x01\x02\x03)[
F3
] - 模式匹配引擎(详见后文)
- 基于 Capstone Engine [
F4
]的分解器 - 基于 Keystone 引擎的汇编程序 [
F4
] - 缩小/放大字节视图(
CTRL + Up/Down
或CTRL + -/+
)
模式匹配引擎
Fhex 可以在启动时加载 JSON 格式的配置文件(来自~/fhex/config.json
),其中包含要突出显示的字符串或字节列表以及要在匹配项附近添加的注释/标签。
例子:
{
"PatternMatching":
[
{
"string" : "://www.",
"color" : "rgba(250,200,200,50)",
"message" : "Found url"
},
{
"bytes" : "414243",
"color" : "rgba(250,200,200,50)",
"message" : "Found ABC"
}
]
}
要激活模式匹配,请按CTRL + P
。
最后,Fhex 还会显示一个包含所有结果引用的偏移量列表。 注意:只有在窗口最大化时才会添加带有注释的标签,如果标签显示不正确,请尝试再次运行模式匹配。
二元图
Fhex 具有对加载的二进制文件进行图表化的功能(注意:为了编译工程,现在您还需要qt5-charts
在系统上安装)。y 轴范围在 0 到 255 之间(十六进制 0x0 和 0xff,即字节值)。x 轴范围介于 0 和文件大小之间。
该图表绘制了二进制文件的字节值,让您只关注相关部分。例如,如果在一个二进制文件中有一个充满空字节的区域,可以很容易地从图表中检测到它。
汇编
该项目具有以下依赖项:qt5-charts(包:debian/ubuntu 中的 libqt5charts5-dev)、capstone(可选)和 keystone(可选)。在 linux 上,你可以检查你是否有强制库ldconfig -p | grep -i qt5charts
默认情况下,Fhex 是使用 MINIMAL 配置文件编译的,这意味着它不包括 capstone 和 keystone。可以更改此选项,从中删除相关行fhex.pro
。
为了在 Linux 上构建 Fhex,请执行以下命令:
mkdir build cd build qmake .. make -j$(nproc)