I've have tried to make a function that reads process memory in another process.
I have made a function that writes memory which works perfectly, but when i run the function ReadProcessMemory it comes with the error: "Access Violation".
The weird thing is it works fine when I do it in C++.
I think I remember something about EnableDebugPriv(), but in C++ it works fine without it.
ReadMemory: ; int ReadMemory(char *WindowName, int address) [ReadMemoryDataBuffer: DD 0] [ReadMemoryReadData: DD 0] push ebp mov ebp, esp push DWORD[ebp + 8] push 0 call 'USER32.FindWindowA' push ReadMemoryDataBuffer push eax call 'USER32.GetWindowThreadProcessId' push DWORD[ReadMemoryDataBuffer] push 1 push 01F0FFF ; ALL ACCESS call 'KERNEL32.OpenProcess' push DWORD[ReadMemoryDataBuffer]; extra push 4 ; number of bytes to read push ReadMemoryReadData ; pointer to read to push DWORD[ebp + 12] ; address push eax ; Process call 'KERNEL32.ReadProcessMemory' mov eax, DWORD[ReadMemoryReadData] mov esp, ebp pop ebp ret 8
Thanks in advance :)