ich brauch mal etwas hilfe. ich hab irgendwo ein denkfehler oder der code is total fürn arsch. vlt hab ihr ja bessere funktionen, würd mich freuen wenn ihr eine hier posten könntet.
das was da oben auskommentiert ist wollte ich in eine schleife, aber der findet mir immer die falsche funktion. schaut mal bitte drüber.. ich seh da nichts mehr.
Code:
DWORD dwFindPattern(DWORD dwStartAddress, DWORD dwEndAddress, BYTE *bMask, BYTE *bMask_O){
BYTE ScanCode_A[sizeof(bMask)] = {};
/*
while(dwStartAddress < dwEndAddress){
ReadProcessMemory(hGW, (LPCVOID)dwStartAddress, &ScanCode_A[0], 1, 0);
if(ScanCode_A[0] == bMask[0]){
ReadProcessMemory(hGW, (LPCVOID)(dwStartAddress + bMask_O[1]), &ScanCode_A[1], 1, 0);
if(ScanCode_A[1] == bMask[1]){
ReadProcessMemory(hGW, (LPCVOID)(dwStartAddress + bMask_O[2]), &ScanCode_A[2], 1, 0);
if(ScanCode_A[2] == bMask[2]){
ReadProcessMemory(hGW, (LPCVOID)(dwStartAddress + bMask_O[3]), &ScanCode_A[3], 1, 0);
if(ScanCode_A[3] == bMask[3]){
return dwStartAddress;
}
}
}
}
dwStartAddress++;
}
*/
while(dwStartAddress < dwEndAddress){
for(int i=0; i<(sizeof(bMask)-1); i++){
ReadProcessMemory(hGW, (LPCVOID)(dwStartAddress + bMask_O[i]), &ScanCode_A[i], 1, 0);
if(ScanCode_A[i] == bMask[i])
return dwStartAddress;
dwStartAddress++;
}
}
ich rufs dann so auf:
BYTE Pattern_A[] = {85, 81, 139, 51};
BYTE Pattern_A_O[] = {0, 0x3, 0x6, 0xD};
DWORD x = dwFindPattern(A_STARTFUNC, A_ENDFUNC, Pattern_A, Pattern_A_O) + A_FUNC_OFFSET;