Haibo Ma

14 papers B 2Journal 9Unranked 3
YearRankTypeTitle / Venue / Authors
2025 J jnl
IEEE Internet Things J.
Xianbei Meng, Man Feng, Haibo Ma
2024 B conf
ICPP
Runfeng Jin, Wenhao Liang, Haoyuan Zhang, Yinxuan Song, Zhen Luo, Haibo Ma, Yingjin Ma, Zhong Jin
2023 J jnl
Digit. Signal Process.
Shuai Cao, Man Feng, Teer Ba, Aolei Liu, Haibo Ma
2023 J jnl
J. Comput. Chem.
Zhaoxuan Xie, Yinxuan Song, Fangwen Peng, Jianhao Li, Yifan Cheng, Lingzhi Zhang, Yingjin Ma, Yingqi Tian, Zhen Luo, Haibo Ma
2023 conf
DSDE
Haibo Ma, Min Huang
2022 J jnl
J. Comput. Inf. Sci. Eng.
Haibo Ma, Shilei Ma, Robert Moss, Mark Fisher, Armin K. Silaen, Chenn Q. Zhou
2022 J jnl
Adv. Intell. Syst.
Zhi-Wen Zhao, Yun Geng, Alessandro Troisi, Haibo Ma
2019 J jnl
Comput. Hum. Behav.
Zejun Hao, Liangyi Jin, Yan Li, Hafiza Rabia Akram, Muhammad Farhan Saeed, Jun Ma, Haibo Ma, Jinzi Huang
2017 J jnl
J. Simulation
Yiping Yao, Dong Meng, Feng Zhu, Laibin Yan, Qingjun Qu, Zhongwei Lin, Haibo Ma
2016 conf
AsiaSim/SCS AutumnSim (1)
Haibo Ma, Yiping Yao, Wenjie Tang
2016 conf
AsiaSim/SCS AutumnSim (1)
Haibo Ma, Yiping Yao, Wenjie Tang
2012 J jnl
J. Comput. Chem.
HongJiang Zhang, Jean-Paul Malrieu, Haibo Ma, Jing Ma
2009 J jnl
IEEE Trans. Fuzzy Syst.
Meng Chen, Gang Feng, Haibo Ma, Ge Chen
2007 B conf
FUZZ-IEEE
Meng Chen, Gang Feng, Haibo Ma
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