forked from tmr232/IDA-Plugin-Manager
/
ipm.py
65 lines (47 loc) · 1.61 KB
/
ipm.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
54
55
56
57
58
59
60
61
62
63
64
65
'''
ipm - IDA Plugin Manager
Usage:
ipm initialize <ida-path>
ipm terminate <ida-path>
ipm add [--user|--system|--dir=<dir>] <name> <path>
ipm remove [--user|--system|--dir=<dir>] <name>
ipm list [--user|--system|--dir=<dir>]
'''
from ida_settings import IDASettings
import docopt
def main():
arguments = docopt.docopt(__doc__)
directory = arguments['--dir']
settings = IDASettings('PluginLoader', directory=directory)
if arguments['add']:
plugin_path = arguments['<path>']
plugin_name = arguments['<name>']
if arguments['--user']:
settings.user[plugin_name] = plugin_path
elif arguments['--system']:
settings.system[plugin_name] = plugin_path
elif arguments['--dir']:
settings.directory[plugin_name] = plugin_path
else:
settings.user[plugin_name] = plugin_path
if arguments['remove']:
plugin_name = arguments['<name>']
if arguments['--user']:
del settings.user[plugin_name]
elif arguments['--system']:
del settings.system[plugin_name]
elif arguments['--dir']:
del settings.directory[plugin_name]
else:
del settings.user[plugin_name]
if arguments['list']:
for name, path in settings.iteritems():
print name, path
if arguments['initialize']:
ida_path = arguments['<ida-path>']
# Copy `plugin_loader.py` to IDA directory.
if arguments['terminate']:
# Remove `plugin_loader.py` from IDA directory.
pass
if __name__ == '__main__':
main()