Allow count to be specified as a parameter.

This commit is contained in:
Mike Auty
2017-10-04 22:21:29 +01:00
parent 6523364c90
commit 88fa13bbdd
+6 -3
View File
@@ -1,12 +1,15 @@
from volatility.framework import objects
def array_to_string(array, errors = 'replace'):
def array_to_string(array, count = None, errors = 'replace'):
"""Takes a volatility Array of characters and returns a string"""
# TODO: Consider checking the Array's target is a native char
if count is None:
count = array.vol.count
if not isinstance(array, objects.Array):
raise TypeError("Array_to_string takes an Array of char")
return array.cast("string", max_length = array.vol.count, errors = errors)
return array.cast("string", max_length = count, errors = errors)
def pointer_to_string(pointer, count, errors = 'replace'):
"""Takes a volatility Pointer to characters and returns a string"""
@@ -15,4 +18,4 @@ def pointer_to_string(pointer, count, errors = 'replace'):
if count < 1:
raise ValueError("pointer_to_string requires a positive count")
char = pointer.dereference()
return char.cast("string", max_length = count, errors=errors)
return char.cast("string", max_length = count, errors = errors)