Rabiu Muazu Musa

13 papers Journal 9Unranked 3
YearRankTypeTitle / Venue / Authors
2026 J jnl
PeerJ Comput. Sci.
Mohd Izzat Mohd Rahman, Amir FakarulIsroq Abdul Razak, Anwar P. P. Abdul Majeed, Rabiu Muazu Musa, Azaini Aizat Abdul Jalil, Ismail Mohd Khairuddin, Muhammad Amirul Abdullah, Mohd Azraai Mohd Razman
2024 J jnl
Int. J. Comput. Sci. Sport
Borhanudin Mohd Yusof Mohamed, Rabiu Muazu Musa, Mohamad Nizam Nazarudin, Anwar P. P. Abdul Majeed, Naresh Bhaskar Raj, Mohd Azraai Mohd Razman
2022 book
Rabiu Muazu Musa, Anwar P. P. Abdul Majeed, Mohamad Razali Abdullah, Garry Kuan, Mohd Azraai Mohd Razman
2022 J jnl
ICT Express
Omair Rashed Abdulwareth Almanifi, Ismail Mohd Khairuddin, Mohd Azraai Mohd Razman, Rabiu Muazu Musa, Anwar P. P. Abdul Majeed
2021 J jnl
PeerJ Comput. Sci.
Bifta Sama Bari, Md Nahidul Islam, Mamunur Rashid, Md Jahid Hasan, Mohd Azraai Mohd Razman, Rabiu Muazu Musa, Ahmad Fakhri Ab. Nasir, Anwar P. P. Abdul Majeed
2021 conf
RiTA
Farhan Nabil Mohd Noor, Wan Hasbullah Mohd Isa, Ismail Mohd Khairuddin, Mohd Azraai Mohd Razman, Rabiu Muazu Musa, Ahmad Fakhri Ab. Nasir, Anwar P. P. Abdul Majeed
2021 J jnl
ICT Express
Jothi Letchumy Mahendra Kumar, Mamunur Rashid, Rabiu Muazu Musa, Mohd Azraai Mohd Razman, Norizam Sulaiman, Rozita Jailani, Anwar P. P. Abdul Majeed
2021 J jnl
PeerJ Comput. Sci.
Mamunur Rashid, Bifta Sama Bari, Md Jahid Hasan, Mohd Azraai Mohd Razman, Rabiu Muazu Musa, Ahmad Fakhri Ab. Nasir, Anwar P. P. Abdul Majeed
2021 J jnl
PeerJ Comput. Sci.
Muhammad Amirul Abdullah, Muhammad Ar Rahim Ibrahim, Muhammad Nur Aiman Shapiee, Muhammad Aizzat Bin Zakaria, Mohd Azraai Mohd Razman, Rabiu Muazu Musa, Noor Azuan Abu Osman, Anwar P. P. Abdul Majeed
2020 J jnl
Frontiers Neurorobotics
Mamunur Rashid, Norizam Sulaiman, Anwar P. P. Abdul Majeed, Rabiu Muazu Musa, Ahmad Fakhri Ab. Nasir, Bifta Sama Bari, Sabira Khatun
2019 J jnl
Comput. Electron. Agric.
Mohd Azraai Mohd Razman, Gian Antonio Susto, Angelo Cenedese, Anwar P. P. Abdul Majeed, Rabiu Muazu Musa, Ahmad Shahrizan Abdul Ghani, Faeiz Azizi Adnan, Khairul Muttaqin Ismail, Zahari Taha, Yukinori Mukai
2018 conf
RiTA
Rabiu Muazu Musa, Anwar P. P. Abdul Majeed, Mohd Azraai Mohd Razman, Mohd Ali Hanafiah Shaharudin
2018 conf
RiTA
Mohamad Radzi Mohd Sojak, Mohd Azraai Mohd Razman, Anwar P. P. Abdul Majeed, Rabiu Muazu Musa, Ahmad Shahrizan Abdul Ghani, Ismed Iskandar
redb/extractors/pe_extractor.py
← Index redb/extractors/pe_extractor.py python
import logging
from abc import ABCMeta, abstractmethod
import inspect

import magic
import pefile
from dotnetfile import DotNetPE

from redb.extractors.extractor import Extractor

logger = logging.getLogger(__name__)


@abstractmethod
class PEExtractor(Extractor, metaclass=ABCMeta):

    def __init__(
        self,
        filepath,
        log,
        exporters=None,
        index_prefix=None,
        elastic_index=None,
        known_benign=False,
        known_malicious=False,
        pe=None,
    ):
        super().__init__(
            filepath,
            log,
            exporters,
            index_prefix,
            elastic_index,
            known_benign,
            known_malicious
        )
        self.pe = pe if pe else self._generate_pefile_object()
        self.dotnet = None

    def _generate_pefile_object(self):
        pe = None
        try:
            pe = pefile.PE(self.filepath)
            if not pe:
                raise pefile.PEFormatError("Empty file?")
        except pefile.PEFormatError as e:
            self.log.error(f"Format error {self.hash.sha256} Full error : {e}")
        return pe

    def _generate_dotnetfile_object(self):
        self.log.debug(inspect.currentframe().f_code.co_name)
        dotnet = None
        error = None
        try:
            dotnet = DotNetPE(self.filepath)
            if not dotnet:
                raise Exception("Empty file?")
        except Exception as e:
            self.log.error(
                f"Format error dotnet file {self.hash.sha256} Full error : {e}"
            )
            error = e
        return dotnet, error

    def _check_dotnet(self):
        try:
            file_type = magic.from_buffer(self.binary)
            if ".Net" in file_type:
                return True
            for entry in self.pe.OPTIONAL_HEADER.DATA_DIRECTORY:
                # IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR is typically 14
                if (
                    entry.name == "IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR"
                    and entry.Size > 0
                ):
                    return True
            return False
        except AttributeError as e:
            self.log.error(
                f"AttributeError error dotnet file {self.hash.sha256} Full error : {e}"
            )
            return False

    def _is_signed(self):
        address = self.pe.OPTIONAL_HEADER.DATA_DIRECTORY[
            pefile.DIRECTORY_ENTRY["IMAGE_DIRECTORY_ENTRY_SECURITY"]
        ].VirtualAddress
        if address == 0:
            return False
        return True

    def _has_overlay(self):
        return bool(self.pe.get_overlay())