找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: 2010hook

[发布] [26-8-2] binmay 灵活掩码版,搜索替换命令工具

  [复制链接]
发表于 2026-7-12 16:34:55 | 显示全部楼层
感谢分享,赞。
回复

使用道具 举报

 楼主| 发表于 2026-7-17 19:22:58 | 显示全部楼层
最大特色是支持索引列表,灵活匹配或忽略字段,免去冗长的字符串。
回复

使用道具 举报

发表于 2026-7-17 19:24:38 | 显示全部楼层
感谢分享
回复

使用道具 举报

 楼主| 发表于 2026-7-23 23:21:38 | 显示全部楼层
2026-7-24 更新:改用MinGW64编译,提高性能和可靠性,修正警告的3处代码写法。
编译参数:x86_64-w64-mingw32-gcc -std=c17 -O2 -flto -pipe -fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wall -Werror -Wextra -Wpedantic -Wconversion -Wsign-conversion -Wl,--nxcompat,--dynamicbase,--gc-sections -ffunction-sections -static -s %src_list%

只修改了binmay3,其它没改。
回复

使用道具 举报

 楼主| 发表于 2026-7-25 22:23:09 | 显示全部楼层
二进制搜索比文本搜索更通用,不过一串长长的0/1 比较麻烦
回复

使用道具 举报

发表于 2026-7-25 22:33:59 | 显示全部楼层
好东西,学习了。
回复

使用道具 举报

发表于 2026-7-26 09:36:26 | 显示全部楼层
很强大,感谢更新。
回复

使用道具 举报

发表于 2026-7-26 10:09:40 | 显示全部楼层
谢谢发布
回复

使用道具 举报

 楼主| 发表于 6 天前 | 显示全部楼层
本帖最后由 2010hook 于 2026-7-29 07:41 编辑

再次优化版的突出优点:
在核心算法性能、I/O 稳健性和现代 C 编码风格上明显更优。搜索加速,安全性提升(fwrite_all、去除静态局部变量)也完全符合高质量 C 代码的标准。


1. **安全与健壮性大幅提升**
   - `fwrite_all` 彻底解决文件写入短写问题,在 Windows 上也更严谨。
   - 显式拒绝全通配掩码,防止“永远匹配起始位置”导致的替换死循环或错误匹配。
   - 64 位匹配计数、整数溢出检查,适合处理 GB 级大文件。
   - 移除了 `static` 局部缓冲区,函数可重入,代码更干净。

2. **微小但周全的防御**
   - `hexdumpline` 检查 `len <= 0` 后直接返回。

3. **保持代码紧凑**  
   在不大幅增加代码量的前提下,修复了多个潜在缺陷。
回复

使用道具 举报

 楼主| 发表于 4 天前 | 显示全部楼层
BEIKING 发表于 2026-6-30 20:26
另外编译的,都是64位版本,,是否也提供下32位版本的

今天增加了 binmay2_32bit.exe

点评

感谢  详情 回复 发表于 4 天前
回复

使用道具 举报

发表于 4 天前 | 显示全部楼层
2010hook 发表于 2026-7-31 14:33
今天增加了 binmay2_32bit.exe

感谢
回复

使用道具 举报

发表于 4 天前 | 显示全部楼层

看看这个bug

看看这个bug


命令

binmay2.exe -s t:ZH-CN -r t:EN-US -U UiTX_Battle_Break_001EN-US.uasset

点评

已修正,经过测试没问题了。欢迎继续交流!  详情 回复 发表于 3 天前

评分

参与人数 1无忧币 +5 收起 理由
2010hook + 5 是个bug,感谢反馈!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 3 天前 | 显示全部楼层
dreampsp 发表于 2026-7-31 14:50
命令

binmay2.exe -s t:ZH-CN -r t:EN-US -U UiTX_Battle_Break_001EN-US.uasset

已修正,经过测试没问题了。欢迎继续交流!
回复

使用道具 举报

 楼主| 发表于 3 天前 | 显示全部楼层
本帖最后由 2010hook 于 2026-8-1 13:25 编辑

目前一共3个预匹配检查点,设计得当:
1 个非零字节的误判概率约为 1/256,2 个约为 1/65536,3 个约为 1/16M。
现已有 3 个检查点,平均每处理 16MB 数据才发生一次无效全量匹配 (未排除则执行完整搜索流程),第 4 个检查点会将此值推向 1/4G——几乎零收益。
当前代码简洁,仅用 i_last(掩码末尾)作为附加检查,利用了“末尾字节自然对齐”的特性,逻辑清晰;改为通用倒数第二,失去这种简洁性。
回复

使用道具 举报

 楼主| 发表于 前天 11:22 | 显示全部楼层
若已备份`*.0rg`则不覆盖,保留初始版本,可放心修改。
回复

使用道具 举报

发表于 昨天 07:30 | 显示全部楼层
大佬,编译增加一下arm64 架构的版本吧 这个架构很重要
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1|闽公网安备35020302032614号 )

GMT+8, 2026-8-4 14:57

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表