C# 内存操作 byte[]数组 模糊查询 定位 求思路和解决方案
求助各位算法大神啊。
尝试过 循环套循环 和 转换成 字符串 形式的 hex 匹配 但是 效率一直上不去。
所以来csdn 求助各位算法大神了。
byte[]的长度 可能达到 20W。
需求 对 byte 数组 进行模糊定位。
举例
读取内存区域后 得到 byte[]
需要在该 byte[]中 模糊查询 并定位。
如
byte[] byts = new byte[]
{ 0, 0, 1, 2, 3, 1, 5, 1, 4, 2, 0, 0, 7, 1, 7, 2, 9, 6, 1, 7, 5, 8, 1, 9, 2 ,0 };
对应下标:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
提供一个字符串 "01 ?? 02" 找到 地址数组 int { 2 , 7 , 13 , 22 }
提供一个字符串 "?? ?? 02" 找到 地址数组 int { 1, 7, 13 }
提供一个字符串 "05 ?? ?? ?? ?? 00" 找到 地址数组 int { 6, 20 }
提供一个字符串 "05 ?? ?? 09 ?? 00" 找到 地址数组 int { 20 }
找寻 所有 匹配的地址 , 而且 还要高效。