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