我想搜索特定字节模式的某些内存范围。因此,我的做法是使用博耶 - 穆尔 - Horspool算法来找出内存范围的模式建立一个功能在某些内存区域中查找字节模式
void * FindPattern (std::vector<byte> pattern, byte wildcard,
void * startAddress, void * endAddress);
。
wildcard
字节保持某些特定的字节应该被视为通配符。 因此 - 例如 - 如果wildcard
是0xCC
,则pattern
中的每个0xCC
都将是通配符。
函数应返回第一次找到模式的内存范围的开始位置。
我的问题是现在:是否有一些类似的功能已经在最常见的库中完成,或者我必须为我自己实现这个功能吗?
这里的“通配符”是什么意思?在一些交际中,通配符可能意味着零次或多次匹配,在其他定义中可能意味着一次或多次匹配。请澄清你的定义。 – 2009-12-28 00:09:02
在这种情况下,通配符完全是一个匹配。所以,如果模式是0x1337f00d并且通配符设置为0x37,它应该匹配0x13 ?? f00d与?是一个任意字节。 – Etan 2009-12-28 00:38:14