当前位置: 首页 > 编程笔记 >

21 岁理工男开源的这个编辑器火遍全球附面试资源

桑鸿志
2023-03-14
本文向大家介绍21 岁理工男开源的这个编辑器火遍全球附面试资源,包括了21 岁理工男开源的这个编辑器火遍全球附面试资源的使用技巧和注意事项,需要的朋友参考一下

来自:机器之心

最近在 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-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 岁理工男开源的这个编辑器火遍全球的文章就介绍到这了,更多相关开源编辑器内容请搜索小牛知识库以前的文章或继续浏览下面的相关文章希望大家以后多多支持小牛知识库!

 类似资料:
  • 简介 Laravel Mix 提供了简介且可读性高的 API,用于使用几个常见的 CSS 和 JavaScript 预处理器为应用定义 Webpack 构建步骤。可以通过简单链式调用来定义资源的编译。例如: mix.js('resources/assets/js/app.js', 'public/js') .sass('resources/assets/sass/app.scss', 'pu

  • Resource Planet 是一款点击、放置、收集资源的游戏。 点击试玩 https://static.oschina.net/trytry/resource-planet/  

  • 我试图完全清理资源组在Azure。 删除资源组不是选项(访问权限:参与者,而不是所有者) 做到这一点的最优雅和明显的方法(也在一些文章中描述)是使用“空”部署模板执行完整的部署: 删除SQL Server开始“...”接受“...”失败“...”开始“...”接受“...”失败“... 你想到主意了。 其他时候效果很好。 您将得到数据库删除的无限循环“开始..接受..失败..开始..接受..失败.

  • 由于某些原因,我无法在Visual Studio 2012中打开测试资源管理器窗口- 此问题可能是由最近卸载 DotCover 引起的。我这样做是因为我的许可证过期了,而且我在没有许可证的情况下运行测试时遇到问题(上下文菜单不起作用)。 任何建议或建议非常感谢! 谢了。

  • 问题内容: 假设我有一个雇员表,其中包含列: 我正在尝试编写SQL查询来检索一个月后将要21岁的所有员工,并且要编写另一个查询以检索当前是21岁的所有员工。 我正在使用Microsoft SQL Server 2008。 问题答案: 我假设你想知道员工 至少 21岁,而不是 正好 21岁。 从现在开始的一个月内: 删除最后使用的今天。

  • 我想知道,当异常发生时,try with resource语句如何在进入catch块之前关闭资源。当异常发生时,执行立即跳转到catch块。因此,try-with-resource实际上关闭了资源。 为了更好地理解它的工作原理,我决定看看编译器是如何实现它的。我编写了下面的代码并对其进行了编译。 输出 然后我访问了www.javadecompilers.com,并在那里试用了反编译程序。两个反编译