/
__init__.py
53 lines (46 loc) · 1.76 KB
/
__init__.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import os
import shutil
import time
try:
# for Python2
from Tkinter import Tk
except ImportError:
# for Python3
from tkinter import Tk
from binaryninja import *
class Funcs(object):
def addtoclipboard(self,text):
r = Tk()
r.withdraw()
r.clipboard_clear()
r.clipboard_append(text)
r.update() # ensures it stays in the clipboard when window closes
r.destroy()
def disasm(self, bv, addr=0):
text=""
print(hex(addr))
for block in bv.get_functions_containing(addr)[0].basic_blocks:
for line in block.get_disassembly_text():
text+=str(line)+"\n"
self.addtoclipboard(text)
binaryninja.interaction.show_message_box("Success","Copied Disasm to clipboard")
def llil(self, bv, addr=0):
text=""
print(hex(addr))
for current_llil in bv.get_functions_containing(addr)[0].low_level_il:
for index in range(len(current_llil)):
text += str(current_llil[index])+"\n"
self.addtoclipboard(text)
binaryninja.interaction.show_message_box("Success","Copied llil to clipboard")
def mlil(self, bv, addr=0):
text=""
print(hex(addr))
for current_mlil in bv.get_functions_containing(addr)[0].medium_level_il:
for index in range(len(current_mlil)):
text += str(current_mlil[index])+"\n"
self.addtoclipboard(text)
binaryninja.interaction.show_message_box("Success","Copied mlil to clipboard")
f = Funcs()
PluginCommand.register_for_address('- disasm2clipboard -', '', f.disasm)
PluginCommand.register_for_address('- llil2clipboard -', '', f.llil)
PluginCommand.register_for_address('- mlil2clipboard -', '', f.mlil)