summaryrefslogtreecommitdiff
path: root/python/binaryview.py
diff options
context:
space:
mode:
authorNick Shipp <git@segbrk.com>2020-06-30 20:04:38 -0400
committerJordan <jordan@psifertex.com>2020-06-30 22:08:51 -0400
commitaf74903c997d3b1758818c28a50ca9dc31d6aac0 (patch)
tree1a424a006daa912ec67eb780c18ef2db37e5d9e6 /python/binaryview.py
parent8acc69ae58185d54da01ac154aa0140c2d53e623 (diff)
Add setters for Segment attributes
Diffstat (limited to 'python/binaryview.py')
-rw-r--r--python/binaryview.py43
1 files changed, 43 insertions, 0 deletions
diff --git a/python/binaryview.py b/python/binaryview.py
index 3e1478be..fc61c9a7 100644
--- a/python/binaryview.py
+++ b/python/binaryview.py
@@ -944,6 +944,14 @@ class Segment(object):
return core.BNSegmentGetStart(self.handle)
@property
+ def length(self):
+ return len(self)
+
+ @length.setter
+ def length(self, length):
+ core.BNSegmentSetLength(self.handle, length)
+
+ @property
def end(self):
return core.BNSegmentGetEnd(self.handle)
@@ -951,22 +959,57 @@ class Segment(object):
def executable(self):
return (core.BNSegmentGetFlags(self.handle) & SegmentFlag.SegmentExecutable) != 0
+ @executable.setter
+ def executable(self, executable):
+ flags = core.BNSegmentGetFlags(self.handle)
+ if executable:
+ flags |= SegmentFlag.SegmentExecutable
+ else:
+ flags &= ~SegmentFlag.SegmentExecutable
+ core.BNSegmentSetFlags(self.handle, flags)
+
@property
def writable(self):
return (core.BNSegmentGetFlags(self.handle) & SegmentFlag.SegmentWritable) != 0
+ @writable.setter
+ def writable(self, writable):
+ flags = core.BNSegmentGetFlags(self.handle)
+ if writable:
+ flags |= SegmentFlag.SegmentWritable
+ else:
+ flags &= ~SegmentFlag.SegmentWritable
+ core.BNSegmentSetFlags(self.handle, flags)
+
@property
def readable(self):
return (core.BNSegmentGetFlags(self.handle) & SegmentFlag.SegmentReadable) != 0
+ @readable.setter
+ def readable(self, readable):
+ flags = core.BNSegmentGetFlags(self.handle)
+ if readable:
+ flags |= SegmentFlag.SegmentReadable
+ else:
+ flags &= ~SegmentFlag.SegmentReadable
+ core.BNSegmentSetFlags(self.handle, flags)
+
@property
def data_length(self):
return core.BNSegmentGetDataLength(self.handle)
+ @data_length.setter
+ def data_length(self, length):
+ core.BNSegmentSetDataLength(self.handle, length)
+
@property
def data_offset(self):
return core.BNSegmentGetDataOffset(self.handle)
+ @data_offset.setter
+ def data_offset(self, offset):
+ core.BNSegmentSetDataOffset(self.handle, offset)
+
@property
def data_end(self):
return core.BNSegmentGetDataEnd(self.handle)