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)
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)
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