コード例 #1
0
def sym(comp_id, hash, file, lib, os, fmt_append_zero, fmt_str_type,
        fmt_to_lower, fmt_to_upper):
    logger = Logger("CLI")

    if file:
        hashes = read_source_file(file)
    else:
        hashes = hash

    if not hashes:
        logger.log_normal("Nothing to resolve")
        return

    r = None
    if os == "win":
        r = Resolver.for_win()
    elif os == "linux":
        r = Resolver.for_linux()
    else:
        logger.log_error("Invalid OS type (%s)" % os)
        return

    libs = lib
    if not libs:
        libs = r.libs

    sf = StringFmt(append_zero=fmt_append_zero,
                   char_sz=1 if fmt_str_type == "acs" else 2,
                   to_lower=fmt_to_lower,
                   to_upper=fmt_to_upper)
    try:
        resolved_symbols = r.find_symbol(comp_id, hashes, libs, fmt=sf)
    except ComparatorNotFound as ex:
        logger.log_error("Finding error: %s" % ex.message)
        return

    if not resolved_symbols:
        logger.log_normal("Nothing found")
        return

    if not view_results(resolved_symbols, PRINT_TYPE_SYM):
        logger.log_error("Print results failed")