summaryrefslogtreecommitdiff
path: root/python/examples/mappedview.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/examples/mappedview.py')
-rw-r--r--python/examples/mappedview.py27
1 files changed, 18 insertions, 9 deletions
diff --git a/python/examples/mappedview.py b/python/examples/mappedview.py
index 18bef17f..645096f5 100644
--- a/python/examples/mappedview.py
+++ b/python/examples/mappedview.py
@@ -35,13 +35,14 @@ import traceback
use_default_loader_settings = True
+
class MappedView(BinaryView):
name = "Mapped (Python)"
long_name = "Mapped (Python)"
load_address = 0x100000
def __init__(self, data):
- BinaryView.__init__(self, parent_view = data, file_metadata = data.file)
+ BinaryView.__init__(self, parent_view=data, file_metadata=data.file)
@staticmethod
def is_valid_for_data(data):
@@ -74,7 +75,10 @@ class MappedView(BinaryView):
load_settings = registered_view.get_default_load_settings_for_data(view)
# Specify default load settings that can be overridden (from the UI).
- overrides = ["loader.architecture", "loader.platform", "loader.entryPointOffset", "loader.imageBase", "loader.segments", "loader.sections"]
+ overrides = [
+ "loader.architecture", "loader.platform", "loader.entryPointOffset", "loader.imageBase", "loader.segments",
+ "loader.sections"
+ ]
for override in overrides:
if load_settings.contains(override):
load_settings.update_property(override, json.dumps({'readOnly': False}))
@@ -84,11 +88,12 @@ class MappedView(BinaryView):
load_settings.update_property("loader.entryPointOffset", json.dumps({'default': 0}))
# Specify additional custom settings.
- load_settings.register_setting("loader.my_custom_arch.customLoadSetting",
- '{"title" : "My Custom Load Setting",\
+ load_settings.register_setting(
+ "loader.my_custom_arch.customLoadSetting", '{"title" : "My Custom Load Setting",\
"type" : "boolean",\
"default" : false,\
- "description" : "My custom load setting description."}')
+ "description" : "My custom load setting description."}'
+ )
return load_settings
@@ -116,7 +121,7 @@ class MappedView(BinaryView):
if load_settings is None:
if self.parse_only is True:
self.arch = Architecture['x86'] # type: ignore
- self.platform = Architecture['x86'].standalone_platform # type: ignore
+ self.platform = Architecture['x86'].standalone_platform # type: ignore
assert self.parent_view is not None
self.add_auto_segment(0, len(self.parent_view), 0, len(self.parent_view), SegmentFlag.SegmentReadable)
return True
@@ -126,10 +131,13 @@ class MappedView(BinaryView):
load_settings = self.__class__.get_load_settings_for_data(self.parent_view)
arch = load_settings.get_string("loader.architecture", self)
- self.arch = Architecture[arch] # type: ignore
- self.platform = Architecture[arch].standalone_platform # type: ignore
+ self.arch = Architecture[arch] # type: ignore
+ self.platform = Architecture[arch].standalone_platform # type: ignore
self.load_address = load_settings.get_integer("loader.imageBase", self)
- self.add_auto_segment(self.load_address, len(self.parent_view), 0, len(self.parent_view), SegmentFlag.SegmentReadable | SegmentFlag.SegmentExecutable)
+ self.add_auto_segment(
+ self.load_address, len(self.parent_view), 0, len(self.parent_view),
+ SegmentFlag.SegmentReadable | SegmentFlag.SegmentExecutable
+ )
if load_settings.contains("loader.entryPointOffset"):
self.entry_point_offset = load_settings.get_integer("loader.entryPointOffset", self)
self.add_entry_point(self.load_address + self.entry_point_offset)
@@ -156,4 +164,5 @@ class MappedView(BinaryView):
def perform_get_address_size(self):
return self.arch.address_size
+
MappedView.register()