Karel Tomala

12 papers C 1Journal 2Unranked 9
YearRankTypeTitle / Venue / Authors
2018 C conf
HealthCom
Petr Koudelka, Karel Tomala, Petr Hemerka, Jan Vavrecka, Radek Martinek
2015 J jnl
Telecommun. Syst.
Miroslav Voznák, Jiri Slachta, Lukas Macura, Karel Tomala
2015 conf
TSP
Lukas Sevcik, Karel Tomala, Jaroslav Frnda, Miroslav Voznák
2015 J jnl
Wirel. Pers. Commun.
Filip Rezac, Miroslav Voznák, Karel Tomala
2014 conf
ECC (2)
Lukas Sevcik, Karel Tomala, Jaroslav Frnda, Miroslav Voznák
2013 conf
TSP
Martin Mikulec, Lukas Kapicak, Miroslav Voznák, Pavol Partila, Karel Tomala, Pavel Nevlud, Jaroslav Zdralek
2013 conf
TSP
Karel Tomala, Jan Rozhon, Filip Rezac, Pavol Partila, Miroslav Voznák, Martin Mikulec
2013 conf
TSP
Filip Rezac, Miroslav Voznák, Pavol Partila, Karel Tomala
2012 conf
TSP
Lukas Macura, Miroslav Voznák, Karel Tomala, Jiri Slachta
2012 conf
TSP
Karel Tomala, Lukas Macura, Miroslav Voznák, Jiri Vychodil
2012 conf
TSP
Jan Rozhon, Miroslav Voznák, Karel Tomala, Jiri Vychodil
2011 conf
MCSS
Karel Tomala, Jan Rozhon, Filip Rezac, Jiri Vychodil, Miroslav Voznák, Jaroslav Zdralek
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