10 天 5 千 Star!21 岁本科生给程序员开发的十六进制编辑器

275 阅读3分钟

【导语】:ImHex 是一款界面美观的十六进制编辑器,主要面向逆向工程师和程序员。如果你喜欢暗黑系编辑器,那它应该是你的菜。

ImHex 最近在 GitHub 上非常火热,上架五天就收获了 2.5k Star,十天 5k Star。

开发者介绍

ImHex 的开发者是 WerWolv,今年 21 岁,是一个瑞士的电子工程本科大二在读学生。他着迷于嵌入式系统,底层编码,ARM 微控制器开发,操作系统以及主机自制软件和定制固件。

项目地址 + 源码

github.com/WerWolv/ImH…

示例图

功能特点

  • 功能性十六进制视图

    • 字节

    • 十六进制字符串

    • C, C++, C#, Rust, Python, Java & JavaScript 数组

    • ASCII-Art十六进制视图

    • HTML 自包含 div

    • 字节修补

    • 补丁管理

    • 字节复制功能

    • 字符串和16进制查找

    • 彩色高亮显示

    • 从开头、尾部以及当前光标位置跳转

  • 自定义类C++模式的语言,用于解析突出显示文件内容

    • 基于 MIME 类型的自动加载

    • 数组、指针、结构,共用体,枚举,位域,使用声明,大小端支持

    • 有用的错误信息,语法高亮和错误标记

  • 数据导入

    • Base64文件

    • IPS 和 IPS32 补丁

  • 数据导出

    • IPS 和 IPS32 补丁
  • 数据检查器允许将数据解析为多种类型(小端和大端)

  • 支持大文件快速、高校载入

  • 字符串查找

    • 字符串复制

    • demangled 字符串复制

  • 支持文件hash

    • 支持自定义初始值和多项式的 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 位, 32 位, 64 位)

    • owerPC (32 bit, 64 bit)

    • Sparc

    • SystemZ

    • XCore

    • M68K

    • TMS320C64X

    • M680X

    • Ethereum

  • 书签

    • 区域突出显示

    • 注释

  • 数据分析

    • 基于文件解析器和 MIME 类型的数据库的文件magic

    • 字节分布图

    • 熵图

    • 最大熵和平均熵

    • 加密 / 压缩文件检测

  • 帮助工具

    • Itanium 和 MSVC demangler

    • ASCII 码表

    • 正则表达式替换

    • 数学表达式求值器(计算器)

    • 十六进制颜色选取器

  • 模式语言和数学计算内置速查表

  • 在深夜使用时不会毁掉你的视网膜

编译

你的编译工具要兼容 C ++ 20,比如GCC 10.2.0。更重要的是,要想编译ImHex,你还需要下列的依赖:

  • GLFW3

  • libmagic, libgnurx, libtre, libintl, libiconv

  • libcrypto

  • capstone

  • libLLVMDemangle

  • nlohmann json

  • Python 3

以上所有的依赖安装脚本,可以在下面的链接中找到,主要支持 Arch Linux、Fedora、 Debian/Ubuntu 和、或 MSYS2 : github.com/WerWolv/ImH…

安装完以上的依赖后,执行如下命令,构建ImHex:

mkdir build  
cd build  
cmake ..  
make -j  

在 macOS 下构建 ImHex,可使用下面的命令:

brew bundle --no-lock --file dist/Brewfile  
mkdir build  
cd build  
CC=$(brew --prefix llvm)/bin/clang CXX=$(brew --prefix llvm)/bin/clang++ PKG_CONFIG_PATH="$(brew --prefix openssl)/lib/pkgconfig":"$(brew --prefix)/lib/pkgconfig" cmake ..  
make -j  

喜欢的朋友,可以试一下。

开源前哨 日常分享热门、有趣和实用的开源项目。参与维护 10万+ Star 的开源技术资源库,包括:Python、Java、C/C++、Go、JS、CSS、Node.js、PHP、.NET 等。