Closed GoogleCodeExporter closed 9 years ago
Original comment by michael.hale@gmail.com
on 20 Jan 2012 at 11:49
They probably should. Just to make sure it's that the pages aren't resident,
could you please print out the .reason on any NoneObjects you come across (or
bump up the -d until you get messages about it)...
Original comment by mike.auty@gmail.com
on 21 Jan 2012 at 11:17
Ok, so this was basically being masked before r1164, because we were returning
'' when we failed to read a physical address correctly. We now return
NoneObjects. I'm going to trace back and fine out if this has in fact always
been a problem...
Original comment by mike.auty@gmail.com
on 21 Jan 2012 at 1:39
This appears to have been present in volatility-2.0, so I'm not sure we've ever
had it working.
Just to give us something tangible to work with, on the publicly available
xp-laptop-2005-07-04-1430 image, there's an available page (returned by
get_available_pages) at 0xf6927000 that maps to a physical address of
0xfd000000, which is way outside the bounds of the filesize (0x1ffda000). I
also have 0xffd00000 virtual mapping back to 0x1fff0000 physical, which is
again outside the bounds, but this time by a much smaller amount...
Anyone who knows what they're doing care to investigate the pages and try to
figure out what's different about them?
Original comment by mike.auty@gmail.com
on 21 Jan 2012 at 2:01
Ok, so here's an enhanced version of the pagechecking plugin from issue 214,
and the output when applied to the two public NIST laptop images. Weirdness
abound...
Original comment by mike.auty@gmail.com
on 19 Mar 2012 at 9:24
Attachments:
Original comment by mike.auty@gmail.com
on 19 Mar 2012 at 9:51
This looks to me like a page specified in the device io range. For example
http://download.microsoft.com/download/e/b/a/eba1050f-a31d-436b-9281-92cdfeae4b4
5/mem-mgmt.doc
explains Device-Bus-Relative Physical Addresses which are implemented in
hardware to access hardware (probably video hardware in this case). Usually
these addresses are put at the top of the physical range like here so they dont
get in the way of ram.
There is a nice diagram that shows this here:
http://www.codinghorror.com/blog/2007/03/dude-wheres-my-4-gigabytes-of-ram.html
As far as the page table is concerned, this pte is valid and points to this
area. Alas the memory capture did not capture this area (probably because it
would crash the box to do this).
Original comment by scude...@gmail.com
on 19 Mar 2012 at 10:40
Ah, great news. Scudette is exactly right, I just pulled IO memory ranges from
xp-laptop-2005-06-25 and xp-laptop-2005-07-04 and verified that the unavailable
pages (yes, all 4000+ in both of Ikelos' log files) are in the reserved device
memory ranges.
So I would say our current handling of things is just right, and no changes are
needed. Well, the only change needed was already applied in r1287 to just
prevent memdump from crashing when address_space.read() fails on pages marked
available.
Lastly, Ikelos, I think we should throw pagecheck.py in contrib or something.
Its come in handy troubleshooting at least two issues in the past few weeks. At
the very least it could be useful to show the "holes" in memory due to devices.
I'm going to close this issue and mark it as WontFix, because there's nothing
that really needs fixing. I'll open a separate issue for discussions related to
adding pagecheck.py just so we don't forget.
Original comment by michael.hale@gmail.com
on 3 Apr 2012 at 3:27
Original issue reported on code.google.com by
michael.hale@gmail.com
on 20 Jan 2012 at 11:49