This GitHub project has garnered 2,500 stars in 5 days and topped the GitHub hot list

foreword

The most popular project on GitHub recently is a vision-friendly hex editor, which has gained 2,500 stars in just 5 days, and has risen by 1,600 stars in the last 24 hours.

A hex editor is a software application for editing single bytes of data, mostly used by programmers or system administrators.

The difference between a regular text editor and a hex editor is that a regular editor represents the logical content of a file, while a hex editor represents the physical content of a file. The hexadecimal editor allows you to view or edit the binary data of the file in hexadecimal form, and edit the binary data with a more friendly interface. It is very popular for users who need to work with binary data, such as using a hex editor to change some settings in the game.

Commonly used hex editors are Bless Hex Editor, GNOME Hex Editor, Okteta, etc. Like most editors, people's requirements for a hex editor include functionality, customizability, and a beautiful interface. Recently, a hexadecimal editor named ImHex has been open sourced on GitHub. It has been online for 5 days and has 2500 stars.

Project address: (see the end of the article)

Hex Editor ImHex

The author of the project first introduced the features implemented by the ImHex editor in the readme file.

feature

  • Hex view
  • byte patch
  • Patch management
  • Copy bytes as features
  • byte
  • hex string
  • C, C++, c#, Rust, Python, Java and JavaScript arrays
  • ASCII-Art Hex View
  • HTML self contained div
  • String and Hex Search
  • Color highlight
  • goto from start, end and current cursor position
  • C++-like custom language for highlighting file content
  • Autoloading based on MIME type
  • Arrays, pointers, structures, unions, enumerations, bit fields, usage declarations, endian support
  • Useful error messages, syntax highlighting and error markers
  • data import
  • Base64 file
  • IPS and IPS32 Patches
  • Data output
  • IPS and IPS32 Patches
  • Data Exporting
  • Data Inspector allows parsing of data into multiple types (little and big endian)
  • Supports and can load large files quickly and efficiently
  • String search
  • copy string
  • copy demangled string
  • file hash support
  • CRC16 and CRC32 with custom initial values ​​and polynomials
  • MD4, MD5
  • SHA-1, SHA-224, SHA-256, SHA-384, SHA-512
  • Disassembler supporting multiple architectures
  • 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
  • custom view
  • area highlighting
  • Notes
  • data analysis
  • file magic based on file parser and MIME type database
  • Byte distribution map
  • entropy map
  • Maximum entropy and average entropy
  • Encrypted/Compressed File Detection
  • Utilities
  • Itanium Japanese MSVC demangler
  • ASCII table
  • Regular Expression Replacement
  • Mathematical Expression Evaluator (Calculator)
  • hex color picker
  • Built-in cheat sheets for pattern language and math assessments
  • Retina friendly for late night use

Beautiful interface

Each editor has its own style, and more and more developers prefer the interface style with black background and colored highlights. ImHex is like this:

compile

Assuming you are using mingw on Windows or Arch Linux, you need a C++20 compatible editor (eg GCC 10.2.0) to compile ImHex. The libraries needed to compile ImHex can be found in the pacman package as follows

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

After installing these libraries, run the following command to build ImHex:

mkdir build
cd build
cmake ..
make -j

The author of the project, WerWolv, is from Switzerland, only 21 years old and an undergraduate student.

finally

Get the source code for free here

insert image description here

Guess you like

Origin blog.csdn.net/m0_48795607/article/details/120444814