Malcolm D. McCulloch

18 papers Journal 16Unranked 2
YearRankTypeTitle / Venue / Authors
2022 J jnl
IEEE Trans. Smart Grid
Yifu Ding, Thomas Morstyn, Malcolm D. McCulloch
2022 J jnl
CoRR
Claire E. Halloran, Filiberto Fele, Malcolm D. McCulloch
2022 J jnl
CoRR
Flora Charbonnier, Thomas Morstyn, Malcolm D. McCulloch
2021 J jnl
CoRR
Yifu Ding, Thomas Morstyn, Malcolm D. McCulloch
2021 conf
CDC
Yifu Ding, Malcolm D. McCulloch
2021 J jnl
IEEE Trans. Smart Grid
Chaoyu Dong, Ronghe Chu, Thomas Morstyn, Malcolm D. McCulloch, Hongjie Jia
2021 J jnl
IEEE Trans. Smart Grid
Liyang Han, Thomas Morstyn, Malcolm D. McCulloch
2020 J jnl
IEEE Trans. Smart Grid
Chaoyu Dong, Qian Xiao, Mingshen Wang, Thomas Morstyn, Malcolm D. McCulloch, Hongjie Jia
2020 J jnl
IEEE Trans. Smart Grid
Thomas Morstyn, Alexander Teytelboym, Cameron Hepburn, Malcolm D. McCulloch
2019 J jnl
CoRR
Wayes Tushar, Tapan Kumar Saha, Chau Yuen, Thomas Morstyn, Malcolm D. McCulloch, H. Vincent Poor, Kristin L. Wood
2019 J jnl
IEEE Trans. Smart Grid
Thomas Morstyn, Alexander Teytelboym, Malcolm D. McCulloch
2018 J jnl
IEEE Trans. Ind. Electron.
Robert Camilleri, Paul C. Beard, David A. Howey, Malcolm D. McCulloch
2017 J jnl
IEEE Trans. Ind. Informatics
Chun Sing Lai, Youwei Jia, Malcolm D. McCulloch, Zhao Xu
2017 J jnl
IEEE Trans. Ind. Electron.
Johannes H. J. Potgieter, Francisco J. Márquez-Fernández, Alexander G. Fraser, Malcolm D. McCulloch
2017 conf
AFRICON
Andreas I. Elombo, Thomas Morstyn, Dimitra Apostolopoulou, Malcolm D. McCulloch
2017 J jnl
IEEE Trans. Ind. Electron.
Chun Sing Lai, Malcolm D. McCulloch
2016 J jnl
CoRR
Chun Sing Lai, Malcolm D. McCulloch
2016 J jnl
IEEE Trans. Ind. Electron.
Robert Camilleri, David A. Howey, Malcolm D. McCulloch
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