Weide Li

14 papers Journal 14
YearRankTypeTitle / Venue / Authors
2025 J jnl
Appl. Intell.
Yuanpan Zhu, Donghuai Jia, Kevin Chu, Wenshuang Zhi, Weide Li, Shukai Chen
2025 J jnl
Neurocomputing
Xinru Liu, Weide Li, Da Zhou
2024 J jnl
CoRR
Jin Yuan, Xuelan Qiu, Jinran Wu, Jiesi Guo, Weide Li, You-Gan Wang
2024 J jnl
Comput. Math. Appl.
Xi'an Li, Jiaxin Deng, Jinran Wu, Shaotong Zhang, Weide Li, You-Gan Wang
2024 J jnl
Earth Sci. Informatics
Siyuan Liu, Jiaxin Deng, Jin Yuan, Weide Li, Xi'an Li, Jing Xu, Shaotong Zhang, Jinran Wu, You-Gan Wang
2023 J jnl
Remote. Sens.
Zihan Hao, Weide Li, Jinran Wu, Shaotong Zhang, Shujuan Hu
2023 J jnl
CoRR
Jiaxin Deng, Xi'an Li, Jinran Wu, Shaotong Zhang, Weide Li, You-Gan Wang
2022 J jnl
Int. J. Pattern Recognit. Artif. Intell.
Weide Li, Zihan Hao, Zhihe Zhang
2020 J jnl
Expert Syst. Appl.
Hui Chen, Weide Li, Xuan Yang
2020 J jnl
Neural Comput. Appl.
Xuan Yang, Weide Li, Lili Su, Yaling Wang, Ailing Yang
2020 J jnl
Biosyst.
Shipeng Nie, Weide Li
2019 J jnl
Neurocomputing
Lan Qin, Weide Li, Shijia Li
2019 J jnl
Knowl. Based Syst.
Ailing Yang, Weide Li, Xuan Yang
2017 J jnl
Comput. Intell. Neurosci.
Weide Li, Demeng Kong, Jinran Wu
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