一个自由的强大免费的十六进制编辑器,基于 QT C++ 进行开发,作者是寂静的羽夏。

如有 Bug, 欢迎反馈到 Github 上,如果你访问这有困难的话,也可以反馈到 Gitee 上。如果实在不行,可以通过我的 博客园 上公告栏的任意一种联系方式来告诉我。不过我还是希望你反馈到 Github 上方便我写递交注释的。

开源不易,也欢迎赞助或者参与代码和文档贡献,我默认会将您放入鸣谢标签的内容进行鸣谢。

许可证:GNU 通用公共许可证 第 3 版


软件界面


最新发布日志

  该仓库仅提供基于 QT6 的十六进制编辑器安装包,对于 Windows 采用 InnoSetup 安装包。对于 Linux 采用 run 自解压安装文件进行安装,请在终端使用命令行使用 root 权限进行,若要卸载请到/opt/WingHexExlorer2下进入终端使用 root 权限执行uninstall.sh完成卸载。 在 Linux 上,如果你有对应的编译环境,我不推荐使用 run 安装文件方式。 因为为了保证安装包的通用性,我在里面部署了大量的库,包括对应的 glic 和 ld-linux和对可执行文件做了patch,让文件总体积膨胀,这是一个很不划算的事情。建议使用mkinstaller下的pyscript进行安装。

  本软件不会以任何理由主动向你收取费用,你通过下载渠道给的费用一分钱也不会到我这里,请注意。

  如有 Bug ,请到Github或者Gitee提交issue。如果有功能建议,也可以通过issue,不过我更建议 到 Github 的 discussion 区提交

  该工具的定位是对二进制的编辑和分析。欢迎热心的大佬一起共建基础开源工具

  目前只有我一个人开发,我不可能能够把每个功能做好测试,尤其是做 高风险 的操作,点名在 root 权限下操作文件。

  我可能不会对每个 Bug 能够积极响应,不过对大家的建议和需求我会尽可能地尽早回复和评估处理。

  其实v2.0.0我原本打算让内置脚本编辑器使用体验很顺滑,主要是代码auto-complete提示很好用,但由于我精力有限,我只提供了内置公共方法提供了填充支持,对于局部变量类型的支持,我没有做。这个是最麻烦的一件事,首先我得很清楚AngelScript的编译流程。现在我只是懂得了大概,对于类型推断这个还是挺复杂的。更不幸的是,AngelScript的语法树生成、变量类型推断和字节码生成被融合在一块,导致我首先为了效率第一步做的就是只保留语法树生成和变量推断的部分。而它生成的信息不足以我去做auto-complete,我还需要添加一些跟源码绑定的信息才能够正常实现。我甚至为了这件事买了本《编译原理》去研究,但目前项目的热度不足以支持我用爱继续发电把我之前都没做过的这个事情继续做下去。 当然,如果Github上星过800Gitee星过1000倒是可以考虑考虑,不过不要刷,星星数目多了也不给我带来什么物质上的东西,:)。

插件版本兼容性

  软件版本分为三个部分,对插件重点关注中间的数字,也就是次版本号。当数字发生变化时,那说明插件的 API 发生改变,已经不兼容。对于我想要单文件实现插件开发,我目前没有很好的办法做兼容处理,那就先这样。

更新内容

  以下是相对于上一个版本的增强和修复日志:

功能调整

  • 优化编译二进制大小,仅保留主要符号供程序崩溃栈跟踪使用
  • 更换代码编辑组件为我的 WingCodeEdit
  • 回归预览文本功能,内容上限为 1 GB,且支持其他文件类型高亮
  • 更好的代码高亮
  • 修复编辑视图绑定对应的 Hex 视图
  • 更新上游依赖库

已知问题或缺陷

  软件有些是已知问题,由于影响不大且不好解决的或者不提供支持维护的,就会被列到这里面。我不会主动去尝试修复它,因为我只要列到这里面,对于很多问题,我已经做了大量的尝试,但没有很好的解决。如果是上游问题,等上游解决之后,我有时间的时候同步一下就解决了。如果不是,那就等热心大佬 PR 吧。

对于第 3-4 问题,你可以通过非安全的注册方式来实现,但是,你需要很清楚 AngelScript 的通用调用机制,并且确保你对类型的转化和解引用操作都是正确的,确保返回值指针有效性,因为这个模式下不会有任何检查,否则指针会让你飞起来(感兴趣可以阅读WingAngelAPI::script_call相关代码)。

  1. 32 位程序下运行使用如果有问题:不提供支持,但如果解决,可 PR 。
  2. 脚本调试时首次断下或者进入函数需要连续按两下才执行:AngelScript 解释器在调试时似乎首次会连续发送相同的消息,导致处理时有问题,我没研究明白,不太想 workaround 了,等上游解决吧。
  3. 脚本安全注册方式返回值不支持数组和列表:是这样的,这个实现太麻烦了,如果要支持,我只能支持 QVariantList 作为返回值容器,但是,我不一定知道 QVariantList 装的东西是什么,进一步校验和转化也是很麻烦的问题。
  4. 脚本安全注册方式不支持引用:是这样的,实现方式不支持引用,要引用就需要指针,但我没有提供这个机制,反射也反射不出来。
  5. 代码提示做的不够好,没那么完美:是这样的,我并不擅长去做代码智能提示。去做好代码提示是一个团队做的事情,而不是整个软件都需要我去做的。AngelScript 的代码提示相关、词法分析相关的就没有 C++ 实现我可以直接去改的。而自己要去做是一个特别苦的一个差事。YACC 我也不太会,我也不想因为这个而带入大量复杂的库。我觉得只要做好基本的,能好用一点就够了。如果你介意,自己去实现,然后测试很好用之后,然后 PR 给我。
  6. 代码高亮比较一般:原因同5。要想很好的代码高亮就需要对代码进行词法分析,而我不擅长做这个,累了,不打算做了。

后面更新

  我将会根据知名度我会酌情偏向更新文档内容。

  再下一次更新内容根据软件热门程度和开源赞助情况决定,也可能再也不更新了,版本号为2.2.2,准备更新的内容如下,也可能只更新部分:

  • 修复使用发现的 Bug
  • 优化内存占用,我打算如可能优化到 80 MB 左右的占用
  • 支持代码远程调试(允许别的代码编辑器开发调试)
  • 编写代码提示分析器,以提供代码中类、枚举、函数名、变量名以及其他被包含进去的文件的这些东西

更新时间: