羽云十六进制编辑器 WIKI

写在前面

  本页面是对WingHexExplorer2的引导页面,通知用户当前的项目情况,提供帮助文档的指引。软件v2.0.0 beta已发布,v2.0.0正式版已在2024/12/23发布,欢迎感兴趣的同志来参与测试和贡献代码。

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

简介

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

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

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

  许可证:AGPL-3.0

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

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

最新发布日志

  该仓库仅提供基于 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 发生改变,已经不兼容。对于我想要单文件实现插件开发,我目前没有很好的办法做兼容处理,那就先这样。

下一次更新

  下一次更新将会完善插件系统,增加几个 API 增强功能,增加两个插件,然后发布(预计到25年1月底),版本号为v2.1.0

  1. 增加插件系统对于脚本系统的绑定(为第 4 项开发)
  2. 完善插件系统暂未实现的事件订阅(为第 5 项开发)
  3. 增加一个插件,用于解析 C 结构体,方便脚本分析文件结构(插件名:WingCStruct)
  4. 增加一个插件,用于方便显示反汇编,于此同时汇编到硬编码(插件名:WingAsm)
  5. 移除脚本系统的 read / insert / append 拓展
  6. 增加插件互相调用机制
  7. 为可视化组件增加自定义标题和导出支持
  8. 优化颜色标注机制,将机制调整与选区一致,并增加被选区覆盖下的提示。
  9. 为搜索字符串提供多编码支持,搜索显示当前值的片段和字符串解码。

FAQ

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

  2. 在 Linux 下我直接 clone 仓库编译不通过:
    答:如果你 QT 和 CMake 都装好的话,本软件使用的布局组件 Qt-Advanced-Docking-System 有依赖需要装好,请详细看一下它的 ReadMe。当然你也要注意你的 QT 版本。

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

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

  5. 为什么不能够在有标注的情况下增删字节?
    答:因为内部是通过偏移决定标注的渲染,你增删了但我没有额外处理肯定会偏移导致不准了,这需要你手动修改了。不过在 v2.0.0 规划中决定完善这个功能,解除这个限制提醒。

版本规划

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

  1. 尝试增加 AngelScript 对 QT 用户界面组件的绑定尝试,可以通过脚本实现插件。(若指明赞助该功能 450 RMB,增加窗体、标签、按钮、文本框支持,其他暂不支持,除非 PR)
  2. 为脚本解释器增加 JIT。(目前仅 PR)
  3. 类似 VSCode 的代码提示和填充。(仅 PR)
  4. 更多的 AngelScript 脚本模块标准库。(仅 PR)
  5. 为 AngelScript 增加宏的条件编译,拓展宏的功能。(100 RMB)
  6. 打开操作系统内的进程。(100 RMB)
  7. 脚本运行更好的报错。(100 RMB)
  8. 更好的脚本调试器。(120 RMB)
  9. 外部可自定义主题以及可更换图标。(100 RMB)
  10. 该软件提供的 AngelScript addon 提供完全的 Generic Call 支持。(100 RMB)
  11. 脚本设置页代码高亮样式可以实现使用用户界面进行新建编辑。(100 RMB)
  12. 插件注册脚本函数更强大的类型支持。(200 RMB)

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

  目前测试插件还没有完全完成,因为我比较忙, 最近半个月我将不会软件主体相关部分 ,插件和文档相关内容也不会很快跟上。过了 2025/1/5 之后, 我暂定一月一更新,如果没有 Bug 就下一个月。如果有恶性 Bug 一周一更,暂且就这样了

帮助文档

  目前推荐 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  寂静的羽夏  阅读(268)  评论(4编辑  收藏  举报