diff options
| author | Peter LaFosse <peter@vector35.com> | 2017-01-05 09:14:31 -0500 |
|---|---|---|
| committer | Peter LaFosse <peter@vector35.com> | 2017-01-05 09:14:31 -0500 |
| commit | 4761ea9c83104b872d8d49fcde45f17d17e7872d (patch) | |
| tree | 0acca0d74701a834c36f85aebd7dd9955ecbfb8f /python/interaction.py | |
| parent | 96acbed85902d8dfd43ef624afac72145ae6e577 (diff) | |
Modifying how enumerations are exposed and used, and a bunch of cleanup of existing plugins
Diffstat (limited to 'python/interaction.py')
| -rw-r--r-- | python/interaction.py | 45 |
1 files changed, 23 insertions, 22 deletions
diff --git a/python/interaction.py b/python/interaction.py index 1899b7aa..6d640d17 100644 --- a/python/interaction.py +++ b/python/interaction.py @@ -23,6 +23,7 @@ import traceback # Binary Ninja components import _binaryninjacore as core +from enums import FormInputFieldType, MessageBoxIcon, MessageBoxButtonResult import binaryview import log @@ -32,7 +33,7 @@ class LabelField(object): self.text = text def _fill_core_struct(self, value): - value.type = core.BNFormInputFieldType.LabelFormField + value.type = FormInputFieldType.LabelFormField value.prompt = self.text def _fill_core_result(self, value): @@ -44,7 +45,7 @@ class LabelField(object): class SeparatorField(object): def _fill_core_struct(self, value): - value.type = core.BNFormInputFieldType.SeparatorFormField + value.type = FormInputFieldType.SeparatorFormField def _fill_core_result(self, value): pass @@ -59,7 +60,7 @@ class TextLineField(object): self.result = None def _fill_core_struct(self, value): - value.type = core.BNFormInputFieldType.TextLineFormField + value.type = FormInputFieldType.TextLineFormField value.prompt = self.prompt def _fill_core_result(self, value): @@ -75,7 +76,7 @@ class MultilineTextField(object): self.result = None def _fill_core_struct(self, value): - value.type = core.BNFormInputFieldType.MultilineTextFormField + value.type = FormInputFieldType.MultilineTextFormField value.prompt = self.prompt def _fill_core_result(self, value): @@ -91,7 +92,7 @@ class IntegerField(object): self.result = None def _fill_core_struct(self, value): - value.type = core.BNFormInputFieldType.IntegerFormField + value.type = FormInputFieldType.IntegerFormField value.prompt = self.prompt def _fill_core_result(self, value): @@ -109,7 +110,7 @@ class AddressField(object): self.result = None def _fill_core_struct(self, value): - value.type = core.BNFormInputFieldType.AddressFormField + value.type = FormInputFieldType.AddressFormField value.prompt = self.prompt value.view = None if self.view is not None: @@ -130,7 +131,7 @@ class ChoiceField(object): self.result = None def _fill_core_struct(self, value): - value.type = core.BNFormInputFieldType.ChoiceFormField + value.type = FormInputFieldType.ChoiceFormField value.prompt = self.prompt choice_buf = (ctypes.c_char_p * len(self.choices))() for i in xrange(0, len(self.choices)): @@ -152,7 +153,7 @@ class OpenFileNameField(object): self.result = None def _fill_core_struct(self, value): - value.type = core.BNFormInputFieldType.OpenFileNameFormField + value.type = FormInputFieldType.OpenFileNameFormField value.prompt = self.prompt value.ext = self.ext @@ -171,7 +172,7 @@ class SaveFileNameField(object): self.result = None def _fill_core_struct(self, value): - value.type = core.BNFormInputFieldType.SaveFileNameFormField + value.type = FormInputFieldType.SaveFileNameFormField value.prompt = self.prompt value.ext = self.ext value.defaultName = self.default_name @@ -190,7 +191,7 @@ class DirectoryNameField(object): self.result = None def _fill_core_struct(self, value): - value.type = core.DirectoryNameField + value.type = DirectoryNameField value.prompt = self.prompt value.defaultName = self.default_name @@ -335,31 +336,31 @@ class InteractionHandler(object): try: field_objs = [] for i in xrange(0, count): - if fields[i].type == core.BNFormInputFieldType.LabelFormField: + if fields[i].type == FormInputFieldType.LabelFormField: field_objs.append(LabelField(fields[i].prompt)) - elif fields[i].type == core.BNFormInputFieldType.SeparatorFormField: + elif fields[i].type == FormInputFieldType.SeparatorFormField: field_objs.append(SeparatorField()) - elif fields[i].type == core.BNFormInputFieldType.TextLineFormField: + elif fields[i].type == FormInputFieldType.TextLineFormField: field_objs.append(TextLineField(fields[i].prompt)) - elif fields[i].type == core.BNFormInputFieldType.MultilineTextFormField: + elif fields[i].type == FormInputFieldType.MultilineTextFormField: field_objs.append(MultilineTextField(fields[i].prompt)) - elif fields[i].type == core.BNFormInputFieldType.IntegerFormField: + elif fields[i].type == FormInputFieldType.IntegerFormField: field_objs.append(IntegerField(fields[i].prompt)) - elif fields[i].type == core.BNFormInputFieldType.AddressFormField: + elif fields[i].type == FormInputFieldType.AddressFormField: view = None if fields[i].view: view = binaryview.BinaryView(handle = core.BNNewViewReference(fields[i].view)) field_objs.append(AddressField(fields[i].prompt, view, fields[i].currentAddress)) - elif fields[i].type == core.BNFormInputFieldType.ChoiceFormField: + elif fields[i].type == FormInputFieldType.ChoiceFormField: choices = [] for i in xrange(0, fields[i].count): choices.append(fields[i].choices[i]) field_objs.append(ChoiceField(fields[i].prompt, choices)) - elif fields[i].type == core.BNFormInputFieldType.OpenFileNameFormField: + elif fields[i].type == FormInputFieldType.OpenFileNameFormField: field_objs.append(OpenFileNameField(fields[i].prompt, fields[i].ext)) - elif fields[i].type == core.BNFormInputFieldType.SaveFileNameFormField: + elif fields[i].type == FormInputFieldType.SaveFileNameFormField: field_objs.append(SaveFileNameField(fields[i].prompt, fields[i].ext, fields[i].defaultName)) - elif fields[i].type == core.DirectoryNameField: + elif fields[i].type == DirectoryNameField: field_objs.append(DirectoryNameField(fields[i].prompt, fields[i].defaultName)) else: field_objs.append(LabelField(fields[i].prompt)) @@ -419,7 +420,7 @@ class InteractionHandler(object): return False def show_message_box(self, title, text, buttons, icon): - return core.BNMessageBoxButtonResult.CancelButton + return MessageBoxButtonResult.CancelButton def markdown_to_html(contents): @@ -516,5 +517,5 @@ def get_form_input(fields, title): return True -def show_message_box(title, text, buttons = core.BNMessageBoxButtonResult.OKButton, icon = core.BNMessageBoxIcon.InformationIcon): +def show_message_box(title, text, buttons = MessageBoxButtonResult.OKButton, icon = MessageBoxIcon.InformationIcon): return core.BNShowMessageBox(title, text, buttons, icon) |
