From 5502500f2a605af47523847db67b4c506d8f16e4 Mon Sep 17 00:00:00 2001 From: Ryan Snyder Date: Thu, 13 Jun 2019 14:30:10 -0400 Subject: python: fix StringReference, add .raw property --- python/binaryview.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'python/binaryview.py') diff --git a/python/binaryview.py b/python/binaryview.py index d68b8b24..04f0e2dc 100644 --- a/python/binaryview.py +++ b/python/binaryview.py @@ -93,6 +93,13 @@ class BinaryDataNotification(object): def type_undefined(self, view, name, type): pass +_decodings = { + StringType.AsciiString: "ascii", + StringType.Utf8String: "utf-8", + StringType.Utf16String: "utf-16", + StringType.Utf32String: "utf-32", +} + class StringReference(object): def __init__(self, bv, string_type, start, length): @@ -103,7 +110,11 @@ class StringReference(object): @property def value(self): - return binaryninja.pyNativeStr(self._view.read(self._start, self._length)) + return self._view.read(self._start, self._length).decode(_decodings[self._type]) + + @property + def raw(self): + return self._view.read(self._start, self._length) def __repr__(self): return "<%s: %#x, len %#x>" % (self._type, self._start, self._length) -- cgit v1.3.1