RAM auslesen



  • Hi,

    ich hab jetzt schon einige Zeit mit den RAM ein bisschen rumprobiert. Ich habe es bis jetzt geschafft von einem selbst geschriebenen Programm einige Variablen (bei denen ich die Adresse kannte, die Werte zu ändern. Ich möchte nun einen Schritt weitergehen und bei kleineren Programmen die nicht von mir sind das selbe tuen. Nur mein Problem ist, wie finde ich heraus, welche Adressen von dem jeweiligen Programm belegt sind? Wenn ich das wüsste könnte diese Stellen nacheinander absuchen. Nach jedem Programm start werden ja neue Adressen zugewiesen.

    Hoffe ihr wisst wie ich es meine 😃

    Schon einmal eine Danke im Voraus 👍



  • falls es jemand braucht ich habe dies so gemacht:

    #include <Windows.h>
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
    
    	HWND hWnd;
    	HANDLE hProc;
    	DWORD procid;
    	char w;
    	DWORD rw = 0;
    	int Buffer=0;
    	unsigned adress = 0x003EF9F4;
    	hWnd = FindWindow(NULL,L"Programmname");
    	if(hWnd)
    	{
    		GetWindowThreadProcessId(hWnd, &procid);
    		hProc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, procid);				//PROCESS_ALL_ACCESS rechte für lesen und schreiben
    
    		if(ReadProcessMemory(hProc,(LPCVOID)adress,&Buffer,sizeof(Buffer),&rw))
    		{
    			cout<<"Lesen erfolgreich \t"<<Buffer<<endl;
    			getch();
    		}
    		do
    		{
    		cout<<"Buffer:   ";cin>>Buffer;		
    			if(WriteProcessMemory(hProc,(LPVOID)adress,&Buffer,sizeof(Buffer),&rw))
    			{
    				cout<<"Schreiben erflogreich"<<endl;
    				getch();
    			}
    			w=getch();
    		}while(w!='b');
    		CloseHandle(hProc);
    	}
    	if(!hWnd)
    		getch();
    }
    

  • Mod

    Keine Ahnung von Winapi, aber Google flüstert mir: VirtualQueryEx



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x und C++11) in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • ah dankeschön VirtualQueryEx() hab ich gesucht. Hab ich wieder den Wald vor lauter bÄumen nicht gesehen dankeschön(:



  • Du liest hier kein RAM aus, sondern eine "Virtual Memory"



  • 👍


Anmelden zum Antworten