Kaiyi Guo

11 papers A* 2Journal 8Unranked 1
YearRankTypeTitle / Venue / Authors
2026 J jnl
IEEE Trans. Inf. Theory
Fei Shi, Kaiyi Guo, Xiande Zhang, Qi Zhao
2026 A* conf
CHI
Cong Liu, Ruihao Zheng, Junbin Ren, Kaiyi Guo, Qian Zhang, Dong She, Yuting Bai, Zhanpeng Jin, Yang Gao
2025 A* conf
CHI
Kaiyi Guo, Qian Zhang, Dong Wang
2025 J jnl
IEEE Trans. Mob. Comput.
Kaiyi Guo, Qian Zhang, Dong Wang
2025 J jnl
IEEE Internet Things J.
Ahsan Jamal Akbar, Kaiyi Guo, Qian Zhang, Dong Wang
2025 J jnl
Proc. ACM Interact. Mob. Wearable Ubiquitous Technol.
Kaiyi Guo, Tianyu Wu, Yang Gao, Qian Zhang, Dong Wang
2025 conf
UbiComp Companion
Kaiyi Guo, Yang Gao, Qian Zhang, Dong Wang
2025 J jnl
Proc. ACM Interact. Mob. Wearable Ubiquitous Technol.
Qian Zhang, Kaiyi Guo, Yifei Yang, Dong Wang
2024 J jnl
Proc. ACM Interact. Mob. Wearable Ubiquitous Technol.
Qian Zhang, Yubin Lan, Kaiyi Guo, Dong Wang
2023 J jnl
CoRR
Xiaoheng Jiang, Kaiyi Guo, Yang Lu, Feng Yan, Hao Liu, Jiale Cao, Mingliang Xu, Dacheng Tao
2021 J jnl
Complex.
Zenghua Gong, Kaiyi Guo, Xiaoguang He
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