Ejemplo n.º 1
0
def main():
    if not idaapi.init_hexrays_plugin():
        return False

    print "Hex-rays version %s has been detected" % idaapi.get_hexrays_version(
    )
    idaapi.install_hexrays_callback(event_callback)
Ejemplo n.º 2
0
def versions():
    """Returns IDA & Python versions"""
    import sys
    return {
        'python': sys.version,
        'ida': idaapi.get_kernel_version(),
        'hexrays': idaapi.get_hexrays_version() if idaapi.init_hexrays_plugin() else None
    }
Ejemplo n.º 3
0
    def init(self):
        if not idaapi.init_hexrays_plugin():
            return idaapi.PLUGIN_SKIP

        idaapi.install_hexrays_callback(callback)
        log.info(("Hex-Rays version {} has been detected; "
                  "{} is ready to use").format(
                  idaapi.get_hexrays_version(), self.wanted_name))
        self.inited = True
        return idaapi.PLUGIN_KEEP
Ejemplo n.º 4
0
def versions():
    """Returns IDA & Python versions"""
    import sys
    return {
        'python':
        sys.version,
        'ida':
        idaapi.get_kernel_version(),
        'hexrays':
        idaapi.get_hexrays_version() if idaapi.init_hexrays_plugin() else None
    }
Ejemplo n.º 5
0
def versions():
    """Returns IDA & Python versions"""
    import sys

    return {
        "python":
        sys.version,
        "ida":
        idaapi.get_kernel_version(),
        "hexrays":
        idaapi.get_hexrays_version() if idaapi.init_hexrays_plugin() else None,
    }
Ejemplo n.º 6
0
    def init(self):
        if not idaapi.init_hexrays_plugin():
            log.error("Decompiler is not ready")
            return idaapi.PLUGIN_SKIP

        if not idaapi.install_hexrays_callback(callback):
            log.error("Failed to install hexrays callback")
            return idaapi.PLUGIN_SKIP

        log.info(
            "Hex-Rays version %s has been detected; %s is ready to use",
            idaapi.get_hexrays_version(),
            self.wanted_name,
        )

        self.inited = True
        return idaapi.PLUGIN_KEEP
Ejemplo n.º 7
0
def main():
    if not idaapi.init_hexrays_plugin():
        return False

    print "Hex-rays version %s has been detected" % idaapi.get_hexrays_version()

    f = idaapi.get_func(idaapi.get_screen_ea());
    if f is None:
        print "Please position the cursor within a function"
        return True

    cfunc = idaapi.decompile(f);
    if cfunc is None:
        print "Failed to decompile!"
        return True

    sv = cfunc.get_pseudocode();
    for sline in sv:
        print idaapi.tag_remove(sline.line);

    return True
Ejemplo n.º 8
0
    def __init__(self):
        self.enabled = False
        self.prev_ea = None
        self.discarded_ea = None
        self.last_func = None
        self.vdui_t = None
        self.cfunc = None
        self.eamap = None
        self.safe_mode = False
        self.event_cb = HexEventCb(self).event_cb

        if not idaapi.init_hexrays_plugin():
            print("[sync] hexrays not available")
        else:
            version = idaapi.get_hexrays_version()
            print("[sync] hexrays #{} found".format(version))
            major, minor, revision, build_date = [int(x) for x in version.split('.')]

            if (major < 7) or (major >= 7 and minor < 2):
                print("[sync] hexrays version >= 7.2 is needed")
                self.safe_mode = True
Ejemplo n.º 9
0
def main():
    if not idaapi.init_hexrays_plugin():
        return False

    print "Hex-rays version %s has been detected" % idaapi.get_hexrays_version(
    )

    f = idaapi.get_func(idaapi.get_screen_ea())
    if f is None:
        print "Please position the cursor within a function"
        return True

    cfunc = idaapi.decompile(f)
    if cfunc is None:
        print "Failed to decompile!"
        return True

    sv = cfunc.get_pseudocode()
    for i in xrange(0, sv.size()):
        line = idaapi.tag_remove(str(sv[i]))
        print line

    return True
Ejemplo n.º 10
0
        print('Vars collected.')
        return 1


def main():
    global renamed_prefix
    global varmap
    global varnames
    renamed_prefix = os.path.join(os.environ['OUTPUT_DIR'], 'functions',
                                  os.environ['PREFIX'])
    # Load collected variables
    with open(os.environ['COLLECTED_VARS']) as vars_fh:
        varmap = pickle.load(vars_fh)

    # Collect decompilation info
    cv = collect_vars()
    cv.activate(None)


idaapi.autoWait()
if not idaapi.init_hexrays_plugin():
    idaapi.load_plugin('hexrays')
    idaapi.load_plugin('hexx64')
    if not idaapi.init_hexrays_plugin():
        print('Unable to load Hex-rays')
    else:
        print('Hex-rays version %s has been detected' %
              idaapi.get_hexrays_version())
main()
ida_pro.qexit(0)
Ejemplo n.º 11
0
        print('Collecting vars.')
        for ea in Functions():
            func(ea)
        print('Vars collected.')
        return 1

class dump_info(custom_action_handler):
    def activate(self, ctx):
        with open(os.environ['COLLECTED_VARS'], 'w') as vars_fh:
            pickle.dump(varmap, vars_fh)
            vars_fh.flush()
        return 1

idaapi.autoWait()
if not idaapi.init_hexrays_plugin():
    idaapi.load_plugin('hexrays')
    idaapi.load_plugin('hexx64')
    if not idaapi.init_hexrays_plugin():
        print('Unable to load Hex-rays')
    else:
        print('Hex-rays version %s has been detecetd' % idaapi.get_hexrays_version())

def main():
    cv = collect_vars()
    cv.activate(None)
    dv = dump_info()
    dv.activate(None)

main()
ida_pro.qexit(0)
Ejemplo n.º 12
0
def main():
    if not idaapi.init_hexrays_plugin():
        return False

    print "Hex-rays version %s has been detected" % idaapi.get_hexrays_version()
    idaapi.install_hexrays_callback(event_callback)