需要一个适用于Linux的好用十六进制编辑器。

386
我需要一个适用于Linux的好的十六进制编辑器,所谓好的是指它具有以下特点:
  • 快速
  • 拥有搜索/替换功能
  • 可以展示数据不只是十六进制,还包括二进制、八进制等
  • 可以处理巨大( > 1GB)的文件而不会变得缓慢和无响应(这一点很重要)
  • 可选择地,拥有比较/差异化功能
你有什么建议吗?

21
针对Ubuntu系统,推荐使用jeex(GTK)或者okteta(KDE)这两个工具,但是okteta更为出色。 - Janus Troelsen
48
很高兴看到这样的问题被关闭后并没有被删除,而是可以继续接受投票。这样我就能看到我想要的问答格式,而不是在其他网站上阅读一堆无用的论坛。 - Tyler Collier
1
我在Linux上使用http://www.sweetscape.com/010editor/。虽然不是免费的,但物有所值(无关联)。 - kervin
23
关闭该帖子是令人惊讶的。如果将重点放在“程序员常用的软件工具”上,那么这个帖子就符合主题了(而“独特于软件开发”的要求只是一个愚蠢的要求……没有什么是独特于软件开发的。例如,我可以使用C编译器进行硬件基准测试)。十六进制编辑器对于编程很有用,例如二进制协议和文件格式以及制作磁盘实用程序,特别是用于数据恢复。在我的案例中,我正要编写一个Python程序来查找丢失的NTFS分区(因为TestDisk使用CHS失败了……WTF),并且想要先在十六进制编辑器中查看良好分区的“神奇”之处。 - Peter
6
关闭这个规则的做法很愚蠢。推荐使用开源工具来协助我们的工作,绝不是离题的内容。 - Juan Jimenez
显示剩余8条评论
4个回答

298

Bless是一款高质量、功能齐全的十六进制编辑器。

它采用mono/Gtk#编写,主要适用于GNU/Linux平台。但是可以在任何支持mono和Gtk#的平台上无问题运行。

Bless目前提供以下功能:

  • 高效编辑大型数据文件和块设备。
  • 多级撤消-重做操作。
  • 可自定义的数据视图。
  • 快速的屏幕数据渲染。
  • 多标签页。
  • 快速的查找和替换操作。
  • 数据转换表。
  • 高级复制/粘贴功能。
  • 突出显示文件中选择模式匹配项。
  • 基于插件的架构。
  • 将数据导出为文本和HTML(使用插件还可导出其他格式)。
  • 对数据执行位运算。
  • 全面的用户手册。

wxHexEditor是另一个免费的十六进制编辑器,主要因为Linux系统没有好用的十六进制编辑器,尤其是针对大文件而建立的。

  • 它使用64位文件描述符(支持文件或设备大小达到2^64字节,意味着几个EB,但目前只测试过1 PB的文件)。
  • 它不会将整个文件复制到RAM中,因此速度非常快,可以打开大小为数GB < TB < PB < EB的文件。
  • 可在Linux、Windows或MacOSX上打开设备。
  • 内存用量:当前为约10 MB,同时打开多个> ~8GB的文件。
  • 可以通过XOR加密进行操作。
  • 使用C++/wxWidgets GUI库编写,并可作为本机应用程序在其他操作系统上使用,如Mac OS和Windows。
  • 您可以使用它复制/编辑磁盘、硬盘驱动器扇区(手动救援文件/分区时很有用)。
  • 你可以在不创建临时文件的情况下多次删除/插入文件字节。
  • DHEX 不仅仅是另一个十六进制编辑器:它包括一种差异模式,可用于方便地比较两个二进制文件。由于它基于ncurses并支持主题设置,因此可以运行在任何数量的系统和场景中。通过利用搜索日志记录,可以轻松跟踪不同迭代文件的更改。 维基百科文章

    您可以在Linux上进行排序,以查找更多信息: http://en.wikipedia.org/wiki/Comparison_of_hex_editors


    4
    如何在 DHEX 中删除或添加字节? - Steven Lu
    2
    我为了编辑小的二进制文件而使用了 xxd -r。如果你在使用 OS X 操作系统,HexFiend 是一个非常好的选择。(我正在编辑一个包含密码的文件,所以我不想通过网络复制它) - Steven Lu
    2
    wxHexEditor在0.22版本仍存在严重的可用性问题/限制,但似乎仍是最好的一个。 - Aquarius Power
    1
    如果您决定使用wxHexEditor,请小心。文件十六进制差异工具无法正常工作(跳过某些差异)。我因此浪费了不少时间。 - Ivan Š
    4
    抱歉,Bless现在对我来说无法使用。存在一个严重的错误,不允许在应用程序内覆盖文件。请寻找其他替代品。 - ross
    显示剩余9条评论

    153

    我是一名VIM使用者。我可以使用以下命令进行罕见的十六进制编辑:

    • :%!xxd进入Hex模式

    • :%!xxd -r退出Hex模式

    但是我强烈推荐使用ht

    apt-cache show ht
    
    Package: ht
    Version: 2.0.18-1
    Installed-Size: 1780
    Maintainer: Alexander Reichle-Schmehl <tolimar@debian.org>
    

    首页:http://hte.sourceforge.net/

    注意:软件包名为ht,但安装后可执行文件名为hte

    1. 支持的文件格式:
      • 常见对象文件格式(COFF/XCOFF32)
      • 可执行和可链接格式(ELF)
      • 线性可执行文件(LE)
      • 标准DOS可执行文件(MZ)
      • 新可执行文件(NE)
      • 便携式可执行文件(PE32/PE64)
      • Java类文件(CLASS)
      • Mach exe/link格式(MachO)
      • X-Box可执行文件(XBE)
      • Flat(FLT)
      • PowerPC可执行文件格式(PEF)
    2. 代码和数据分析器
      • 递归查找分支源和目的地
      • 查找过程入口
      • 基于此信息创建标签
      • 创建交叉引用信息
      • 允许交互式地分析未开发的代码
      • 允许创建/重命名/删除标签
      • 允许创建/编辑注释
      • 支持x86、ia64、alpha、ppc和java代码
    3. 目标系统:
      • DJGPP
      • GNU/Linux
      • FreeBSD
      • OpenBSD
      • Win32

    4
    我喜欢Vi命令!我曾试图安装ht,但却陷入了一堆TeX依赖问题。最后使用了“shed”。 - Krista K
    10
    安装 ht: sudo apt-get install ht。运行:hte <file> 注意末尾的 e!hte 而不是 ht。我不知道为什么该软件包不能也叫做 hte。 - overthink
    可能是因为tex4ht包的ht问题。 - Ciro Santilli OurBigBook.com
    2
    使用vim + xxd时,不要忘记:set binary!否则,vim会在文件末尾添加一个行终止符,这很有可能会破坏该文件(而且确实会发生)。二进制模式可以确保vim不会添加行终止符。另外,你可以使用:set ff=[unix/mac/dos]在unix/max/windows之间更改文件格式,以确保vim使用目标系统的正确行结尾。 - Braden Best
    如果您计划添加/删除字节,请考虑使用“xxd -p”和“xxd -r -p”。 “-p”选项禁用地址前缀和ASCII预览,仅保留原始十六进制字节。 - Denilson Sá Maia

    16

    就我个人而言,我使用带有hexl模式的Emacs。

    Emacs能够处理非常大的文件。您可以轻松地使用搜索/替换功能。最后,您可以使用 'ediff' 进行一些差异比较。


    有没有非Emacs的编辑器?我知道如何使用xxd/vim组合,但有时可能会很烦人。 - Marcin

    10

    wxHexEditor是Linux唯一的GUI磁盘编辑器。要下载安装文件,请在Google中搜索“wxhexeditor site:archive.getdeb.net”,然后下载.deb文件。


    我尝试在Ubuntu 14上安装,但非常困难,而且仍然失败了。 - Yan King Yin
    @Yan King Yin,试试Bless Hex编辑器吧,它非常适合编辑二进制文件。 - diyism
    2
    谢谢,但我现在正在使用Okteta,它目前满足了我的需求... - Yan King Yin
    在Ubuntu上安装,搜索“wxhexeditor ppa”,这应该会给你https://launchpad.net/ubuntu/+source/wxhexeditor。 - Mikko Rantalainen
    1
    要在Ubuntu上安装,请尝试使用命令sudo apt-get install wxhexeditor - empty

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接