PAGE_GUARD protection von processen ausschalten, geht sowas ???
-
VirtualAllocEx -> SYSTEM_INFO.
-
Na T0bi, trollst wieder rum

greetz, Swordfish
-
T0bi schrieb:
wenn ich mir das handle vom process geholt habe und nun den speicher zugägnlich machen möchte...
muss ich dann unbedingt einen pointer im zweiten parameter und die grösse im dritten angeben?Ja, musst Du. VirtualQueryEx () liefert Dir sogar den "Pointer" und die "Grösse".
T0bi schrieb:
oder kann ich das auf null setzen und er setzt alle seiten im speicher auf full access ?
Nein, macht er nicht. Das Flag "PAGE_GUARD" hat nichts zutun mit "Speichermanagement".
-
hmmm...
DWORD VirtualQueryEx( HANDLE hProcess, // handle of process LPCVOID lpAddress, // address of region PMEMORY_BASIC_INFORMATION lpBuffer, // address of information buffer DWORD dwLength // size of buffer );SYSTEM_INFO si;
schreibe ich im zweiten parameter einfach nur GetSystemInfo( &si ), rein?MEMORY_BASIC_INFORMATION mbi;
und im dritten &mbi ?und im vierten sizeof( MEMORY_BASIC_INFORMATION ) ?
und trotzdem weiss ich immer noch net wie ich das mit VirtualallocEx in verbindung bringe... gibts denn hier irgendwo codeschnipdel?
Gruß Tobi.
-
ich glaub langsam komm ich dahinter wie das mit dem ganzen funktioniert. eine frage wollte ich da noch schnell einwerfen.
es ist mir bekannt das unter 32bit systemen( zB. WinXP ) jedem process 4GB virtueler speicher zugewiesen wird. meine frage war ja im weitesten sinn die, wie ich start- und endaddresse eines processes heraus bekomme.
wenn ich in VirtualQueryEx() das process handle uebergebe, ist dann wenn ich fuer die startaddresse 0x00000000 eingebe, das die erste addresse im virtuelen speicher des processes oder überhaupt von allen processen die erste addresse?
denn wenn es so waere koennte ich nicht einfach eine schleife schreiben, die alle seiten in diesem 4GB speicher durch ackert( end addresse also 0xFFFFFFFF )
und so mit virtualprotectex alle seiten auf full_access setzen?
-
ich meinte bis 0x80000000.