This repository was archived by the owner on May 16, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Linux Profile Error - KeyError: 'DW_AT_data_member_location' #828
Copy link
Copy link
Open
Description
Hi,
I'm currently trying to run Volatility 2 on a custom profile for Ubuntu 22.04. I successfully created the profile by running:
git clone --depth=1 https://github.com/volatilityfoundation/volatility.git
cd volatility/tools/linux
echo 'MODULE_LICENSE("GPL");' >> module.c # to get around the error mentioned here https://github.com/volatilityfoundation/volatility/issues/812
make
zip ubuntu22.04.zip volatility/tools/linux/module.dwarf /boot/System.map-`uname -r`
adding: volatility/tools/linux/module.dwarf (deflated 91%)
adding: boot/System.map-5.15.0-33-generic (deflated 80%)
and I can see the profile when I run:
# python vol.py --info | less
Profiles
--------
Linuxubuntu22_04x64 - A Profile for Linux ubuntu22.04 x64
VistaSP0x64 - A Profile for Windows Vista SP0 x64
However, when I try to use the profile, it fails with this error:
# python2 vol.py --plugins=/root/profiles --profile=Linuxubuntu22_04x64 -f /Linux64.mem linux_pslist
Volatility Foundation Volatility Framework 2.6.1
Traceback (most recent call last):
File "vol.py", line 192, in <module>
main()
File "vol.py", line 183, in main
command.execute()
File "/root/volatility/volatility/plugins/linux/common.py", line 67, in execute
commands.Command.execute(self, *args, **kwargs)
File "/root/volatility/volatility/commands.py", line 116, in execute
if not self.is_valid_profile(profs[self._config.PROFILE]()):
File "/root/volatility/volatility/plugins/overlays/linux/linux.py", line 218, in __init__
obj.Profile.__init__(self, *args, **kwargs)
File "/root/volatility/volatility/obj.py", line 862, in __init__
self.reset()
File "/root/volatility/volatility/plugins/overlays/linux/linux.py", line 232, in reset
self.load_vtypes()
File "/root/volatility/volatility/plugins/overlays/linux/linux.py", line 269, in load_vtypes
vtypesvar = dwarf.DWARFParser(dwarfdata).finalize()
File "/root/volatility/volatility/dwarf.py", line 72, in __init__
self.feed_line(line)
File "/root/volatility/volatility/dwarf.py", line 163, in feed_line
self.process_statement(**parsed) #pylint: disable-msg=W0142
File "/root/volatility/volatility/dwarf.py", line 267, in process_statement
d = data['DW_AT_data_member_location']
KeyError: 'DW_AT_data_member_location'
and for the binary version as well:
# ./volatility_2.6_lin64_standalone --plugins=/root/profiles --profile=Linuxubuntu22_04x64 -f /Linux64.mem linux_pslist
Volatility Foundation Volatility Framework 2.6
Traceback (most recent call last):
File "vol.py", line 192, in <module>
File "vol.py", line 183, in main
File "volatility/plugins/linux/common.py", line 64, in execute
File "volatility/commands.py", line 116, in execute
File "volatility/plugins/overlays/linux/linux.py", line 216, in __init__
File "volatility/obj.py", line 862, in __init__
File "volatility/plugins/overlays/linux/linux.py", line 227, in reset
File "volatility/plugins/overlays/linux/linux.py", line 264, in load_vtypes
File "volatility/dwarf.py", line 71, in __init__
File "volatility/dwarf.py", line 162, in feed_line
File "volatility/dwarf.py", line 255, in process_statement
KeyError: 'DW_AT_data_member_location'
Failed to execute script vol
I ran into this error for memory captures from both LiME (including with and without the timeout=0
option as mentioned here and AVML. I attached the profile - ubuntu22.04.zip.
Any ideas? Thanks.
UPDATE I was able to successfully run the equivalent command on Volatility 3 by creating a custom Symbols Table that I attached
vmlinux-5.15.0-33-generic.json.gz but I would rather run it on Volatility 2 due to the extra plugins available on Volatility 2
Metadata
Metadata
Assignees
Labels
No labels