Wei-Chen Chang

14 papers B 1C 1Journal 9Unranked 3
YearRankTypeTitle / Venue / Authors
2025 J jnl
CoRR
Anzhuo Xie, Wei-Chen Chang
2025 J jnl
CoRR
Wei-Chen Chang, Lu Dai, Ting Xu
2024 J jnl
Pers. Ubiquitous Comput.
Zhenwei You, Jian Liu, Tingting Yang, Jiagang Cao, Wei-Chen Chang
2024 conf
CLSW (1)
Wei-Chen Chang, Huichen S. Hsiao
2020 J jnl
J. Ambient Intell. Humaniz. Comput.
Chih-Hsing Chu, Wei-Chen Chang, Yung-I Lin
2020 J jnl
J. Comput. Phys.
Wei-Chen Chang, Wen-Wei Lin, Jenn-Nan Wang
2014 C conf
CSCWD
Wei-Chen Chang
2014 J jnl
EURASIP J. Audio Speech Music. Process.
Yi-Ju Lin, Tien-Ming Wang, Ta-Chun Chen, Yin-Lin Chen, Wei-Chen Chang, Alvin Wen-Yu Su
2013 J jnl
Eur. J. Oper. Res.
Yeu-Shiang Huang, Wei-Chen Chang, Wei-Hao Li, Zu-Liang Lin
2013 conf
APSIPA
Yi-Ju Lin, Wei-Chen Chang, Alvin W. Y. Su
2009 J jnl
J. Inf. Sci. Eng.
Yi-Song Siao, Wei-Chen Chang, Alvin Wen-Yu Su
2006 J jnl
IEEE Trans. Speech Audio Process.
Wei-Chen Chang, Alvin Wen-Yu Su
2004 B conf
ICIP
Win-Bin Huang, Wei-Chen Chang, Yen-Wei Lu, Alvin Wen-Yu Su, Yau-Hwang Kuo
2002 conf
NNSP
Wei-Chen Chang, Alvin Wen-Yu Su
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