Canyu Zhang

14 papers Misc 1Journal 13
YearRankTypeTitle / Venue / Authors
2026 J jnl
Pattern Recognit.
Shenfei Pei, Yuanchen Sun, Zhongqi Lin, Feiping Nie, Jitao Lu, Xudong Jiang, Canyu Zhang, Zengwei Zheng
2026 J jnl
Neural Networks
Shaojun Shi, Canyu Zhang, Jiahao Zhao, Feiping Nie
2026 J jnl
Pattern Recognit.
Shaojun Shi, Yibing Liu, Canyu Zhang, Sisi Wang, Feiping Nie
2025 J jnl
IEEE Trans. Knowl. Data Eng.
Canyu Zhang, Feiping Nie, Rong Wang
2024 J jnl
Inf. Sci.
Canyu Zhang, Shaojun Shi, Yanping Chen, Feiping Nie, Rong Wang
2024 J jnl
IEEE Trans. Knowl. Data Eng.
Canyu Zhang, Feiping Nie, Rong Wang, Xuelong Li
2024 J jnl
IEEE Trans. Pattern Anal. Mach. Intell.
Zheng Wang, Feiping Nie, Canyu Zhang, Rong Wang, Xuelong Li
2023 J jnl
IEEE Trans. Neural Networks Learn. Syst.
Feiping Nie, Canyu Zhang, Zheng Wang, Rong Wang, Xuelong Li
2023 J jnl
IEEE Trans. Knowl. Data Eng.
Rong Wang, Canyu Zhang, Jintang Bian, Zheng Wang, Feiping Nie, Xuelong Li
2022 J jnl
Inf. Sci.
Canyu Zhang, Feiping Nie, Rong Wang, Xuelong Li
2021 Misc conf
ICASSP
Canyu Zhang, Feiping Nie, Zheng Wang, Rong Wang, Xuelong Li
2021 J jnl
Inf. Sci.
Canyu Zhang, Feiping Nie, Zheng Wang, Rong Wang, Xuelong Li
2021 J jnl
Pattern Recognit. Lett.
Zheng Wang, Feiping Nie, Canyu Zhang, Rong Wang, Xuelong Li
2020 J jnl
IEEE Signal Process. Lett.
Zheng Wang, Feiping Nie, Canyu Zhang, Rong Wang, Xuelong Li
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