Richtig erkannt.
Und da man dieser Funktion ja jeden beliebigen Pointer übergeben kann, ist es auch dafür verwendbar, es muß nur ein Lesezugrif auf den entsprechenden Speicherbereich möglich sein.
Außerdem holst du dir ja mit ReadProcessMemory eine Kopie des Speichers, der anderen Anwendung, in dein eigenes Programm und greifst dann auf diese Kopie (Buffer) zu.
Delphi-Quellcode:
ReadProcessMemory(HandleWindow, Ptr($FFFFF), @Buffer, SizeOf(buffer), BytesRead);
i := FindData(PLargeWord(@d)^, @Buffer, BytesRead div 8);