Hi.
Today I was bored and I wanted to write an out-of-process version of FindPattern for myself.
But for some reason it just doesn't work..maybe someone can look at my code for a sec? Thanks 
Code:
bool Process::DataCompare(string data, int index, string pattern, string mask)
{
for (unsigned int i = 0; i < pattern.length(); i++)
{
if (mask[i] == 'x' && data[index + i] != pattern[i])
return false;
}
return true;
}
DWORD Process::FindBinaryPattern(DWORD StartAddress, int Length, string pattern, string mask)
{
int index = 0;
string buffer;
if(FINDBINARYPATTERN_BYTESTOREAD > Length)
{
buffer = ReadMemString(StartAddress, Length);
for(unsigned int i = 0; i < (Length - pattern.length()); i++)
{
if(DataCompare(buffer, i, pattern, mask))
return static_cast<DWORD>(StartAddress + i);
}
}
else
{
while(index < Length)
{
buffer = ReadMemString(StartAddress + index, FINDBINARYPATTERN_BYTESTOREAD + pattern.length());
for (unsigned int i = 0; i < FINDBINARYPATTERN_BYTESTOREAD; i++)
{
if(DataCompare(buffer, i, pattern, mask))
return static_cast<DWORD>(StartAddress + index + i);
}
index += FINDBINARYPATTERN_BYTESTOREAD;
}
}
return static_cast<DWORD>(NULL);
}
Greetings...