羽云十六进制编辑器 WIKI

写在前面

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

  目前该项目的 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 能够积极响应,不过对大家的建议和需求我会尽可能地尽早回复和评估处理。

更新内容

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

  • 【中等】修复计算完整文件校验和错误,由于计算前未调用seek(0)导致部分计算
  • 【中等】修复脚本运行句柄会泄漏的问题
  • 【轻微】软件的 Toast 消息组件在高分辨率屏幕上会导致最后一个字会被省略掉
  • 【轻微】脚本处于调试状态且被断点断下时,修复添加新的监视不会立即自动计算结果的问题
  • 【轻微】修复对于 pragma 脚本宏命令报错不精准的问题
  • 【轻微】修复树列表显示渲染问题
  • 【调整】新增Crc16Crc32Crc64常见校验和计算
  • 【调整】和十六进制编辑绑定的数据可视化滚动位置将会被记忆和恢复(比如搜索结果、校验和、书签和元数据标记以及字符串解码)
  • 【调整】现在校验和选择框已被优化,方便选择,且会当前未关闭状态下记忆上次的选择
  • 【调整】在计算校验和中,未被计算的选项将会被隐藏
  • 【调整】目前软件自绘标题栏在 Linux 的 x11 和 wayland 上支持右键系统菜单支持(qwindowkit#203,同本软件作者提供实现并合并)
  • 【调整】目前软件自绘标题栏会对窗体失去焦点提供颜色反馈
  • 【调整】脚本增加crypto模块,预编译器提供__WING_CRYPTO__进行检查
  • 【调整】使用 Ninja 作为 CI 编译生成器
  • 【调整】废弃系统脚本头文件 aslib,不再支持 #include <FILE>
  • 【调整】废弃插件目录安全性检查
  • 【调整】优化文件保存功能,当多文件关闭时未保存则统一弹窗提示
  • 【调整】优化编辑器 Tab 的右键菜单
  • 【调整】废弃所有直接新建/打开/关闭十六进制文件相关的插件接口,因为有些接口不完善且没有太大必要,徒增维护成本,目前插件打开文件仅能够获取编辑器已打开的文件句柄,关闭文件仅移除句柄。
  • 【调整】软件的插件 SDK 版本将会显示在 设置-基本 里面
  • 【调整】优化插件加载日志

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

已知问题或缺陷

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

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

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

后面更新

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

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

  • 更加充分支持 angel-lsp 的功能,而不是仅仅代码填充和报错诊断
  • 实现脚本的帮助系统
  • 调试器支持 DAP ?
  • 实现单独的 Headless 模式运行脚本进行批量分析?
  • 支持 bundle 插件加载器,让单一插件文件支持多外部依赖自动加载打包和跨操作系统以及跨 CPU 平台加载?

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. 外部可自定义主题以及可更换图标。(100 RMB)
  4. 该软件提供的 AngelScript addon 提供完全的 Generic Call 支持。(100 RMB)
  5. 脚本编辑器的代码片段管理器支持。(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  寂静的羽夏  阅读(884)  评论(0)    收藏  举报