羽云十六进制编辑器 WIKI

写在前面

  本页面是对WingHexExplorer2的引导页面,通知用户当前的项目情况,提供帮助文档的指引。软件v2.3.1已在2025/11/02发布,v2.3.2已在2025/11/30发布。欢迎感兴趣的同志来参与和贡献代码。

  目前该项目的 GitHub Pages 已初步上线,后续将逐步完善,该博客将作为国内快速访问的简介入口。

   如果你对该软件感兴趣,欢迎加 QQ 群:795491946 ,我会尽快审核通过,请注意遵守群规。

v2.3.0 发现了保存文件能使程序卡死和原文件内容丢失的恶性 Bug,请使用者规避保存功能,请不要使用该版本的软件进行保存。请对自己的数据负责!!!

简介

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

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

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

  许可证:AGPL-3.0

  该软件经过长时间的迭代,目前成为了一个高自定义性、功能强大的十六进制编辑器。它具有以下功能特点:

  • 基础的十六进制编辑查看编辑功能
  • 支持打开 TB 级别的超大文件 (仅 64 位程序)
  • 支持 标注(颜色标记、书签标记) ,且可以保存为工程文件以下次打开
  • 自由定义布局、保存和导出自己常用布局自由切换 不同布局用于不同分析目的
  • 支持 克隆编辑 ,在 同一时刻对同一个文件 对不同的地方进行浏览和编辑
  • 现代的 Ribbon 菜单 ,方便醒目的找到自己想要的功能
  • 十六进制视图自由缩放(Ctrl+滚轮),对标题、地址栏和解码字符串栏可以自由显示和隐藏
  • 对常见的数据类型进行实时解码
  • 支持校验和计算
  • 极速查找字节和字符串
  • 友好的标注可视化
  • 多选区支持 (按住 Shift 会增加选区,Alt 会裁剪选区。在含有多个选区的情况下,不按住任何键拖放的选区会在鼠标释放按键之后消失。按住 Ctrl 选区会取消原有的选择的内容,同时按住 Shift 和 Alt 视为 Ctrl 的操作)
  • 强大的脚本系统 ,用于批量分析二进制数据(AngelScript)
  • 强大的插件系统 ,实现对软件的较高自由度定制和增强,并提供组件注册和基础的脚本系统函数绑定
  • 内置脚本编辑器 ,自带语言服务器,提供代码填充和调试功能,并且支持代码格式化
  • 内置暗黑和浅色主题

最新发布日志

  该仓库仅提供基于 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 发生改变,已经不兼容。

更新内容

  本次更新版本号为2.3.2,包含少量的 Bug 修复和一些小功能调整优化,下面是更新日志:

  • 【严重】修复使用克隆页保存转为工作区之后关闭崩溃
  • 【中等】修复插件系统错误的文档状态的实现
  • 【中等】修复优化 WingEditorViewWidget 相关内容
  • 【中等】修复十六进制编辑视图组件无法调用服务的问题
  • 【调整】为十六进制编辑视图增加了交互提示图标
  • 【调整】现在鼠标的 XButton 、Ctrl + 左右方向键 、 在标签页上按住 Ctrl 键 + 鼠标滚轮 都可以很方便的切换十六进制的编辑视图
  • 【调整】优化书签的可视化显示
  • 【调整】脚本管理允许更好的语言本地化以及图标自定义
  • 【调整】处理非需调试脚本在执行每行代码过度让出时间片处理主程序的事件(在 Release 版本下没啥问题,但是在 Win 的 Debug 模式下,会导致脚本几乎不执行),调整为至少为 50 ms 会触发主程序的事件处理以提供随时中断脚本的能力
  • 【调整】移除脚本只执行但不显示额外信息的打扰
  • 【调整】移除代码填充光标字符串检测的 workaround,因 angel-lsp 已经修复了问题
  • 【调整】所有和该主项目和插件代码编译相关的宏前面都带有WINGHEX_前缀
  • 【调整】启用 QT 中的一些编译选项保证代码安全性和可维护性
  • 【调整】废弃插件监视器插件(感觉没啥用)
  • 【调整】修复 Qt-Advanced-Docking-System 在 wayland 下 dock 拖拽不可用问题,目前该软件在 wayland 下可以完全不依赖 xwayland 运行
  • 【调整】新增脚本对象 url,是 QUrl 的简单绑定
  • 【调整】currentDocFile 目前返回值类型为 QUrl,如果获取字符串类型请调用 currentDocFileName,新增获取工作区文件路径的 API

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

已知问题或缺陷

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

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

  1. 32 位程序下运行使用如果有问题:不提供支持,但如果解决,可 PR 。
  2. 脚本安全注册方式返回值不支持数组和列表:是这样的,这个实现太麻烦了,如果要支持,我只能支持 QVariantList 作为返回值容器,但是,我不一定知道 QVariantList 装的东西是什么,进一步校验和转化也是很麻烦的问题。
  3. 脚本安全注册方式不支持引用:是这样的,实现方式不支持引用,要引用就需要指针,但我没有提供这个机制,反射也反射不出来。

后面更新

  我将会根据知名度我会酌情偏向更新文档内容(目前没啥知名度和赞助,暂停)。

  下一次含有功能更新版本号为2.3.11,该更新内容的完成度将会与用户量和赞助密切相关,但以下内容可能不会完全实现(目前没啥知名度和赞助,不实现):

  • 更加充分支持 angel-lsp 的功能,而不是仅仅代码填充和报错诊断
  • 实现脚本的帮助系统
  • 调试器支持 DAP ?

FAQ

  1. 为啥不在搜索结果增加筛选排列功能(其他表格类控件同理):
    答:功能很好,但是在数据量很大的情况下,很卡,但我没有精力和经验来处理这个事情。

  2. 该软件和 WingHexExplorer 有什么区别,我还可以继续使用 WingHexExplorer 这个软件吗?
    答:新版软件具有更强大的布局组件、跨平台和 UI 统一性。功能上自带 AngelScript 脚本引擎,相比于 Python 可能会有更好的 API 兼容性和速度(未测试),并且可以具有更好的 API 权限管控,会更安全一些。还有它更擅长处理多文件编辑,你可以对同一个文件同时在不同位置进行预览/编辑,这就是“克隆”功能。十六进制编辑器还增加了 Ctrl + 鼠标滚轮原生缩放支持。该软件对任意编辑中的文件窗体隐藏,哈希值计算,对书签更好的可视化以及标记的可视化和更好的插件支持,以及进一步的 Bug 修复。在 v2.0.0 规划完成发布之后,还会有深度配合的代码编辑器和调试器,正好是一个小型的 AngelScript IDE。这些都是 WingHexExplorer 软件所不具备的功能,这里还有很多小细节没说,这个软件会更加专业,也会更加好用。
    WingHexExplorer 这个软件仍旧是能用的,但还是有点小 Bug,只要你不是深度使用是不会有问题的,比如预览和简单的编辑普通文件。但它有 Bug,我也不会去修了。

  3. 该软件和 WingHexExplorer 兼容吗?
    答:项目文件是可以兼容的,但插件还是按照老约定,采用不兼容处理,因为变化太大了。

版本规划

  当收到的指定赞助金额满足一定程度来开发以下列出的功能时,我将主动花费我的业余时间来完成这件事情。当然 PR 也是可以算作“赞助内容”,毕竟是贡献代码,以下所有的功能都接受 PR 。如果你想要通过赞助金额来支持该项目来开发功能的话,请注明备注该任务名称,我将会在该篇日志更新,金额达到之后就开始进入排队开发。如果注明仅 PR 的,则不接受金额赞助开发。一旦受赞助的功能开始开发,原则上不退款。这些赞助内容将会以 AGPL-3.0 开源发布。 目前考虑到的内容如下:

  1. 尝试增加 AngelScript 对 QT 用户界面组件的绑定尝试,可以通过脚本实现插件。(若指明赞助该功能 450 RMB,增加窗体、标签、按钮、文本框支持,其他暂不支持,除非 PR)
  2. 为脚本解释器增加 JIT。(目前仅 PR)
  3. 更多的 AngelScript 脚本模块标准库。(仅 PR)
  4. 外部可自定义主题以及可更换图标。(100 RMB)
  5. 该软件提供的 AngelScript addon 提供完全的 Generic Call 支持。(100 RMB)
  6. 插件注册脚本函数更强大的类型支持。(200 RMB)
  7. 脚本编辑器的代码片段管理器支持。(100 RMB)

  当然也可以通过赞助来让我开发插件,插件可以选择开源和闭源,但如果赞助低于 500 RMB的,插件仅可选择开源,但可以自选开源基金会认可的开源协议。

帮助文档

  目前推荐 Github,不过目前仍处于编辑开发状态,还是不全。Gitee 我也同步上去了,但是,若图显示不出来,请启用Github加速工具(比如Watt ToolKit或者devSideCar等),因为图片链接来源于Github

发行版下载

  Github: https://github.com/Wing-summer/WingHexExplorer2/releases

  Gitee: https://gitee.com/wing-cloud/WingHexExplorer2/releases

posted @ 2024-07-05 18:33  寂静的羽夏  阅读(850)  评论(0)    收藏  举报