我想搜索特定字节模式的某些内存范围。因此,我的方法是构建一个函数
void * FindPattern (std::vector<byte> pattern, byte wildcard,
void * startAddress, void * endAddress);
使用Boyer-Moore-Horspool算法在存储器范围内找到模式。
wildcard
字节保留一些特定字节,应该被视为通配符。
所以 - 例如 - 如果wildcard
是0xCC
,则0xCC
中的每个pattern
都是通配符。
该函数应该返回内存范围的开始,第一次找到模式。
我现在的问题是:在最常见的库中是否已经完成了一些类似的功能,还是我必须自己实现这个功能?
答案 0 :(得分:3)
BMH上的Wikipedia page有一个实现。我认为Boost xpressive也是基于BMH的(变体)。
答案 1 :(得分:1)
不,似乎甚至没有像'strstr'这样的函数,而是原始内存。更别说通配符了!