我正在寻找一种在更大的字节数组中搜索N个连续字节的方法。
这是我迄今为止的一次尝试。
public int FindOffset() {
byte[] bytesToFind = new byte[] { 0x77, 0x35, 0x94, 0x00 };
int currentOffset = 0;
for(;;) {
byte[] mem = MemoryReader.Read(currentOffset, 4);
if(bytesToFind == mem || mem == bytesToFind)
{
MessageBox.Show(Offset.ToString());
break;
}
currentOffset++;
}
return currentOffset;
}
MemoryReader.Read
返回一个字节数组。
答案 0 :(得分:3)
Test[0] == mem[0] && Test[1] == mem[1] && Test[2] == mem[2] && Test[3] == mem[3]
答案 1 :(得分:1)
我认为你几乎就在那里。您需要比较引用,而不是比较数组值。使用Enumerable.SequenceEqual
完成工作。
for(int Offset =0;Offset<Writer.Length;Offset++)
{
byte[] mem = Save.Read(Offset, 4);
if(mem.SequenceEqual(Test))
{
MessageBox.Show(Offset.ToString());
break;
}
}