Hafiz Muhammad Asif

11 papers C 1Misc 1Journal 9
YearRankTypeTitle / Venue / Authors
2021 J jnl
IEEE Commun. Stand. Mag.
Beenish Hassan, Sobia Baig, Hafiz Muhammad Asif
2021 J jnl
Wirel. Commun. Mob. Comput.
Muneeb Ahmad, Sobia Baig, Hafiz Muhammad Asif, Kaamran Raahemifar
2020 C conf
ISNCC
Affan Affan, Usama Khan, Hafiz Muhammad Asif, Kaamran Raahemifar
2020 J jnl
Int. J. Commun. Syst.
Arslan Khalid, Faizan Rashid, Hafiz Muhammad Asif, Assad Ali, Sattam Al Otaibi
2019 J jnl
Future Gener. Comput. Syst.
Arsla Khan, Saud Khan, Sobia Baig, Hafiz Muhammad Asif, Soo Young Shin
2018 J jnl
Comput. Networks
Aaqib Khalid, Tariq Umer, Muhammad Khalil Afzal, Sheraz Anjum, Adnan Sohail, Hafiz Muhammad Asif
2018 J jnl
Int. J. Commun. Syst.
Saad Mehmood Sheikh, Hamza R. Ali, Hafiz Muhammad Asif, Sobia Baig, Asim Ali Khan
2018 J jnl
IEEE Access
Sobia Baig, Muneeb Ahmad, Hafiz Muhammad Asif, Muhammad Naeem Shehzad, Mujtaba Hussain Jaffery
2018 J jnl
IEEE Access
Sobia Baig, Hafiz Muhammad Asif, Tariq Umer, Shahid Mumtaz, Muhammad Shafiq, Jin-Ghoo Choi
2017 J jnl
Int. J. Commun. Syst.
M. Ahsan, Hafiz Muhammad Asif
2015 Misc conf
FIT
Asad Ali, Amna Sehar, Sana Najaf, Hafiz Muhammad Asif
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