Olfa Mraihi

11 papers C 2Journal 6Unranked 3
YearRankTypeTitle / Venue / Authors
2014 J jnl
Int. J. Crit. Comput. Based Syst.
Asma Louhichi, Wided Ghardallou, Khaled Bsaïes, Lamia Labed Jilani, Olfa Mraihi, Ali Mili
2013 J jnl
Sci. Comput. Program.
Olfa Mraihi, Asma Louhichi, Lamia Labed Jilani, Jules Desharnais, Ali Mili
2013 J jnl
J. Symb. Comput.
Lamia Labed Jilani, Olfa Mraihi, Asma Louhichi, Wided Ghardallou, Khaled Bsaïes, Ali Mili
2012 J jnl
J. Log. Algebraic Methods Program.
Wided Ghardallou, Olfa Mraihi, Asma Louhichi, Lamia Labed Jilani, Khaled Bsaïes, Ali Mili
2012 J jnl
Innov. Syst. Softw. Eng.
Lamia Labed Jilani, Asma Louhichi, Olfa Mraihi, Ali Mili
2011 C conf
ICTAC
Olfa Mraihi, Wided Ghardallou, Asma Louhichi, Lamia Labed Jilani, Khaled Bsaïes, Ali Mili
2010 conf
WING@ETAPS/IJCAR
Asma Louhichi, Olfa Mraihi, Lamia Labed Jilani, Ali Mili
2010 J jnl
J. Symb. Comput.
Ali Mili, Shir Aharon, Chaitanya Nadkarni, Lamia Labed Jilani, Asma Louhichi, Olfa Mraihi
2010 C conf
AICCSA
Lamia Labed Jilani, Olfa Mraihi, Asma Louhichi, Ali Mili
2010 conf
ICSE (2)
Lamia Labed Jilani, Olfa Mraihi, Asma Louhichi, Wided Ghardallou, Ali Mili
2009 conf
RelMiCS
Asma Louhichi, Olfa Mraihi, Lamia Labed Jilani, Khaled Bsaïes, Ali Mili
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