Fhex全功能十六進(jìn)制編輯器
Fhex 是一款全功能的十六進(jìn)制編輯器,兼容 Linux/Windows/MacOS 。
Fhex 誕生的目的是開(kāi)發(fā)一個(gè)輕量級(jí)但有用的工具,因?yàn)楝F(xiàn)有的十六進(jìn)制編輯器有一些不同的局限性(例如依賴(lài)性太多,缺少十六進(jìn)制著色功能等)。
該項(xiàng)目基于 qhexedit2、capstone 和 keystone 引擎。
特征
- 塊加載器 - 用于僅加載大文件的一部分而不會(huì)耗盡內(nèi)存(使用 alt + 左/右箭頭在塊之間移動(dòng))。請(qǐng)注意,在塊模式下,所有操作(例如搜索)僅適用于當(dāng)前塊,除了文件保存(保存整個(gè)文件)。但是,每次編輯一個(gè)塊時(shí),請(qǐng)?jiān)谝苿?dòng)到另一個(gè)塊之前保存它,否則將丟失更改。
- 搜索和替換(支持 UTF-8、十六進(jìn)制、正則表達(dá)式、反向搜索)[
CTRL + F] - 彩色輸出(空格、ASCII 字符、0xFF、UTF-8 和 NULL 字節(jié)有不同的顏色)
- 將選定的字節(jié)解釋為整數(shù)、長(zhǎng)整型、無(wú)符號(hào)長(zhǎng)整型 [
CTRL + B] - 復(fù)制并粘貼 [
CTRL + C和CTRL + V] - 復(fù)制選定的 unicode 字符 [
CTRL + Space] - 將所有選定字節(jié) [
Delete或CTRL + D]歸零 - 撤消和重做 [
CTRL + Z和CTRL + Y] - 拖放(提示:拖放兩個(gè)文件以區(qū)分它們)
- 覆蓋同一個(gè)文件或創(chuàng)建一個(gè)新文件 [
CTRL + S] - 轉(zhuǎn)到偏移量 [
CTRL + G] - 支持插入模式以插入新字節(jié)而不是覆蓋現(xiàn)有字節(jié) [
INS] - 創(chuàng)建新實(shí)例 [
CTRL + N] - 所選文本的基本文本查看器 [
CTRL + T] - 重新加載當(dāng)前文件 [
F5] - 在字節(jié)級(jí)別比較兩個(gè)不同的文件
- 可瀏覽的二進(jìn)制圖表(詳見(jiàn)后文)[
F1] - 十六進(jìn)制 - 十進(jìn)制數(shù)轉(zhuǎn)換器 [
F2] - 十六進(jìn)制字符串轉(zhuǎn)義符(例如從 010203 到 \x01\x02\x03)[
F3] - 模式匹配引擎(詳見(jiàn)后文)
- 基于 Capstone Engine [
F4]的分解器 - 基于 Keystone 引擎的匯編程序 [
F4] - 縮小/放大字節(jié)視圖(
CTRL + Up/Down或CTRL + -/+)
模式匹配引擎
Fhex 可以在啟動(dòng)時(shí)加載 JSON 格式的配置文件(來(lái)自~/fhex/config.json),其中包含要突出顯示的字符串或字節(jié)列表以及要在匹配項(xiàng)附近添加的注釋/標(biāo)簽。
例子:
{
"PatternMatching":
[
{
"string" : "://www.",
"color" : "rgba(250,200,200,50)",
"message" : "Found url"
},
{
"bytes" : "414243",
"color" : "rgba(250,200,200,50)",
"message" : "Found ABC"
}
]
}
要激活模式匹配,請(qǐng)按CTRL + P 。
最后,F(xiàn)hex 還會(huì)顯示一個(gè)包含所有結(jié)果引用的偏移量列表。 注意:只有在窗口最大化時(shí)才會(huì)添加帶有注釋的標(biāo)簽,如果標(biāo)簽顯示不正確,請(qǐng)嘗試再次運(yùn)行模式匹配。
二元圖
Fhex 具有對(duì)加載的二進(jìn)制文件進(jìn)行圖表化的功能(注意:為了編譯工程,現(xiàn)在您還需要qt5-charts在系統(tǒng)上安裝)。y 軸范圍在 0 到 255 之間(十六進(jìn)制 0x0 和 0xff,即字節(jié)值)。x 軸范圍介于 0 和文件大小之間。
該圖表繪制了二進(jìn)制文件的字節(jié)值,讓您只關(guān)注相關(guān)部分。例如,如果在一個(gè)二進(jìn)制文件中有一個(gè)充滿空字節(jié)的區(qū)域,可以很容易地從圖表中檢測(cè)到它。
匯編
該項(xiàng)目具有以下依賴(lài)項(xiàng):qt5-charts(包:debian/ubuntu 中的 libqt5charts5-dev)、capstone(可選)和 keystone(可選)。在 linux 上,你可以檢查你是否有強(qiáng)制庫(kù)ldconfig -p | grep -i qt5charts
默認(rèn)情況下,F(xiàn)hex 是使用 MINIMAL 配置文件編譯的,這意味著它不包括 capstone 和 keystone??梢愿拇诉x項(xiàng),從中刪除相關(guān)行fhex.pro。
為了在 Linux 上構(gòu)建 Fhex,請(qǐng)執(zhí)行以下命令:
mkdir build cd build qmake .. make -j$(nproc)
