Haikun Zhu

14 papers A* 1A 1C 1Journal 3Unranked 8
YearRankTypeTitle / Venue / Authors
2023 J jnl
Manag. Sci.
Fabio Braggion, Alberto Manconi, Haikun Zhu
2008 J jnl
IEICE Trans. Fundam. Electron. Commun. Comput. Sci.
Masanori Hashimoto, Jangsombatsiri Siriporn, Akira Tsuchiya, Haikun Zhu, Chung-Kuan Cheng
2008 conf
ISQED
Ling Zhang, Wenjian Yu, Haikun Zhu, Wanping Zhang, Chung-Kuan Cheng
2008 conf
ASP-DAC
Ling Zhang, Jianhua Liu, Haikun Zhu, Chung-Kuan Cheng, Masanori Hashimoto
2008 A* conf
DAC
Ling Zhang, Wenjian Yu, Haikun Zhu, Alina Deutsch, George A. Katopis, Daniel M. Dreps, Ernest S. Kuh, Chung-Kuan Cheng
2008 conf
ASP-DAC
Yi Zhu, Jianhua Liu, Haikun Zhu, Chung-Kuan Cheng
2007 conf
ASP-DAC
Haikun Zhu, Yi Zhu, Chung-Kuan Cheng, David M. Harris
2007 conf
CICC
Masanori Hashimoto, Jangsombatsiri Siriporn, Akira Tsuchiya, Haikun Zhu, Chung-Kuan Cheng
2007 conf
ASP-DAC
Haikun Zhu, Rui Shi, Chung-Kuan Cheng, Hongyu Chen
2007 conf
ASP-DAC
Jianhua Liu, Yi Zhu, Haikun Zhu, Chung-Kuan Cheng, John Lillis
2007 C conf
ICCD
Chun-Chen Liu, Haikun Zhu, Chung-Kuan Cheng
2006 J jnl
ACM Trans. Design Autom. Electr. Syst.
Haikun Zhu, Chung-Kuan Cheng, Ronald L. Graham
2005 conf
ASP-DAC
Haikun Zhu, Chung-Kuan Cheng, Ronald L. Graham
2003 A conf
ICCAD
Jianhua Liu, Shuo Zhou, Haikun Zhu, Chung-Kuan Cheng
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