Also ich will den Speicher eines Prozesses auslesen und verarbeiten.
Code von EBFE:
Nun möchte ich den ganzen vom Programm belegte Speicher auslesen, dafür will ich die Funktion VirtualQueryEx http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx verwerden.Code:#include <windows.h> #include <stdio.h> #define PROCESS_ID_MANUAL 1168 int dump(void* hProcess,void *base,int size) { unsigned char* buff= malloc(size); int bytes=0; int result=ReadProcessMemory(hProcess,base,buff,size,&bytes); if (result!=0) printf("konnte 0x%X Bytes einlesen von 0x%0.8X\n",bytes,base); else { printf("konnte 0x%0.8X NICHT auslesen\n",base); free(buff); return 0; } int i; for (i=1;i<bytes-1 && i<size-1;i++) { printf("%0.2X ",buff[i-1]); if ((i%16==0)) printf("\n"); /*Zeilenumbruch alle 16 Bytes*/ } free(buff); return 0; } int main() { unsigned char puffer[256]; void *pressid; void *startip; pressid= OpenProcess(PROCESS_VM_READ,1,PROCESS_ID_MANUAL); dump(pressid,(void*)0x1000,50); dump(pressid,(void*)0x400000,50); dump (pressid,(void*)0x600000,50); dump (pressid,(void*)0x80000000,50); /*sollte nix ausgeben, da OS reserviert*/ return 0; }
Mein code:
gibt mir ein Access Violation zurück ...Code:struct _MEMORY_BASIC_INFORMATION *rage; pressid = OpenProcess(PROCESS_VM_READ,1,PROCESS_ID_MANUAL); VirtualQueryEx(pressid,0,rage,100); printf("%d", rage->BaseAddress);
warum?

 
			
			 Prozessspeicher auslesen
 Prozessspeicher auslesen
				 
					
					
					
						 Zitieren
  Zitieren Zitat von ;X
 Zitat von ;X
					
 
			