Ja-Shen Chen

12 papers Journal 10Unranked 2
YearRankTypeTitle / Venue / Authors
2026 J jnl
Int. J. Hum. Comput. Interact.
Ja-Shen Chen, Thi Thu Ha Truong, Thipnantana Triprom
2024 J jnl
Technol. Anal. Strateg. Manag.
Ja-Shen Chen, Mai Dình Khiêm, Hung-Tai Tsou
2024 J jnl
Int. J. Hum. Comput. Interact.
Tran-Thien-Y. Le, Ja-Shen Chen, Ngoc B. Nguyen
2023 J jnl
Technol. Anal. Strateg. Manag.
Hung-Tai Tsou, Ja-Shen Chen
2022 J jnl
Int. J. Inf. Syst. Serv. Sect.
Tran-Thien-Y. Le, Ja-Shen Chen
2013 conf
ICSSI
Fu-Shan Tseng, Ja-Shen Chen, Hua-Hung Weng
2012 J jnl
Inf. Manag.
Hung-Tai Tsou, Ja-Shen Chen
2009 J jnl
Technol. Anal. Strateg. Manag.
Jonathan C. Ho, Ja-Shen Chen
2007 J jnl
Inf. Res.
Ja-Shen Chen, Hung-Tai Tsou
2004 conf
PACIS
Ja-Shen Chen, Hooi Ng
1999 J jnl
Eur. J. Oper. Res.
Ja-Shen Chen, Sunderesh S. Heragu
1998 J jnl
Eur. J. Oper. Res.
Sunderesh S. Heragu, Ja-Shen Chen
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