James K. Huggins

30 papers A 1B 3C 3Journal 15Unranked 6
YearRankTypeTitle / Venue / Authors
2026 conf
SIGCSE (2)
Dan Garcia, James K. Huggins, Brian Law, Narges Norouzi, Jaimin Patel, Michael Shindler
2025 J jnl
J. Comput. Sci. Coll.
James K. Huggins
2024 J jnl
J. Comput. Sci. Coll.
James K. Huggins
2024 J jnl
J. Comput. Sci. Coll.
James K. Huggins
2023 J jnl
J. Comput. Sci. Coll.
James K. Huggins
2019 C conf
ISTAS
Olivia C. Wanless, Chanc D. Gettel, Charles W. Gates, James K. Huggins, Diane L. Peters
2018 C conf
FIE
James K. Huggins
2018 C conf
FIE
Mitch J. Duncan, James K. Huggins
2015 J jnl
SIGCAS Comput. Soc.
James K. Huggins
2010 conf
Fields of Logic and Computation
James K. Huggins, Charles Wallace
2009 J jnl
ACM SIGCSE Bull.
James K. Huggins
2003 A conf
SIGCSE
James K. Huggins, Joseph Bergin, James Caristi, Ellen Walker
2003 conf
Abstract State Machines
James K. Huggins, Jean Mayo, Charles Wallace
2000 conf
Abstract State Machines
Steven C. Cater, James K. Huggins
1998 J jnl
CoRR
Egon Börger, James K. Huggins
1998 J jnl
Bull. EATCS
Egon Börger, James K. Huggins
1998 J jnl
CoRR
James K. Huggins
1998 J jnl
CoRR
James K. Huggins
1998 J jnl
CoRR
Yuri Gurevich, James K. Huggins
1998 J jnl
CoRR
Yuri Gurevich, James K. Huggins
1998 J jnl
ACM Trans. Design Autom. Electr. Syst.
James K. Huggins, David Van Campenhout
1998 J jnl
CoRR
Yuri Gurevich, James K. Huggins
1997 J jnl
Theor. Comput. Sci.
Yuri Gurevich, James K. Huggins
1995
James K. Huggins
1995 B conf
CSL
Yuri Gurevich, James K. Huggins
1994 conf
IFIP Congress (1)
Yuri Gurevich, James K. Huggins
1994 conf
Ethics in Computer Age
James K. Huggins
1993 B conf
CSL
Yuri Gurevich, James K. Huggins
1993 ch.
Specification and validation methods
James K. Huggins
1992 B conf
CSL
Yuri Gurevich, James K. Huggins
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