來源:機器之心
本文約1200字,建議閱讀5分鐘
本文爲你介紹 GitHub 上最火的項目:十六進制編輯器。
最近在 GitHub 上最火的項目是一個對視力友好的十六進制編輯器,它上線僅 5 天就收穫了 2500 star,最近 24 小時漲了 1600 star 量。
十六進制編輯器是用於編輯單個字節數據的軟件應用程序,主要由程序員或系統管理員使用。
常規文本編輯器和十六進制編輯器之間的區別在於常規編輯器表示文件的邏輯內容,而十六進制編輯器表示文件的物理內容。十六進制編輯器可以讓你以十六進制的形式查看或編輯文件的二進制數據,並用較爲友好的界面來編輯二進制數據。對於需要處理二進制數據的用戶,它非常受歡迎,例如使用十六進制編輯器可以更改遊戲中的部分設置。
常用的十六進制編輯器有 Bless Hex Editor、GNOME Hex Editor、Okteta 等。和大多數編輯器一樣,人們對於十六進制編輯器的要求包括功能強大、可定製性、界面美觀。近日,GitHub 上開源了一款名爲 ImHex 的十六進制編輯器,上線 5 天,狂攬 2500 star。
項目地址:
https://github.com/WerWolv/ImHex
十六進制編輯器 ImHex
項目作者在 readme 文件中首先介紹了 ImHex 編輯器實現的功能特性。
特徵
十六進制視圖
字節補丁
補丁管理
複製字節作爲特徵
字節
十六進制字符串
C、C++、 c#、 Rust、Python、Java 和 JavaScript 數組
ASCII-Art 十六進制視圖
HTML 自包含 div
字符串和十六進制搜索
彩色高亮顯示
從開始、結束以及當前光標位置 goto
類似於 C++ 的自定義語言,用於突出顯示文件內容
基於 MIME 類型的自動加載
數組、指針、結構,共用體,枚舉,位段,使用聲明,大小端支持
有用的 error 信息,語法高亮顯示和 error 標記
數據導入
Base64 文件
IPS 和 IPS32 補丁
數據導出
IPS 和 IPS32 補丁
數據 Exporting
數據檢查器允許將數據解析爲多種類型(小端和大端)
支持並能快速有效地加載大型文件
字符串搜索
複製字符串
複製 demangled 字符串
文件哈希支持
具有自定義初始值和多項式的 CRC16 和 CRC32
MD4, MD5
SHA-1, SHA-224, SHA-256, SHA-384, SHA-512
支持多種架構的反彙編器
ARM32 (ARM, Thumb, Cortex-M, aarch32)
ARM64
MIPS (MIPS32, MIPS64, MIPS32R6, Micro)
x86 (16 bit, 32 bit, 64 bit)
PowerPC (32 bit, 64 bit)
Sparc
SystemZ
XCore
M68K
TMS320C64X
M680X
Ethereum
自定義視圖
區域突出顯示
註釋
數據分析
基於文件解析器和 MIME 類型的數據庫的 file magic
字節分佈圖
熵圖
最大熵和平均熵
加密 / 壓縮文件檢測
實用工具
Itanium 和 MSVC demangler
ASCII 表
正則表達式替換
數學表達式評估器(計算器)
十六進制顏色選擇器
爲模式語言和數學評估內置速查表
在深夜使用時對視網膜友好
界面美觀
每款編輯器都有自己的風格,越來越多的開發者青睞於黑色背景、彩色高亮顯示的界面風格,ImHex 就是如此:
編譯
假設你在 Windows 或者 Arch Linux 中使用 mingw,需要兼容 C++20 的編輯器(例如 GCC 10.2.0)來編譯 ImHex。編譯 ImHex 需要的庫都可以在 pacman 包中找到,如下所示
GLFW3 ( (sudo) pacman -S glfw )
libmagic, libgnurx, libtre, libintl, libiconv ( (sudo) pacman -S file )
libcrypto ( (sudo) pacman -S openssl )
capstone ( (sudo) pacman -S capstone )
libLLVMDemangle ( (sudo) pacman -S llvm llvm-libs )
nlohmann json ( (sudo) pacman -S nlohmann-json )
Python3 ( (sudo) pacman -S python3 )
All in one for Arch Linux: sudo pacman -S glfw file openssl capstone llvm llvm-libs nlohmann-json python3
All in one for Fedora: sudo dnf install cmake gcc-c++ capstone-devel glfw-devel glm-devel json-devel llvm-devel mesa-libGL-devel openssl-devel python-devel
All in one for MinGW: pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-cmake mingw-w64-x86_64-make mingw-w64-x86_64-capstone mingw-w64-x86_64-glfw mingw-w64-x86_64-glm mingw-w64-x86_64-file mingw-w64-x86_64-llvm mingw-w64-x86_64-nlohmann-json mingw-w64-x86_64-openssl mingw-w64-x86_64-polly mingw-w64-x86_64-pytho
安裝完這些庫之後,運行以下命令來構建 ImHex:
mkdir build
cd build
cmake ..
make -j
該項目的作者 WerWolv 來自瑞士,今年僅 21 歲,是一名在讀本科生。
參考鏈接:
https://zhuanlan.zhihu.com/p/59119723
https://www.howtoing.com/best-hex-editors-for-linux
編輯:於騰凱
校對:林亦霖