def _get_incoming_flag_value(self, ctxt, reg, func, result):
		try:
			func_obj = function.Function(binaryview.BinaryView(handle = core.BNGetFunctionData(func)),
				core.BNNewFunctionReference(func))
			reg_name = self.arch.get_reg_name(reg)
			api_obj = self.perform_get_incoming_flag_value(reg_name, func_obj)._to_api_object()
		except:
			log.log_error(traceback.format_exc())
			api_obj = function.RegisterValue()._to_api_object()
		result[0].state = api_obj.state
		result[0].value = api_obj.value
Exemple #2
0
 def _set_current_function(self, ctxt, func):
     try:
         if func:
             func = function.Function(
                 binaryview.BinaryView(handle=core.BNGetFunctionData(func)),
                 core.BNNewFunctionReference(func))
         else:
             func = None
         self.perform_set_current_function(func)
     except:
         log.log.log_error(traceback.format_exc())
 def _function_action(cls, view, func, action):
     try:
         file_metadata = filemetadata.FileMetadata(
             handle=core.BNGetFileForView(view))
         view_obj = binaryview.BinaryView(
             file_metadata=file_metadata,
             handle=core.BNNewViewReference(view))
         func_obj = function.Function(view_obj,
                                      core.BNNewFunctionReference(func))
         action(view_obj, func_obj)
     except:
         log.log_error(traceback.format_exc())
Exemple #4
0
 def _recognize_medium_level_il(self, ctxt, data, func, il):
     try:
         file_metadata = filemetadata.FileMetadata(
             handle=core.BNGetFileForView(data))
         view = binaryview.BinaryView(file_metadata=file_metadata,
                                      handle=core.BNNewViewReference(data))
         func = function.Function(view,
                                  handle=core.BNNewFunctionReference(func))
         il = mediumlevelil.MediumLevelILFunction(
             func.arch, handle=core.BNNewMediumLevelILFunctionReference(il))
         return self.recognize_medium_level_il(view, func, il)
     except:
         log.log_error(traceback.format_exc())
         return False
 def _function_is_valid(cls, view, func, is_valid):
     try:
         if is_valid is None:
             return True
         file_metadata = filemetadata.FileMetadata(
             handle=core.BNGetFileForView(view))
         view_obj = binaryview.BinaryView(
             file_metadata=file_metadata,
             handle=core.BNNewViewReference(view))
         func_obj = function.Function(view_obj,
                                      core.BNNewFunctionReference(func))
         return is_valid(view_obj, func_obj)
     except:
         log.log_error(traceback.format_exc())
         return False
Exemple #6
0
 def _get_parameter_var_for_incoming_var(self, ctxt, in_var, func, result):
     try:
         if func is None:
             func_obj = None
         else:
             func_obj = function.Function(
                 binaryview.BinaryView(handle=core.BNGetFunctionData(func)),
                 core.BNNewFunctionReference(func))
         in_var_obj = function.Variable(func_obj, in_var[0].type,
                                        in_var[0].index, in_var[0].storage)
         out_var = self.perform_get_parameter_var_for_incoming_var(
             in_var_obj, func_obj)
         result[0].type = out_var.source_type
         result[0].index = out_var.index
         result[0].storage = out_var.storage
     except:
         log.log_error(traceback.format_exc())
         result[0].type = in_var[0].type
         result[0].index = in_var[0].index
         result[0].storage = in_var[0].storage