Haicheng Liu

13 papers Journal 9Unranked 3
YearRankTypeTitle / Venue / Authors
2025 J jnl
Axioms
Haicheng Liu, Yanfeng Li, Xuejiao Liu
2025 J jnl
CoRR
Rui Min, Zile Qiao, Ze Xu, Jiawen Zhai, Wenyu Gao, Xuanzhong Chen, Haozhen Sun, Zhen Zhang, Xinyu Wang, Hong Zhou, Wenbiao Yin, Bo Zhang, Xuan Zhou, Ming Yan, Yong Jiang, Haicheng Liu, Liang Ding, Ling Zou, Yi R. Fung, Yalong Li, Pengjun Xie
2023 J jnl
Int. J. Bifurc. Chaos
Haicheng Liu, Bin Ge
2022 J jnl
IEEE Access
Cong Xu, Zishu He, Haicheng Liu
2022 J jnl
J. Appl. Math. Comput.
Haicheng Liu, Bin Ge, Jiaqi Chen, Qiyuan Liang
2022 J jnl
Appl. Math. Comput.
Haicheng Liu, Bin Ge, Jihong Shen
2022
Haicheng Liu
2021 J jnl
Multim. Tools Appl.
Qingyun Wang, Xin Chen, Ruiyu Liang, Haicheng Liu
2021 J jnl
Int. J. Appl. Earth Obs. Geoinformation
Haicheng Liu, Rodney Thompson, Peter van Oosterom, Martijn Meijers
2021 conf
AISS
Cong Xu, Haicheng Liu, Xinglei Miao
2018 J jnl
Comput. Math. Appl.
Yanfeng Li, Haicheng Liu, Ruizhi Yang
2018 conf
AGILE Conf.
Haicheng Liu
2016 conf
MLICOM
Tao Tang, Haicheng Liu, Haiyan Song, Bao Peng
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