Jaime Correia

12 papers B 5C 1Misc 1Journal 4Unranked 1
YearRankTypeTitle / Venue / Authors
2023 Misc conf
SAC
Goncalo Baptista, Jaime Correia, André Bento, João Soares, Antonio Ferreira, João Durães, Raul Barbosa, Filipe Araújo
2023 J jnl
J. Grid Comput.
Stanley Lima, Filipe Araújo, Miguel de Oliveira Guerreiro, Jaime Correia, André Bento, Raul Barbosa
2021 B conf
NCA
André Bento, Jaime Correia, João Durães, João Soares, Luís Ribeiro, António Ferreira, Rita Carreira, Filipe Araújo, Raul Barbosa
2021 J jnl
J. Grid Comput.
André Bento, Jaime Correia, Ricardo Filipe, Filipe Araújo, Jorge Cardoso
2021 J jnl
J. Inf. Secur. Appl.
André Lizardo, Raul Barbosa, Samuel Neves, Jaime Correia, Filipe Araújo
2021 J jnl
J. Syst. Softw.
Stanley Lima, Jaime Correia, Filipe Araújo, Jorge Cardoso
2021 C conf
IV
Sara Silva, Jaime Correia, André Bento, Filipe Araújo, Raul Barbosa
2019 B conf
NCA
Ricardo Filipe, Jaime Correia, Filipe Araújo, Jorge Cardoso
2018 conf
KDIR
Artur Pedroso, Bruno Leonel Lopes, Jaime Correia, Filipe Araújo, Jorge Cardoso, Rui Pedro Paiva
2018 B conf
NCA
Fabio Pina, Jaime Correia, Ricardo Filipe, Filipe Araújo, Jorge Cardroom
2018 B conf
NCA
Ricardo Filipe, Jaime Correia, Filipe Araújo, Jorge Cardoso
2018 B conf
NCA
Jaime Correia, Fabio Ribeiro, Ricardo Filipe, Filipe Araújo, Jorge Cardoso
redb/extractors/decompiler/bninja/function_type.py
← Index redb/extractors/decompiler/bninja/function_type.py python
from enum import Enum

import binaryninja


class FunctionType(Enum):
    USER = "USER"
    LIBRARY = "LIBRARY"
    EXTERNAL = "EXTERNAL"
    THUNK = "THUNK"
    UNKNOWN = "UNKNOWN"


class FunctionTypeAnalysis:
    """Get the function kind based on the symbol type associated to this function"""

    def __init__(self, function):
        """Sets the function type dependent on the symbol type associated to this function. If
        any errors occur, then returns UNKNOWN
        """
        self.func_type = FunctionType.USER

        try:
            symbol_type = function.symbol.type
            # Check if it's an external function (there should not be, already skipping these)
            if symbol_type == binaryninja.enums.SymbolType.ImportedFunctionSymbol:
                self.func_type = FunctionType.EXTERNAL

            # Library functions detected by Binary Ninja
            if symbol_type == binaryninja.enums.SymbolType.LibraryFunctionSymbol:
                self.func_type = FunctionType.LIBRARY

            # Check if it's a thunk function
            if function.is_thunk:
                self.func_type = FunctionType.THUNK

        except Exception as _:
            self.func_type = FunctionType.UNKNOWN

    def get_function_type(self):
        return self.func_type