示例#1
0
def decompile_java(dex_path, des_path):
    try:
        jadx_path = config.LIB_JADX_PATH
        cmd ="{0} --show-bad-code --no-imports --deobf -d {1} {2}".format(jadx_path,des_path,dex_path)
        os.system(cmd)
        print(cmd)
    except Exception as e:
        log.print_and_write(LOG_FILE, e, type="ERROR", remark=dex_path)
示例#2
0
def decompile_smali(dex_path, des_path):
    try:
        smali_jar_path = config.LIB_BAKSMALI_PATH
        cmd = "java -jar {0} d {1} -o {2}".format(smali_jar_path, dex_path,
                                                  des_path)
        os.system(cmd)
        print(cmd)
    except Exception as e:
        log.print_and_write(LOG_FILE, e, type="ERROR", remark=dex_path)
示例#3
0
def decompile_java(dex_path, des_path):
    try:
        jadx_path = config.LIB_JADX_PATH
        cmd ="{0} --show-bad-code --no-imports --deobf -d {1} {2}".format(jadx_path,des_path,dex_path)
        os.system(cmd)
        print(cmd)
    except Exception as e:
        log.print_and_write(LOG_FILE, e, type="ERROR", remark=dex_path)

if __name__ == "__main__":


    dir_paths = db_apis.get_valid_decompress_dir_path()

    log.print_and_write(LOG_FILE,"Total get {0} dir paths".format(len(dir_paths)))

    des_paths = []
    for dir_path in dir_paths:
        des_path = os.path.join(config.DATA_MALWARE_DECOMPILE_JAVA_PATH,dir_path.split("\\")[-1])
        if os.path.exists(des_path) == False:
            des_paths.append((dir_path,des_path))

    log.print_and_write(LOG_FILE,"{0} files has been decompiled".format(len(dir_paths)-len(des_paths)))

    log.print_and_write(LOG_FILE, "{0} files need to decompiled".format(len(des_paths)))
    count = len(des_paths)
    for src_path, des_path in des_paths:
        dex_path = os.path.join(src_path,"classes.dex")
        decompile_java(dex_path,des_path)
        count -= 1