import unicodedata
import subprocess
import threading
+import inspect
import sys
import os
__credits__ = []
__license__ = 'GPL'
-__version__ = '0.3'
+__version__ = '0.4'
__maintainer__ = 'Nadeem Douba'
__email__ = 'ndouba@gmail.com'
__status__ = 'Development'
return synced_func
+def get_transform_version(transform):
+ spec = inspect.getargspec(transform)
+ if spec.varargs is not None:
+ return 3
+ n = len(spec.args)
+ if 2 <= n <= 3:
+ return n
+ raise Exception('Could not determine transform version.')
+
+
def fix_etree():
try:
from xml.etree.cElementTree import XML
except SyntaxError:
import canari.xmltools.fixetree
+
def get_bin_dir():
d = install(Distribution())
d.finalize_options()
def project_root():
-
marker = '.canari'
-
for i in range(0, 5):
if os.path.exists(marker):
return os.path.dirname(os.path.realpath(marker))
marker = '..%s%s' % (os.sep, marker)
-
print 'Unable to determine project root.'
exit(-1)
from argparse import ArgumentParser
from traceback import format_exc
-from canari.maltego.message import MaltegoException, MaltegoTransformResponseMessage, UIMessage
-from common import croak, import_transform, cmd_name, console_message, fix_binpath, sudo
+from common import croak, import_transform, cmd_name, console_message, fix_binpath, sudo, get_transform_version
+from canari.maltego.message import (MaltegoException, MaltegoTransformResponseMessage, UIMessage,
+ MaltegoTransformRequestMessage)
from canari.maltego.utils import onterminate, parseargs
from canari.config import config
__credits__ = []
__license__ = 'GPL'
-__version__ = '0.3'
+__version__ = '0.4'
__maintainer__ = 'Nadeem Douba'
__email__ = 'ndouba@gmail.com'
__status__ = 'Development'
m.__setattr__('onterminate', lambda *args: exit(-1))
msg = m.dotransform(
- type(
- 'MaltegoTransformRequestMessage',
- (object,),
- {
- 'value' : value,
- 'fields' : fields,
- 'params' : params
- }
- )(),
+ MaltegoTransformRequestMessage(value, fields, params),
MaltegoTransformResponseMessage()
+ ) if get_transform_version(m.dotransform) == 2 else m.dotransform(
+ MaltegoTransformRequestMessage(value, fields, params),
+ MaltegoTransformResponseMessage(),
+ config
)
if isinstance(msg, MaltegoTransformResponseMessage):
from re import sub, findall
from hashlib import md5
-from canari.maltego.message import (MaltegoTransformResponseMessage, MaltegoException,
+from canari.maltego.message import (MaltegoTransformResponseMessage, MaltegoException, MaltegoTransformRequestMessage,
MaltegoTransformExceptionMessage, MaltegoMessage, Message)
-from common import cmd_name, import_transform, fix_binpath, fix_pypath, import_package
+from common import cmd_name, import_transform, fix_binpath, fix_pypath, import_package, get_transform_version
from canari.config import config
__credits__ = []
__license__ = 'GPL'
-__version__ = '0.5'
+__version__ = '0.6'
__maintainer__ = 'Nadeem Douba'
__email__ = 'ndouba@gmail.com'
__status__ = 'Development'
config['default/%s' % k] = i
limits = xml.find('Limits').attrib
-
msg = t[0](
- type(
- 'MaltegoTransformRequestMessage',
- (object,),
- {
- 'value' : value,
- 'fields' : fields,
- 'params' : params,
- 'limits' : limits
- }
- )(),
+ MaltegoTransformRequestMessage(value, fields, params, limits),
request_str if hasattr(t[0], 'cmd') and callable(t[0].cmd) else MaltegoTransformResponseMessage()
+ ) if get_transform_version(t[0]) == 2 else t[0](
+ MaltegoTransformRequestMessage(value, fields, params, limits),
+ request_str if hasattr(t[0], 'cmd') and callable(t[0].cmd) else MaltegoTransformResponseMessage(),
+ config
)
-
if isinstance(msg, MaltegoTransformResponseMessage) or isinstance(msg, basestring):
message(msg, self)
return
from argparse import ArgumentParser
-from canari.maltego.message import MaltegoException, MaltegoTransformResponseMessage, UIMessage
-from common import cmd_name, import_transform, fix_binpath, sudo
+from canari.maltego.message import (MaltegoException, MaltegoTransformResponseMessage, UIMessage,
+ MaltegoTransformRequestMessage)
from canari.maltego.utils import onterminate, parseargs, croak, message
+from common import cmd_name, import_transform, fix_binpath, sudo, get_transform_version
from canari.config import config
__credits__ = []
__license__ = 'GPL'
-__version__ = '0.3'
+__version__ = '0.4'
__maintainer__ = 'Nadeem Douba'
__email__ = 'ndouba@gmail.com'
__status__ = 'Development'
m.__setattr__('onterminate', lambda *args: exit(-1))
msg = m.dotransform(
- type(
- 'MaltegoTransformRequestMessage',
- (object,),
- {
- 'value' : value,
- 'fields' : fields,
- 'params' : params
- }
- )(),
+ MaltegoTransformRequestMessage(value, fields, params),
MaltegoTransformResponseMessage()
+ ) if get_transform_version(m.dotransform) == 2 else m.dotransform(
+ MaltegoTransformRequestMessage(value, fields, params),
+ MaltegoTransformResponseMessage(),
+ config
)
if isinstance(msg, MaltegoTransformResponseMessage):