Entwickler-Ecke
Windows API - Größe eines Moduls im fremden Prozess
Flamefire - So 29.11.09 20:30
Titel: Größe eines Moduls im fremden Prozess
ICh möchte von einem Prozess den speicher nach einer bestimmten stelle scannen.
Ich könnte zwar einfach alles von 0-$7FFFFFFF scannen, aber das ist ja i.d.R. unnötig, da es mir nur um den Speicher der Main-Exe geht.
Das handle (Imagebase) bekomme ich ja über EnumProcessModules()
Die Frage ist jetzt, wie bekomme ich eine vernünftige Größe?
Mit VirtualQueryEx auf die ImageBase kriege ich viel zu wenig (1245199 {$13000F})
Ich weiß, es beginnt bei $400000 und geht noch über $C00000
wie mache ich das sinnvoll?
PS: das ganze soll möglichst universal gehalten sein und auch bei packern (UPX...) oder protectoren (armadillo...) funktionieren.
BenBE - Mo 30.11.09 16:57
Wenn du nur auf die Image-Base ne Abfrage machst, erhältst du auch nur das Code-Segment. Für alles weitere musst du insgesamt den Speicher auslesen und dann entsprechend anhand der Modul-Informationen und Speicher-Attribute zuordnen.
VirtualQueryEx liefert nur Blöcke mit gleichen Speicher-Attributen als zusammenhängend. Möchte man das anders, muss man das entsprechend zusammenklauben.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!