Wei-Kai Shih

13 papers A* 3A 2Journal 7Unranked 1
YearRankTypeTitle / Venue / Authors
2025 A* conf
DAC
Hao-Yu Wu, Hsin-Tzu Chang, Shiuan-Yun Ding, Iris Hui-Ru Jiang, Benson Tsao, Vinson Wu, Wei-Kai Shih
2023 A conf
ICCAD
Yufei Chen, Xiao Dong, Wei-Kai Shih, Cheng Zhuo
2022 conf
ICARA
Rui Wu Xu, Kai-Chin Hsieh, Un Hou Chan, Hoi Un Cheang, Wei-Kai Shih, Chi Tin Hon
2019 J jnl
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst.
Cheng Zhuo, Kassan Unda, Yiyu Shi, Wei-Kai Shih
2016 A* conf
DAC
Cheng Zhuo, Kassan Unda, Yiyu Shi, Wei-Kai Shih
2015 J jnl
ACM J. Emerg. Technol. Comput. Syst.
Cheng Zhuo, Houle Gan, Wei-Kai Shih, Alaeddin A. Aydiner
2015 J jnl
IEEE Trans. Very Large Scale Integr. Syst.
Cheng Zhuo, Gustavo R. Wilke, Ritochit Chakraborty, Alaeddin A. Aydiner, Sourav Chakravarty, Wei-Kai Shih
2014 A* conf
DAC
Cheng Zhuo, Houle Gan, Wei-Kai Shih
2012 A conf
ICCAD
Cheng Zhuo, Gustavo R. Wilke, Ritochit Chakraborty, Alaeddin A. Aydiner, Sourav Chakravarty, Wei-Kai Shih
1998 J jnl
VLSI Design
Wei-Kai Shih, Srinivas Jallepalli, C.-F. Yeap, Mahbub Rashed, Christine M. Maziar, A. F. Tasch Jr.
1998 J jnl
VLSI Design
Mahbub Rashed, Wei-Kai Shih, Srinivas Jallepalli, R. Zaman, Thomas J. T. Kwan, Christine M. Maziar
1998 J jnl
VLSI Design
Haihong Wang, Wei-Kai Shih, Susan Green, Scott Hareland, Christine M. Maziar, A. F. Tasch Jr.
1998 J jnl
VLSI Design
Wei-Kai Shih, Srinivas Jallepalli, Mahbub Rashed, Christine M. Maziar, A. F. Tasch Jr.
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