interaction module

binaryninja.interaction.AddressField(prompt)

AddressField prompts the user for an address.

binaryninja.interaction.ChoiceField(prompt, …)

ChoiceField prompts the user to choose from the list of strings provided in choices.

binaryninja.interaction.DirectoryNameField(prompt)

DirectoryNameField prompts the user to specify a directory name to open.

binaryninja.interaction.FlowGraphReport(…)

binaryninja.interaction.HTMLReport(title, …)

binaryninja.interaction.IntegerField(prompt)

IntegerField add prompt for integer.

binaryninja.interaction.InteractionHandler()

binaryninja.interaction.LabelField(text)

LabelField adds a text label to the display.

binaryninja.interaction.MarkdownReport(…)

binaryninja.interaction.MultilineTextField(prompt)

MultilineTextField add multi-line text string input field.

binaryninja.interaction.OpenFileNameField(prompt)

OpenFileNameField prompts the user to specify a file name to open.

binaryninja.interaction.PlainTextReport(…)

binaryninja.interaction.ReportCollection([…])

binaryninja.interaction.SaveFileNameField(prompt)

SaveFileNameField prompts the user to specify a file name to save.

binaryninja.interaction.SeparatorField

SeparatorField adds vertical separation to the display.

binaryninja.interaction.TextLineField(prompt)

TextLineField Adds prompt for text string input.

binaryninja.interaction.get_address_input(…)

get_address_input prompts the user for an address with the given prompt and title

binaryninja.interaction.get_choice_input(…)

get_choice_input prompts the user to select the one of the provided choices

binaryninja.interaction.get_directory_name_input(prompt)

get_directory_name_input prompts the user for a directory name to save as, optionally providing a default_name

binaryninja.interaction.get_form_input(…)

get_from_input Prompts the user for a set of inputs specified in fields with given title.

binaryninja.interaction.get_int_input(…)

get_int_input prompts the user to input a integer with the given prompt and title

binaryninja.interaction.get_open_filename_input(prompt)

get_open_filename_input prompts the user for a file name to open

binaryninja.interaction.get_save_filename_input(prompt)

get_save_filename_input prompts the user for a file name to save as, optionally providing a file extension and default_name

binaryninja.interaction.get_text_line_input(…)

get_text_line_input prompts the user to input a string with the given prompt and title

binaryninja.interaction.markdown_to_html(…)

markdown_to_html converts the provided markdown to HTML

binaryninja.interaction.show_graph_report(…)

show_graph_report displays a flow graph in UI applications

binaryninja.interaction.show_html_report(…)

show_html_report displays the HTML contents in UI applications and plaintext in command-line applications.

binaryninja.interaction.show_markdown_report(…)

show_markdown_report displays the markdown contents in UI applications and plaintext in command-line applications.

binaryninja.interaction.show_message_box(…)

show_message_box Displays a configurable message box in the UI, or prompts on the console as appropriate retrieves a list of all Symbol objects of the provided symbol type in the optionally provided range.

binaryninja.interaction.show_plain_text_report(…)

show_plain_text_report displays contents to the user in the UI or on the command-line

binaryninja.interaction.show_report_collection(…)

show_report_collection displays multiple reports in UI applications

class AddressField(prompt, view=None, current_address=0)[source]

Bases: object

AddressField prompts the user for an address. By passing the optional view and current_address parameters offsets can be used instead of just an address. The result is stored as in int in self.result.

Note: This API currently functions differently on the command-line, as the view and current_address are disregarded. Additionally where as in the UI the result defaults to hexadecimal on the command-line 0x must be specified.

current_address
prompt
result
view
class ChoiceField(prompt, choices)[source]

Bases: object

ChoiceField prompts the user to choose from the list of strings provided in choices. Result is stored in self.result as an index in to the choices array.

Attr str prompt

prompt to be presented to the user

Attr list(str) choices

list of choices to choose from

choices
prompt
result
class DirectoryNameField(prompt, default_name='')[source]

Bases: object

DirectoryNameField prompts the user to specify a directory name to open. Result is stored in self.result as a string.

default_name
prompt
result
class FlowGraphReport(title, graph, view=None)[source]

Bases: object

graph
title
view
class HTMLReport(title, contents, plaintext='', view=None)[source]

Bases: object

contents
plaintext
title
view
class IntegerField(prompt)[source]

Bases: object

IntegerField add prompt for integer. Result is stored in self.result as an int.

prompt
result
class InteractionHandler[source]

Bases: object

get_address_input(prompt, title, view, current_address)[source]
get_choice_input(prompt, title, choices)[source]
get_directory_name_input(prompt, default_name)[source]
get_form_input(fields, title)[source]
get_int_input(prompt, title)[source]
get_open_filename_input(prompt, ext)[source]
get_save_filename_input(prompt, ext, default_name)[source]
get_text_line_input(prompt, title)[source]
register()[source]
show_graph_report(view, title, graph)[source]
show_html_report(view, title, contents, plaintext)[source]
show_markdown_report(view, title, contents, plaintext)[source]
show_message_box(title, text, buttons, icon)[source]
show_plain_text_report(view, title, contents)[source]
show_report_collection(title, reports)[source]
class LabelField(text)[source]

Bases: object

LabelField adds a text label to the display.

text
class MarkdownReport(title, contents, plaintext='', view=None)[source]

Bases: object

contents
plaintext
title
view
class MultilineTextField(prompt)[source]

Bases: object

MultilineTextField add multi-line text string input field. Result is stored in self.result as a string. This option is not supported on the command-line.

prompt
result
class OpenFileNameField(prompt, ext='')[source]

Bases: object

OpenFileNameField prompts the user to specify a file name to open. Result is stored in self.result as a string.

ext
prompt
result
class PlainTextReport(title, contents, view=None)[source]

Bases: object

contents
title
view
class ReportCollection(handle=None)[source]

Bases: object

append(report)[source]
class SaveFileNameField(prompt, ext='', default_name='')[source]

Bases: object

SaveFileNameField prompts the user to specify a file name to save. Result is stored in self.result as a string.

default_name
ext
prompt
result
class SeparatorField[source]

Bases: object

SeparatorField adds vertical separation to the display.

class TextLineField(prompt)[source]

Bases: object

TextLineField Adds prompt for text string input. Result is stored in self.result as a string on completion.

prompt
result
get_address_input(prompt, title)[source]

get_address_input prompts the user for an address with the given prompt and title

Note: This API function differently on the command-line vs the UI. In the UI a pop-up is used. On the command-line a simple text prompt is used.

Parameters
  • prompt (str) – String to prompt with.

  • title (str) – Title of the window when executed in the UI.

Return type

integer value input by the user.

Example
>>> get_address_input("PROMPT>", "getinfo")
PROMPT> 10
10L
get_choice_input(prompt, title, choices)[source]

get_choice_input prompts the user to select the one of the provided choices

Note: This API function differently on the command-line vs the UI. In the UI a pop-up is used. On the command-line a simple text prompt is used. The UI uses a combo box.

Parameters
  • prompt (str) – String to prompt with.

  • title (str) – Title of the window when executed in the UI.

  • choices (list(str)) – A list of strings for the user to choose from.

Return type

integer array index of the selected option

Example
>>> get_choice_input("PROMPT>", "choices", ["Yes", "No", "Maybe"])
choices
1) Yes
2) No
3) Maybe
PROMPT> 1
0L
get_directory_name_input(prompt, default_name='')[source]

get_directory_name_input prompts the user for a directory name to save as, optionally providing a default_name

Note: This API function differently on the command-line vs the UI. In the UI a pop-up is used. On the command-line a simple text prompt is used. The UI uses the native window pop-up for file selection.

Parameters
  • prompt (str) – Prompt to display.

  • default_name (str) – Optional, default directory name.

Return type

str

Example
>>> get_directory_name_input("prompt")
prompt dirname
'dirname'
get_form_input(fields, title)[source]

get_from_input Prompts the user for a set of inputs specified in fields with given title. The fields parameter is a list which can contain the following types:

  • str - an alias for LabelField

  • None - an alias for SeparatorField

  • LabelField - Text output

  • SeparatorField - Vertical spacing

  • TextLineField - Prompt for a string value

  • MultilineTextField - Prompt for multi-line string value

  • IntegerField - Prompt for an integer

  • AddressField - Prompt for an address

  • ChoiceField - Prompt for a choice from provided options

  • OpenFileNameField - Prompt for file to open

  • SaveFileNameField - Prompt for file to save to

  • DirectoryNameField - Prompt for directory name

This API is flexible and works both in the UI via a pop-up dialog and on the command-line. Note that more complicated APIs should consider using the included pyside2 functionality in the binaryninjaui module. Returns true or false depending on whether the user submitted responses or cancelled the dialog.

Parameters
Return type

bool

Example
>>> int_f = IntegerField("Specify Integer")
>>> tex_f = TextLineField("Specify name")
>>> choice_f = ChoiceField("Options", ["Yes", "No", "Maybe"])
>>> get_form_input(["Get Data", None, int_f, tex_f, choice_f], "The options")
Get Data
<empty>
Specify Integer 1337
Specify name Peter
The options
1) Yes
2) No
3) Maybe
Options 1
>>> True
>>> print(tex_f.result, int_f.result, choice_f.result)
Peter 1337 0
get_int_input(prompt, title)[source]

get_int_input prompts the user to input a integer with the given prompt and title

Note: This API function differently on the command-line vs the UI. In the UI a pop-up is used. On the command-line a simple text prompt is used.

Parameters
  • prompt (str) – String to prompt with.

  • title (str) – Title of the window when executed in the UI.

Return type

integer value input by the user.

Example
>>> get_int_input("PROMPT>", "getinfo")
PROMPT> 10
10
get_open_filename_input(prompt, ext='')[source]

get_open_filename_input prompts the user for a file name to open

Note: This API function differently on the command-line vs the UI. In the UI a pop-up is used. On the command-line a simple text prompt is used. The UI uses the native window pop-up for file selection.

Multiple file selection groups can be included if separated by two semicolons. Multiple file wildcards may be specified by using a space within the parenthesis.

Also, a simple selector of “*.extension” by itself may also be used instead of specifying the description.

Parameters
  • prompt (str) – Prompt to display.

  • ext (str) – Optional, file extension

Example
>>> get_open_filename_input("filename:", "Executables (*.exe *.com);;Python Files (*.py);;All Files (*)")
b'foo.exe'
>>> get_open_filename_input("filename:", "*.py")
b'test.py'
get_save_filename_input(prompt, ext='', default_name='')[source]

get_save_filename_input prompts the user for a file name to save as, optionally providing a file extension and default_name

Note: This API function differently on the command-line vs the UI. In the UI a pop-up is used. On the command-line a simple text prompt is used. The UI uses the native window pop-up for file selection.

Parameters
  • prompt (str) – Prompt to display.

  • ext (str) – Optional, file extension

  • default_name (str) – Optional, default file name.

Example
>>> get_save_filename_input("filename:", "exe", "foo.exe")
filename: foo.exe
'foo.exe'
get_text_line_input(prompt, title)[source]

get_text_line_input prompts the user to input a string with the given prompt and title

Note: This API function differently on the command-line vs the UI. In the UI a pop-up is used. On the command-line a simple text prompt is used.

Parameters
  • prompt (str) – String to prompt with.

  • title (str) – Title of the window when executed in the UI.

Return type

str containing the input without trailing newline character.

Example
>>> get_text_line_input("PROMPT>", "getinfo")
PROMPT> Input!
'Input!'
markdown_to_html(contents)[source]

markdown_to_html converts the provided markdown to HTML

Parameters

contents (str) – Markdown contents to convert to HTML

Return type

str

Example
>>> markdown_to_html("##Yay")
'<h2>Yay</h2>'
show_graph_report(title, graph)[source]

show_graph_report displays a flow graph in UI applications

Note: This API function will have no effect outside the UI.

Parameters

graph (FlowGraph) – Flow graph to display

Return type

None

show_html_report(title, contents, plaintext='')[source]

show_html_report displays the HTML contents in UI applications and plaintext in command-line applications. This API doesn’t support hyperlinking into the BinaryView, use the BinaryView.show_html_report if hyperlinking is needed.

Note: This API function differently on the command-line vs the UI. In the UI a pop-up is used. On the command-line a simple text prompt is used.

Parameters
  • contents (str) – HTML contents to display

  • plaintext (str) – Plain text version to display (used on the command-line)

Return type

None

Example
>>> show_html_report("title", "<h1>Contents</h1>", "Plain text contents")
Plain text contents
show_markdown_report(title, contents, plaintext='')[source]

show_markdown_report displays the markdown contents in UI applications and plaintext in command-line applications. This API doesn’t support hyperlinking into the BinaryView, use the BinaryView.show_markdown_report if hyperlinking is needed.

Note: This API function differently on the command-line vs the UI. In the UI a pop-up is used. On the command-line a simple text prompt is used.

Parameters
  • contents (str) – markdown contents to display

  • plaintext (str) – Plain text version to display (used on the command-line)

Return type

None

Example
>>> show_markdown_report("title", "##Contents", "Plain text contents")
Plain text contents
show_message_box(title, text, buttons=<MessageBoxButtonSet.OKButtonSet: 0>, icon=<MessageBoxIcon.InformationIcon: 0>)[source]

show_message_box Displays a configurable message box in the UI, or prompts on the console as appropriate retrieves a list of all Symbol objects of the provided symbol type in the optionally provided range.

Parameters
  • title (str) – Text title for the message box.

  • text (str) – Text for the main body of the message box.

  • buttons (MessageBoxButtonSet) – One of MessageBoxButtonSet

  • icon (MessageBoxIcon) – One of MessageBoxIcon

Returns

Which button was selected

Return type

MessageBoxButtonResult

show_plain_text_report(title, contents)[source]

show_plain_text_report displays contents to the user in the UI or on the command-line

Note: This API functions differently on the command-line vs the UI. In the UI, a pop-up is used. On the command-line, a simple text prompt is used.

Parameters
  • title (str) – title to display in the UI pop-up

  • contents (str) – plaintext contents to display

Return type

None

Example
>>> show_plain_text_report("title", "contents")
contents
show_report_collection(title, reports)[source]

show_report_collection displays multiple reports in UI applications

Note: This API function will have no effect outside the UI.

Parameters

reports (ReportCollection) – Reports to display

Return type

None