My code below, takes too much time when dealing with big memory size.
Any assistance will be much appreciated.
Code: Select all
Procedure FindMe(sPattern.s)
sPatternLength.i = Len(sPattern)
hModule.i = GetModuleHandle_(0)
StartAddress.i = hModule
EndAddress.i = hModule + 17276688 ; <-- big memory size
Buffer.s = Space(sPatternLength)
For MemoryAddress.i = StartAddress To EndAddress Step 1
ReadProcessMemory_(GetCurrentProcess_() , MemoryAddress, @Buffer, sPatternLength, 0)
For i = 0 To sPatternLength/2 -1 Step 1
bufferByte.s = RSet(Hex(PeekA(@buffer+i)), 2,"0")
sPatternByte.s = Mid(sPattern, j+1, 2)
If bufferByte = sPatternByte
fPattern.s = fPattern + bufferByte
j=j+2
If fPattern = sPattern
Debug "You did it!"
End
EndIf
Else
j=0
fPattern = ""
Break
EndIf
Next
Next
EndProcedure
FindMe("1234")