예제 #1
0
파일: policy.py 프로젝트: zysyyz/Coeus
 def so_policy(self):
     if FileUtils.is_dir_exit(config.jni_path):
         arm_64 = os.path.join(config.jni_path, "arm64-v8a")
         x86_64 = os.path.join(config.jni_path, "x86_64")
         if not FileUtils.is_dir_exit(arm_64) and not FileUtils.is_dir_exit(
                 x86_64):
             self.so_64 = True
     else:
         if FileUtils.is_dir_exit(config.unzip_path):
             arm_64_2 = os.path.join(config.unzip_path, "arm64-v8a")
             x86_64_2 = os.path.join(config.unzip_path, "x86_64")
             self.so_64 = FileUtils.is_dir_empty(
                 arm_64_2) and FileUtils.is_dir_empty(x86_64_2)
예제 #2
0
파일: manager.py 프로젝트: zysyyz/Coeus
    def smali_decompile(self, jar_path):
        dx_path = os.path.join(config.TOOL_PATH, "dx.jar")
        dex_path = os.path.join(config.unzip_path, "classes.dex")
        baksmali_jar_path = os.path.join(config.TOOL_PATH, "baksmali.jar")

        process = subprocess.Popen(
            ["java", "-jar", dx_path, "--dex", "--output", dex_path, jar_path],
            stdout=subprocess.PIPE,
            stderr=subprocess.STDOUT)
        process.communicate()

        if FileUtils.is_file_exit(dex_path):
            try:
                command = 'java -jar \"%s\" -o \"%s\" \"%s\"' % (
                    baksmali_jar_path, config.smali_path, dex_path)
                p = subprocess.Popen(command,
                                     stdin=subprocess.PIPE,
                                     stdout=subprocess.PIPE,
                                     stderr=subprocess.PIPE,
                                     shell=True)
                ret = p.communicate()
                if FileUtils.is_dir_empty(config.smali_path):
                    logging.error(u"反编译smali失败")
                    return False
            except Exception as e:
                logging.error(u"反编译smali失败,原因:%s", e)
                return False

        return True