一个自由的强大免费的十六进制编辑器,基于 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 能够积极响应,不过对大家的建议和需求我会尽可能地尽早回复和评估处理。

插件版本兼容性

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

更新内容

  该次更新对上一个版本做了大量的 Bug 修复以及功能增强和调整,当然也包含一些破坏性的改动,以下是相对于上一个版本的增强和修复日志:

用户界面

  1. 更加暗黑的黑色主题(仿 KDE 6 的 Breeze 黑色主题风格);
  2. 更加合理的默认布局位置调整;
  3. 新增文件文件撤销堆栈显示,方便用户快速撤销若干个操作;
  4. 新增控制台全局脚本对象可视化,方便初学者更好的了解学习;
  5. 移除对脚本引擎文本的多语言支持;
  6. 设置页设置会自动保存,其他插件设置配置页当前页如果有需要的修改,会有提示保存/应用之后才允许切换到其他页;
  7. 减缓和优化Ribbon工具栏滚动,并对过多项目的工具页面增加了左右方向指示按钮;
  8. 细微调整解决UI渲染小问题;
  9. 将工具栏中日志相关从“视图”移动至“关于”;
  10. 修复恢复布局功能中在有文件编辑窗显示情况下,恢复会丢失和崩溃问题;
  11. 优化一些用户交互;
  12. 新增英语翻译;

十六进制编辑相关

  1. 现在同类型的编辑操作会被合并,不需要频繁撤销;
  2. 对于“数值”、“解码字符串”相关显示采用懒加载策略;
  3. 修复优化一些文件自动加载的问题;
  4. 十六进制编辑区的跳转支持类 C 风格的表达式计算结果,不需要明确知道具体跳转的位置结果输入再跳转,由 antlr4 提供支持;
  5. 修复十六进制编辑区 300% 缩放无效的问题(将上限 200% -> 300%);
  6. 重构十六进制编辑器的后端,现在新建文件大小不会受 2GB 的限制(因升级 Qt6);
  7. 搜索页简化,减少冗余信息显示;
  8. 修复在异步搜索时程序可能会崩溃的问题;
  9. 修复历史记录可能不保存的问题;
  10. 优化和修复相关文档上下文切换的 Bug;
  11. 修复书签修改时可视化窗口不能够及时更新的问题;
  12. 优化搜索结果储存,而不是创建存储一个新的 model;于此同时“校验和”也纳入编辑器的上下文随编辑器切换而切换;
  13. 现在克隆页面也具有独立的搜索结果存储和校验和存储;

脚本功能相关

  1. 脚本代码填充采用 angel-lsp ,提供更好的脚本编辑体验;
  2. 新增脚本静态分析报错,由 angel-lsp 提供支持;
  3. 修复 AngelScript 语法文件高亮字符串不正确的问题;
  4. 更强大的调试变量显示,支持变量多级展示,比如脚本类和数组、字典可以被展开的对象等和分页懒加载;
  5. 更加强大和健壮的调试器(感谢Paril提供的相关代码);
  6. 新增脚本变量监视功能;
  7. 重构脚本预处理器,现在预处理器已经移除对 #define 和 #undef 的支持,对于宏的条件语句有了更好的支持。对于代码编译报错更加准确和清晰;
  8. 更好的代码函数签名显示;
  9. 增强和规范脚本控制台的使用。目前可以对按照约定的声明自动作为全局变量(有点像 Python 的变量声明),并且仅支持块代码的运行,对于类、函数、枚举等定义将会被拒绝执行和报错;
  10. 后台脚本执行时,后台脚本输出会有高亮标签页闪烁提示;
  11. 修复在有选区的情况下可以删除应该被只读的区域;
  12. 增加对被包含脚本调试断点的支持;
  13. 修复内置脚本对象注册因函数签名不规范导致的编译报错;
  14. 修复控制台执行代码包含全局变量并再次引用未释放可能会崩溃的问题;
  15. 新增环境变量读取相关的脚本注册接口;
  16. 弃用原有的文件相关的脚本注册接口(WING_FILE),改用 AngelScript 的 Addon 里的文件相关的脚本注册接口(AS_FILE);
  17. 对脚本 string 的 API 名称改动和错误的注册功能修复;
  18. 移除 promise 的支持,因为没有用;
  19. 实现 print 和 println 真正的多参数支持(AngelScript 上游更新);
  20. 修复脚本调试时首次断下或者进入函数需要连续按两下才执行(AngelScript 上游更新);
  21. 增加 debugger 相关绑定方法;
  22. 修复历史记录可能不保存的问题;

插件系统和开发相关

  1. 指示设置页是否显示的 Ribbon 工具栏相关 API 发生变更,比如注册 Ribbon 工具栏的分类不需要创建类对象,改为使用静态变量;
  2. 插件版本检测已移到插件元数据部分提供;
  3. 新增十六进制编辑区拓展插件,以支持对十六进制编辑器的渲染内容的参与,并且可以获取编辑器的上下文以针对性的执行渲染任务;
  4. 向十六进制编辑区注册的菜单支持编辑器上下文;
  5. 新增一些用于简化开发的辅助函数,比如normalizePackedVector/List 等函数;
  6. 优化插件系统 API 调用表以及对只读含义的API增加 const 修饰;
  7. 废除 Qt5 支持以实现类型安全服务调用;
  8. 新增插件系统管理者插件,开发此插件可以阻止指定插件的加载以及 API 调用;
  9. 脚本对象注册现在由统一的类和接口进行管理,以实现更充分的插件和脚本系统的绑定,比如类绑定、更自由的枚举绑定拓展。但注册失败会导致脚本引擎不可用,请开发者注意代码质量;
  10. 插件可被管理启用状态,默认第三方插件加载被禁用;
  11. 插件不再具有独立的撤销堆栈,而是由每个文档掌控另一个独立的撤销命令栈供所有操作它的插件使用;
  12. 移除了设置插件页内配置页的支持;
  13. 将返回文件句柄的API函数的返回类型由ErrFile 改为int;

其他

  1. 升级 WingCStruct 内置插件,由于 antlr4 ,它具有更强大的语法解析和功能拓展,并且支持 #include 预处理指令以及指明内存对齐关键字 alignas 和 typedef;
  2. 打开 as 脚本文件会优先使用内置脚本编辑器;
  3. 内置脚本编辑器在脚本启用时,软件初始化不会实例化,减少软件启动的时间和内存占用。当脚本编辑器无在编辑的文件时也会被销毁,减少内存占用;
  4. 修复脚本调用因参数类型可能失败的问题和内存泄漏;
  5. 新增环境变量配置功能,现在程序可以通过 config.ini 来实现指定环境变量的注入;
  6. 修复 WING_API 调用带有自定义类型会失败的问题;
  7. 修复“打开当前文件目录”可能会崩溃的问题;
  8. 优化软件相关日志打印,减少干扰和不必要的显示
  9. 新增 DeepWiki 徽章;
  10. 新增 CodeQL 保证代码质量;
  11. 支持 AUR 打包;
  12. 让 pyscript 支持指定安装目录;
  13. Workflow 相关安全性调整;
  14. 跟随更新上游库,对有些库进行定制化和优化处理;

后面更新

  随缘更新,如果发现有 Bug 月更,如果没有充足热度和赞助将停止功能性更新。

更新时间: