Irwin B. Levinstein

13 papers C 2Misc 2Journal 5Unranked 3
YearRankTypeTitle / Venue / Authors
2010 Misc conf
FLAIRS
Shravan Mylavarapu, Irwin B. Levinstein, Chutima Boonthum, Joseph Magliano, Keith K. Millis
2010 J jnl
CoRR
Justin F. Brunelle, G. Tanner Jackson, Kyle B. Dempsey, Chutima Boonthum, Irwin B. Levinstein, Danielle S. McNamara
2010 J jnl
CoRR
Justin F. Brunelle, Irwin B. Levinstein, Chutima Boonthum
2010 J jnl
CoRR
Kyle B. Dempsey, Justin F. Brunelle, G. Tanner Jackson, Chutima Boonthum, Irwin B. Levinstein, Danielle S. McNamara
2010 J jnl
CoRR
Justin F. Brunelle, Kyle B. Dempsey, G. Tanner Jackson, Chutima Boonthum, Irwin B. Levinstein, Danielle S. McNamara
2010 Misc conf
FLAIRS
Radhika Malladi, Irwin B. Levinstein, Chutima Boonthum, Joseph Magliano
2009 ch.
Encyclopedia of Artificial Intelligence
Chutima Boonthum, Irwin B. Levinstein, Danielle S. McNamara, Joseph Magliano, Keith K. Millis
2007 J jnl
Comput. Commun.
Chutima Boonthum, Irwin B. Levinstein, Stephan Olariu, E. Pigli, Ekaterina Shurkova, Albert Y. Zomaya
2006 C conf
CICLing
Chutima Boonthum, Shunichi Toida, Irwin B. Levinstein
1996 C conf
WETICE
Kurt Maly, Ajay Gupta, Bjorn Kvande, Irwin B. Levinstein, Ravi Mukkamala, S. Nanjangud, Margrethe H. Olson, Roy Whitney, Rita Chambers
1996 conf
IFIP World Conference on IT Tools
Kurt Maly, Ajay K. Gupta, Irwin B. Levinstein, Ravi Mukkamala, Bjorn Kvande, S. Nanjangud, Margrethe H. Olson, Roy Whitney, Rita Chambers
1995 conf
CSEE
Kurt Maly, Dennis E. Ray, J. Christian Wild, Irwin B. Levinstein, Stephan Olariu, C. Michael Overstreet, Nageswara S. V. Rao, Deane Sibol, George Panayides
1994 conf
CSEE
Kurt Maly, Dennis E. Ray, J. Christian Wild, Irwin B. Levinstein, Stephan Olariu, C. Michael Overstreet, Nageswara S. V. Rao, Tijen Ireland, George Kantsios
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