コード例 #1
0
ファイル: risk.py プロジェクト: hetykai/works
    def test(self):
        ##########################
        score_order_sign = {}

        import sys

        sys.path.append("./elsim")
        from elsim.elsign.libelsign import libelsign

        for method in vm.get_methods():
            if method.get_length() < 80:
                continue

            score_order_sign[method] = self.get_method_score(
                method.get_length(),
                libelsign.entropy(
                    vmx.get_method_signature(method, "L4", {"L4": {"arguments": ["Landroid"]}}).get_string()
                ),
                libelsign.entropy(
                    vmx.get_method_signature(method, "L4", {"L4": {"arguments": ["Ljava"]}}).get_string()
                ),
                map(
                    lambda perm: (perm, DVM_PERMISSIONS["MANIFEST_PERMISSION"][perm]),
                    vmx.get_permissions_method(method),
                ),
            )

        for v in sorted(score_order_sign, key=lambda x: score_order_sign[x], reverse=True):
            print v.get_name(), v.get_class_name(), v.get_descriptor(), v.get_length(), score_order_sign[v]

        ##########################

        return val, score_order_sign
コード例 #2
0
ファイル: risk.py プロジェクト: ohyeah521/ApkDetecter-1
    def with_dex_direct(self, vm, vmx, apk=None, analysis_method=None):
        risks = {DANGEROUS_RISK: 0.0,
                 MONEY_RISK: 0.0,
                 PRIVACY_RISK: 0.0,
                 INTERNET_RISK: 0.0,
                 BINARY_RISK: 0.0,
                 DYNAMIC_RISK: 0.0,
        }

        if apk:
            self.__eval_risk_bin(apk.get_files_types(), risks)
            self.__eval_risk_perm(apk.get_details_permissions(), risks)
        else:
            d = {}
            for i in vmx.get_permissions([]):
                d[i] = DVM_PERMISSIONS["MANIFEST_PERMISSION"][i]
            self.__eval_risk_perm(d, risks)

        self.__eval_risk_dyn(vmx, risks)

        val = self.__eval_risks(risks)

        if analysis_method == None:
            return val, {}


        ##########################
        score_order_sign = {}

        import sys

        sys.path.append("./elsim")
        from elsim.elsign.libelsign import libelsign

        for method in vm.get_methods():
            if method.get_length() < 80:
                continue

            score_order_sign[method] = self.get_method_score(method.get_length(),
                                                             libelsign.entropy(vmx.get_method_signature(method, "L4", {
                                                                 "L4": {"arguments": ["Landroid"]}}).get_string()),
                                                             libelsign.entropy(vmx.get_method_signature(method, "L4", {
                                                                 "L4": {"arguments": ["Ljava"]}}).get_string()),
                                                             map(lambda perm: (
                                                                 perm, DVM_PERMISSIONS["MANIFEST_PERMISSION"][perm]),
                                                                 vmx.get_permissions_method(method)),
            )

        for v in sorted(score_order_sign, key=lambda x: score_order_sign[x], reverse=True):
            print v.get_name(), v.get_class_name(), v.get_descriptor(), v.get_length(), score_order_sign[v]

        ##########################

        return val, score_order_sign
コード例 #3
0
    def test(self):
        ##########################
        score_order_sign = {}

        import sys
        sys.path.append("./elsim")
        from elsim.elsign.libelsign import libelsign
        for method in vm.get_methods():
            if method.get_length() < 80:
                continue

            score_order_sign[method] = self.get_method_score(
                method.get_length(),
                libelsign.entropy(
                    vmx.get_method_signature(method, "L4", {
                        "L4": {
                            "arguments": ["Landroid"]
                        }
                    }).get_string()),
                libelsign.entropy(
                    vmx.get_method_signature(method, "L4", {
                        "L4": {
                            "arguments": ["Ljava"]
                        }
                    }).get_string()),
                [(perm, DVM_PERMISSIONS["MANIFEST_PERMISSION"][perm])
                 for perm in vmx.get_permissions_method(method)],
            )

        # for v in sorted(score_order_sign, key=lambda x: score_order_sign[x], reverse=True):
        #     print(v.get_name(), v.get_class_name(), v.get_descriptor(),
        #           v.get_length(), score_order_sign[v])

        ##########################

        return val, score_order_sign