55 def v(self):
56 """
[snip]
69 """
70 result = self.obj_vm.zread(self.obj_offset, self.length) # <-- self.length is wrong
71 if not result:
72 return obj.NoneObject("Cannot read string length {0} at {1:#x}".format(self.length, self.obj_offset))
73 return result
We can see that self.length is wrong:
In [6]: vnode.v_name.length
Out[6]: 256 # <- this should be 17!
In [7]: len(vnode.v_name.dereference())
Out[7]: 17
In [8]: vnode.v_name.dereference().v()
Out[8]: '.\xd7\xa9\xd7\x9c\xd7\x95\xd7\x9d.txt.swp\x00\xad\xde\xef\xbe\xad\xde\xef\xbe\xad\xde\xef\xbe\xad\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 I\xf0\r\x80\xff\xff\xff\xc0\xa8f\x0e\x80\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00p\xd3\xfd\r\x80\xff\xff\xff\x00(u\x0e\x80\xff\xff\xff\x00\xe6u\x0e\x80\xff\xff\xff\x00\xeay\x0e\x80\xff\xff\xff\x00V\x0f\x0e\x80\xff\xff\xff\x00P\xd6\x10\x80\xff\xff\xff\x00\x00%\x0f\x80\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
I'm not sure what's the best way to fix this, and I'm not sure yet if there are issues on the windows, or linux sides if they rely on this function of the String object.
I have a Hebrew version of MacOS, and have a file open with a Hebrew name. Here is the output from
lsof
from the terminal:Now when I run the
mac_lsof
plugin against the memory sample:So let's investigate why:
Now I thought that maybe I could fix it like I did in https://volatility-labs.blogspot.com/2015/06/volshell-quickie-case-of-missing.html , however, there's an issue with how the length is found (from
volatility/plugins/overlays/basic.py
):We can see that self.length is wrong:
I'm not sure what's the best way to fix this, and I'm not sure yet if there are issues on the windows, or linux sides if they rely on this function of the
String
object.