Closed JRomainG closed 4 years ago
Yeah, that's x86/amd64 only, apparently. arm64 has idmap_pg_dir and swapper_pg_dir in System.map; I think this is akin to what they want. They should guard the change from swapper_pg_dir with a check for x86/ amd64 systems, though I'm unsure about the python struct.unpack stuff used for arm in this situation (eg the '<Q' and '<I' bits).
Thanks for the info!
If I'm not mistaken, "<Q" should be used for arm64. My temporary solution was to rely on the swapperScan
instead of using the info from System.map.
Unfortunately, the virtual to physical address translation isn't implemented for arm64, so it's not quite enough to analyze memory dumps for that architecture yet.
Yeah. I ended up switching to an arm32 phone for that.
Volatility 2 does not have support for ARM64 analysis.
We certainly would be open to support being added by the community. You can also consider writing the support for Volatility 3 instead as it will have a longer shelf life.
Description
I am working with a memory dump from a physical Android device running Android 9 (kernel 4.9). I built the kernel and OS myself, and managed to build a profile and do a memory dump using LiME.
Unfortunately, I haven't been able to use the profile I built to analyze the memory image, as the
System.map
file is missing both theinit_level4_pgt
and theinit_top_pgt
key. I rebuilt the kernel just to make sure it wasn't a mistake, but indeed there is no such key.I uploaded the System.map file here, and the module.dwarf file here. I can also provide the memory dump from the physical device if it's of any help.
I have seen other issues opened about Android/ARM dumps, but they don't seem to be facing the same issue as I am. Would there be another way of locating the DTB, using other keys from the System.map? If not, as I have access to the live phone before doing the dump, can I perhaps get the missing information from elsewhere and bypass the scanner?
Volatility version
I also applied the changes from #652 to add a missing symbol in the dwarf parser and make the profile show up as ARM.
Operation system used to run volatility
Python version used to run volatility
Operation system of the memory image
AOSP Pie 9.0 with the 4.9 kernel (
build number aosp_f5121 9 PQ2A
).Command line entered to run volatility