Hi everyone, today i will be releasing a external scan pattern! Goodluck! Thanks if it helps



Code:
DWORD ScanPatternEx(HANDLE hProc, DWORD base, DWORD len, BYTE* sig, char* mask)
{
	BYTE* buf = (BYTE*)VirtualAlloc(0, len, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
	if(ReadProcessMemory(hProc,(LPCVOID)base,buf,len,N  ULL) == false)
	{
		char buf2[64];
		sprintf(buf2, "RPM Error code: %d", GetLastError());
		MessageBoxA(0,buf2, "Error", MB_OK);
		return NULL;
	}
	for(int i = 0; i < len; i++)
	{
		if((buf[i] == sig[0] && mask[0] == 'x')||(mask[0] == '?'))
		{
			for(int x = 0;; x++)
			{
				if(mask[x] == 'x')
				{
					if(buf[i+x] == sig[x])
						continue;
					else
						break;
				}
				else if(mask[x] == 0x00)
				{
					return (DWORD)(base+i);
				}
			}
		}
	}
	return NULL;
}