一个自由的强大免费的十六进制编辑器,基于 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 修复以及小功能调整,以下是相对于上一个版本的增强和修复日志:

十六进制编辑相关

  • 【严重】保存文件能使程序卡死和原文件内容丢失的恶性缺陷
  • 【严重】修复搜索结果数据中清空数据下拉崩溃
  • 【严重】由于书签和元数据关联的文档已被释放导致的程序关闭崩溃
  • 【严重】文本预览的关闭崩溃
  • 【中等】修复 QHexRegionObject 相关问题(选区和元数据相关)
  • 【中等】修复十六进制连续编辑同一个字节高低位然后撤销高字节位未恢复的问题
  • 【中等】修复错误的字符串的大小端处理转化
  • 【中等】修复工作区和设备驱动重新加载问题(项目文件打开重载不再是项目文件)
  • 【中等】修复标注在被分段的情况下不同步丢失问题
  • 【中等】修复布局保存不正确和优化布局相关功能
  • 【中等】修复另存为之后标题名不变
  • 【轻微】打开历史如果文件不存在点击无法移除
  • 【轻微】修复另存为需要转化图标但无变化
  • 【轻微】优化十六进制编辑文档的基址支持
  • 【轻微】拖拽到 Ribbon 工具栏打开文件不会加入打开历史记录的问题
  • 【轻微】通过非点击打开文件按钮方式十六进制打开文件有错不报告的问题
  • 【轻微】修复记忆最后一次使用的打开目录不保存的问题
  • 【轻微】修复在插入模式下如果当前位置无字节就不显示光标
  • 【轻微】修复工作区导出之后图标显示不正确的问题
  • 【轻微】新增对设备驱动相关打开的历史记录支持
  • 【轻微】补充 粘贴(十六进制) 失败提示
  • 【轻微】修复输出后台脚本输出的文本颜色不正确
  • 【轻微】优化和修复解码字符串的可视化问题
  • 【轻微】十六进制编辑 Delete 功能缺失
  • 【轻微】十六进制编辑 beginMarco 的提示文本相关格式未统一
  • 【调整】通过拖拽打开的文件所在的文件夹路径会被记录到上一次打开位置
  • 【调整】状态新增编辑区(十六进制/字符串)指示
  • 【调整】更安全的保存文件策略(QSaveFile)
  • 【调整】十六进制文件读写方式由共享变为独占,移除十六进制文件编辑的文件重载监听
  • 【调整】优化程序的文件保存功能,减少不必要的操作
  • 【调整】禁止不支持随机访问的 IO 文件设备的打开
  • 【调整】打开普通文件禁止非常规文件打开
  • 【调整】新增查找结果窗体可以显示/隐藏解码文本
  • 【调整】新增元数据可以自定义显示/隐藏表头项目
  • 【调整】优化新增保存/导出相关文件名的默认值
  • 【调整】在 Linux 的 root 下保存文件权限将不再尝试调整

插件系统

  • 【中等】设备插件服务无法调用
  • 【中等】在注册脚本全局非安全函数中对 void* 进行区分,分为引用对象指针和值对象指针,以防止值对象作为非安全函数注册返回值内存泄漏的问题
  • 【调整】插件系统 ID 相关比较不再区分大小写
  • 【调整】标签页未激活且正在运行脚本会有图标指示

脚本相关

  • 【严重】控制台多行输入窗口 double free 问题导致的崩溃
  • 【严重】代码填充对于非函数填充无法插入文本的问题
  • 【严重】经自动调整为下一行为要执行的非代码行的断点失效而崩溃
  • 【严重】修复死循环卡死程序
  • 【中等】多行控制台和终止脚本运行冲突
  • 【中等】修复一些脚本 API 调用绑定问题,比如错误的 QColor::name 注册
  • 【中等】终止脚本 Action 无效问题
  • 【中等】脚本对象运算器获取对象名解析错误
  • 【中等】控制台频繁初始化全局变量导致重复执行操作的问题
  • 【中等】脚本引擎配置失败导致访问空填充对象导致的程序崩溃
  • 【中等】增强后的预处理器不支持 Unicode 的问题
  • 【中等】脚本 array 数组可视化以及 print 错误
  • 【中等】修复 println 脚本函数的调试/信息/错误相关只有第一行有头信息
  • 【轻微】脚本编辑器在调试时如果窗口过小会光标会乱跳行
  • 【轻微】弥补缺失的颜色、正则表达式的脚本对象函数
  • 【轻微】修复脚本编辑器的注释/反注释代码快捷键无效和错误问题
  • 【轻微】高显示分辨率下脚本编辑器打开脚本文件左侧会裁切部分文本的问题
  • 【轻微】修复 beautify 格式化数组/字典转化的字符串成员顺序与原来不保持一致的问题
  • 【轻微】弥补正则表达式的 regex::globalMatch 缺失
  • 【轻微】增加脚本对象运算器的健壮性,避免插件不合法使用运算器导致程序崩溃
  • 【轻微】修复 print 和 input 系列函数向下文模式可能不及时更新的问题
  • 【轻微】在脚本编辑器存在未保存的脚本,关闭主程序,然后点击丢弃导致脚本打开历史记录不保存的问题
  • 【轻微】将和 QFlag 绑定修改为 int 避免脚本书写冗余
  • 【调整】优化控制台历史记录
  • 【调整】移除无用的 ModelIndex 类
  • 【调整】脚本调试中,为颜色类型增加了可视化色块
  • 【调整】禁止脚本编辑器打开非 AngelScript 代码文件
  • 【调整】新增脚本对象 string 支持 foreach 和对应调试对象展开
  • 【调整】新增脚本对象 JsonArray 支持 foreach
  • 【调整】自定义运算器在 IWingAngel::EvalMode::Expand 模式下,如果使用 QHash<QString, WingHex::IWingAngel::ExpandResult> 解析为类字典输出默认不会被双引号包裹
  • 【调整】完善了CScriptDictValue::Get未实现的隐式转化
  • 【调整】更多样的 print 函数:警告、错误、信息
  • 【调整】将脚本函数 getInput 重新命名为 input,统一风格
  • 【调整】为脚本对象增加 invokeService 支持(仅支持基础对象和字符串)
  • 【调整】string::compare 全局函数移除,因为无法调用
  • 【调整】数学相关的函数转到 math 命名空间
  • 【调整】移除脚本编辑器的保存按钮响应指示文件是否已保存
  • 【调整】废弃 currentDocFilename,更改为 currentDocFile 且返回的是 URL 而不是文件名

WingCStruct

  • 【中等】修复脚本对象转化的内存泄露
  • 【中等】修复错误的大小端处理转化
  • 【中等】修复 getData 的 QVariant 隐式转化导致的类型错误
  • 【中等】修复错误的类型转化
  • 【中等】修复服务函数签名不正确的问题
  • 【轻微】修复内置 C 头文件解析器的数组可以使用位域的问题
  • 【调整】新增脚本对象 IntType 和脚本函数以简化函数调用和潜在的错误
  • 【调整】内置 C 头文件解析器对于含有位域的结构体采用激进的压缩策略,不再尝试遵守任何一个编译器的内部规则
  • 【调整】新增 dump 相关函数,方便查阅已经被解析的内容

软件设置

  • 【中等】修复当重置当前页为第一个时无法重置的问题
  • 【中等】修复错误的解码字符串限制的触发信号函数
  • 【中等】修复脚本设置中编辑和控制台设置不自动更新的问题
  • 【中等】修复解码字符串限制 MB 实际是 KB
  • 【中等】修复禁用脚本功能关闭程序的崩溃
  • 【中等】脚本超时时长为设置的 1/10 倍率问题
  • 【中等】修复 Angel 语言服务器重启无法恢复原有文档代码的填充功能
  • 【中等】Angel 语言服务器被禁用无法通过勾选启用
  • 【轻微】修复禁用/启用脚本功能没有提示
  • 【轻微】修复不显示 splash 启动窗体点击无提示重启问题
  • 【轻微】优化外部环境变量控制对应设置相应可视化
  • 【调整】优化插件和脚本禁用的可视化
  • 【调整】更好的用户提示
  • 【调整】新增打开软件的配置文件夹目录
  • 【调整】增加重置设置完成的提示

其他

  • 【严重】修复共享内存设备驱动并可用
  • 【严重】更新 AngelScript 上游,并修复全局变量的 storage 未初始化导致的崩溃
  • 【轻微】在 Qt 6.10.0 下无法通过编译的问题
  • 【轻微】浅色模式下后台脚本输出主题异常
  • 【轻微】用户脚本图标和系统脚本图标大小不统一
  • 【调整】优化 Linux 下符号编译体积
  • 【调整】移除日志文件内容受过滤器的影响,并新增 Qt log 的内部日志文件
  • 【调整】导出日志功能的路径由自动生成转为手动选择
  • 【调整】新增软件测试模式(和软件编译相关)
  • 【调整】对 Toast 的过长文本进行截断,最大宽度优化
  • 【调整】文本编辑器相关跳转不再是某行的最后一个字符,而是首行

后面更新

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

更新时间: