1. 程式人生 > 程式設計 >21 歲理工男開源的這個編輯器火遍全球附面試資源

21 歲理工男開源的這個編輯器火遍全球附面試資源

來自:機器之心

最近在 GitHub 上最火的專案是一個對視力友好的十六進位制編輯器,它上線僅 5 天就收穫了 2500 star,最近 24 小時漲了 1600 star 量。

十六進位制編輯器是用於編輯單個位元組資料的軟體應用程式,主要由程式設計師或系統管理員使用。

常規文字編輯器和十六進位制編輯器之間的區別在於常規編輯器表示檔案的邏輯內容,而十六進位制編輯器表示檔案的物理內容。十六進位制編輯器可以讓你以十六進位制的形式檢視或編輯檔案的二進位制資料,並用較為友好的介面來編輯二進位制資料。對於需要處理二進位制資料的使用者,它非常受歡迎,例如使用十六進位制編輯器可以更改遊戲中的部分設定。

常用的十六進位制編輯器有 Bless Hex Editor、GNOME Hex Editor、Okteta 等。和大多數編輯器一樣,人們對於十六進位制編輯器的要求包括功能強大、可定製性、介面美觀。近日,GitHub 上開源了一款名為 ImHex 的十六進位制編輯器,上線 5 天,狂攬 2500 star。

21 歲理工男開源的這個編輯器火遍全球附面試資源

專案地址: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 就是如此:

21 歲理工男開源的這個編輯器火遍全球附面試資源

21 歲理工男開源的這個編輯器火遍全球附面試資源

編譯

假設你在 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-python

安裝完這些庫之後,執行以下命令來構建 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

附:網盤整理面試開發筆記,必看內容。

連結: https://pan.baidu.com/s/11NwCNq4WOWMpUFi9gQHYtQ 提取碼: vsau

到此這篇關於21 歲理工男開源的這個編輯器火遍全球的文章就介紹到這了,更多相關開源編輯器內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!