Kaharudin Dimyati

66 papers C 2Journal 55Unranked 8
YearRankTypeTitle / Venue / Authors
2025 C conf
WINCOM
Hafiz Muhammad Fahad Noman, Effariza Hanafi, Kaharudin Dimyati, Kamarul Ariffin Noordin, Atef Abdrabou
2025 J jnl
IEEE Internet Things J.
Hafiz Muhammad Fahad Noman, Kaharudin Dimyati, Effariza Hanafi, Kamarul Ariffin Noordin, Atef Abdrabou
2025 J jnl
IEEE Access
Osamah Thamer Hassan Alzubaidi, Mohammad Nour Hindia, Kaharudin Dimyati, Kamarul Ariffin Noordin, Faizan Qamar, Atef Abdrabou
2025 J jnl
Telecommun. Syst.
Reem Aldebes, Kaharudin Dimyati, Effariza Hanafi, Kamarul Ariffin Noordin, Zhiguo Ding
2025 J jnl
Comput. Mater. Continua
Hayder Faeq Alhashimi, M. H. D. Nour Hindia, Kaharudin Dimyati, Effariza Hanafi, Feras Zen Alden, Faizan Qamar, Quang Ngoc Nguyen
2024 J jnl
IEEE Access
Hafiz Muhammad Fahad Noman, Kaharudin Dimyati, Kamarul Ariffin Noordin, Effariza Hanafi, Atef Abdrabou
2024 J jnl
IEEE Access
Osamah Thamer Hassan Alzubaidi, Mohammad Nour Hindia, Kaharudin Dimyati, Kamarul Ariffin Noordin, Faizan Qamar
2024 J jnl
Wirel. Networks
Mahrukh Liaqat, Kamarul Ariffin Noordin, Tarik Abdul Latef, Kaharudin Dimyati, Talha Younas, Faizan Qamar, Zhiguo Ding
2024 J jnl
IEEE Access
Ali Majid Hasan Alibraheemi, Mohammad Nour Hindia, Tengku Faiz Tengku Mohmed Noor Izam, Kaharudin Dimyati
2023 J jnl
IEEE Access
Ali Majid Hasan Alibraheemi, Mohammad Nour Hindia, Kaharudin Dimyati, Tengku Faiz Tengku Mohmed Noor Izam, Jamaiah Yahaya, Faizan Qamar, Zuriani Hayati Abdullah
2023 J jnl
CoRR
Abdu Saif, Kamarul Ariffin Bin Noordin, Kaharudin Dimyati, Nor Shahida Mohd Shah, Yousef Ali Al-Gumaei, Qazwan Abdullah, Kamal Ali Alezabi
2023 conf
NEW2AN/ruSMART (1)
Osamah Thamer Hassan Alzubaidi, Mohammad Nour Hindia, Kaharudin Dimyati, Kamarul Ariffin Noordin, Faizan Qamar
2023 J jnl
Symmetry
Hayder Faeq Alhashimi, Mohammad Nour Hindia, Kaharudin Dimyati, Effariza Hanafi, Tengku Faiz Tengku Mohmed Noor Izam
2023 J jnl
IEEE Access
Hafiz Muhammad Fahad Noman, Effariza Hanafi, Kamarul Ariffin Noordin, Kaharudin Dimyati, Mohammad Nour Hindia, Atef Abdrabou, Faizan Qamar
2023 conf
NEW2AN/ruSMART (1)
Hayder Faeq Alhashimi, Mohammad Nour Hindia, Kaharudin Dimyati, Effariza Hanafi, Tengku Faiz Tengku Mohmed Noor Izam
2023 J jnl
Internet Things
Abdu Saif, Kaharudin Dimyati, Kamarul Ariffin Noordin, Najmaddin Abo Mosali, Deepak G. C., Saeed Hamood Alsamhi
2022 J jnl
IEEE Access
Alaa Bani-Bakr, M. H. D. Nour Hindia, Kaharudin Dimyati, Zati Bayani Zawawi, Tengku Faiz Tengku Mohmed Noor Izam
2022 J jnl
Sensors
Ahmed Elshrkasi, Kaharudin Dimyati, Khairol Amali Bin Ahmad, Ezmin Abdullah
2022 J jnl
J. Netw. Comput. Appl.
Ahmed Elshrkasi, Kaharudin Dimyati, Khairol Amali Bin Ahmad, Mohamed Faidz bin Mohamed Said
2022 J jnl
Symmetry
Reem Aldebes, Kaharudin Dimyati, Effariza Hanafi
2021 J jnl
Wirel. Networks
S. Malathy, P. Jayarajan, Henry Ojukwu, Faizan Qamar, Mohammad Nour Hindia, Kaharudin Dimyati, Kamarul Ariffin Noordin, Iraj Sadegh Amiri
2021 J jnl
IEEE Access
Abdu Saif, Kaharudin Dimyati, Kamarul Ariffin Noordin, Deepak G. C., Nor Shahida Mohd Shah, Qazwan Abdullah, Mahathir Mohamad
2021 J jnl
KSII Trans. Internet Inf. Syst.
Abdu Saif, Kamarul Ariffin Bin Noordin, Kaharudin Dimyati, Nor Shahida Mohd Shah, Yousef Ali Al-Gumaei, Qazwan Abdullah, Kamal Ali Alezabi
2021 J jnl
Wirel. Pers. Commun.
R. Maheswar, P. Jayarajan, A. Sampathkumar, G. R. Kanagachidambaresan, M. H. D. Nour Hindia, Valmik Tilwari, Kaharudin Dimyati, Henry Ojukwu, Iraj Sadegh Amiri
2021 J jnl
Phys. Commun.
Alaa Bani-Bakr, Kaharudin Dimyati, M. H. D. Nour Hindia, Wei Ru Wong, Muhammad Ali Imran
2021 J jnl
IEEE Access
Wan Amirul Wan Mohd Mahyiddin, Ahmad Loqman Ahmad Mazuki, Kaharudin Dimyati, Fuad Erman
2021 J jnl
Symmetry
Alaa Bani-Bakr, M. H. D. Nour Hindia, Kaharudin Dimyati, Effariza Hanafi, Tengku Faiz Tengku Mohmed Noor Izam
2021 J jnl
Wirel. Networks
S. Malathy, P. Jayarajan, M. H. D. Nour Hindia, Valmik Tilwari, Kaharudin Dimyati, Kamarul Ariffin Noordin, Iraj Sadegh Amiri
2020 J jnl
Wirel. Networks
S. Malathy, V. Porkodi, A. Sampathkumar, Mohammad Nour Hindia, Kaharudin Dimyati, Valmik Tilwari, Faizan Qamar, Iraj Sadegh Amiri
2020 J jnl
Symmetry
Bashir O. Betar, Mohammed Abdulhakim AlSaadi, Zaira Zaman Chowdhury, Mohamed Kheireddine Aroua, Farouq Sabri Mjalli, Kaharudin Dimyati, M. H. D. Nour Hindia, Fawzi M. Elfghi, Yehya M. Ahmed, Hazim F. Abbas
2020 J jnl
Wirel. Networks
Iraj Sadegh Amiri, J. Prakash, M. Balasaraswathi, V. Sivasankaran, T. V. P. Sundararajan, Mohammad Nour Hindia, Valmik Tilwari, Kaharudin Dimyati, Henry Ojukwu
2020 J jnl
Symmetry
Valmik Tilwari, Kaharudin Dimyati, Mohammad Nour Hindia, Tengku Faiz Tengku Mohmed Noor Izam, Iraj Sadegh Amiri
2020 J jnl
Wirel. Pers. Commun.
Valmik Tilwari, R. Maheswar, P. Jayarajan, T. V. P. Sundararajan, Mohammad Nour Hindia, Kaharudin Dimyati, Henry Ojukwu, Iraj Sadegh Amiri
2020 J jnl
Internet Technol. Lett.
Abdu Saif, Kaharudin Dimyati, Kamarul Ariffin Noordin, Saeed Hamood Alsamhi, Ammar Hawbani
2020 J jnl
Trans. Emerg. Telecommun. Technol.
Moubachir Madani Fadoul, Mohammad Nour Hindia, Kaharudin Dimyati, Effariza Hanafi, Iraj Sadegh Amiri
2020 J jnl
Wirel. Pers. Commun.
M. H. D. Nour Hindia, Faizan Qamar, Henry Ojukwu, Kaharudin Dimyati, Ahmed Mohammed Al-Samman, Iraj Sadegh Amiri
2020 J jnl
Wirel. Networks
Mahrukh Liaqat, Kamarul Ariffin Noordin, Tarik Abdul Latef, Kaharudin Dimyati
2020 J jnl
IEEE Access
Sulastri Manap, Kaharudin Dimyati, Mohammad Nour Hindia, Mohamad Sofian Abu Talip, Rahim Tafazolli
2020 conf
ICSET
Abdu Saif, Kaharudin Dimyati, Kamarul Ariffin Noordin, Nor Shahida Mohd Shah, Qazwan Abdullah, Fadhil Mukhlif
2019 J jnl
Symmetry
Ferdous Hossain, Tan Kim Geok, Tharek Abd Rahman, Mohammad Nour Hindia, Kaharudin Dimyati, Chih Ping Tso, Mohd Nazeri Kamaruddin
2019 J jnl
IEEE Access
Faizan Qamar, Kaharudin Dimyati, Mohammad Nour Hindia, Kamarul Ariffin Noordin, Iraj Sadegh Amiri
2019 J jnl
Int. J. Distributed Sens. Networks
Mohammad Nour Hindia, Faizan Qamar, Talib Abbas, Kaharudin Dimyati, Mohamad Sofian Abu Talip, Iraj Sadegh Amiri
2019 J jnl
Telecommun. Syst.
Faizan Qamar, Mohammad Nour Hindia, Kaharudin Dimyati, Kamarul Ariffin Noordin, Iraj Sadegh Amiri
2019 J jnl
Phys. Commun.
Mahrukh Liaqat, Kamarul Ariffin Noordin, Tarik Abdul Latef, Kaharudin Dimyati, Zhiguo Ding, Arooj Mubashara Siddiqui, Arslan Ahmed, Talha Younas
2019 J jnl
Wirel. Networks
Sayeid M. Sahid Ullah, Wan Amirul Wan Mohd Mahyiddin, Nur Azira Binti Zakaria, Tarik Abdul Latef, Kamarul Ariffin Noordin, Kaharudin Dimyati
2018 J jnl
IEEE Access
Wan A. W. M. Mahyiddin, Nur Azira Binti Zakaria, Kaharudin Dimyati, Ahmad Loqman Ahmad Mazuki
2018 J jnl
Symmetry
Ferdous Hossain, Tan Kim Geok, Tharek Abd Rahman, Mohammad Nour Hindia, Kaharudin Dimyati, Azlan Abdaziz
2017 J jnl
Comput. Networks
Faizan Qamar, Kaharudin Dimyati, Mohammad Nour Hindia, Kamarul Ariffin Noordin, Ahmed Mohammed Al-Samman
2017 J jnl
Symmetry
Hasibur Rashid Chayon, Kaharudin Dimyati, Harikrishnan Ramiah, Ahmed Wasif Reza
2016 J jnl
Int. J. Distributed Sens. Networks
Mohsen Akbari, Ahmed Wasif Reza, Kamarul Ariffin Noordin, Kaharudin Dimyati, Mohsen Riahi Manesh, Mohammad Nour Hindia
2015 J jnl
KSII Trans. Internet Inf. Syst.
Yousef Ali Al-Gumaei, Kamarul Ariffin Noordin, Ahmed Wasif Reza, Kaharudin Dimyati
2015 C conf
SNPD
Roslina Mohamad, Harlisya Harun, Makhfudzah Mokhtar, Wan Azizun Wan Adnan, Kaharudin Dimyati
2014 J jnl
Optim. Lett.
Ahmed Wasif Reza, Kaharudin Dimyati, Kamarul Ariffin Noordin, A. S. M. Zahid Kausar, Md. Sumon Sarker
2013 J jnl
J. Digit. Imaging
Shahriar Badsha, Ahmed Wasif Reza, Kim Geok Tan, Kaharudin Dimyati
2013 conf
EISIC
Kamaruddin Abdul Ghani, Kaharudin Dimyati, Khadijah Ismail, Latifah Sarah Supian
2011 J jnl
J. Medical Syst.
Ahmed Wasif Reza, Chantra Eswaran, Kaharudin Dimyati
2011 J jnl
IEICE Electron. Express
Ahmed Wasif Reza, Kaharudin Dimyati, Kamarul Ariffin Noordin, Md. Sumon Sarker
2011 J jnl
Wirel. Pers. Commun.
Ahmed Wasif Reza, Tan Kim Geok, Kiew Joh Chia, Kaharudin Dimyati
2011 J jnl
Wirel. Pers. Commun.
Ahmed Wasif Reza, Tan Kim Geok, Kaharudin Dimyati
2010 J jnl
Aslib Proc.
Sarinder Kaur Kashmir Singh, Lee Hong Susan Lim, Amir F. Merican, Kaharudin Dimyati
2010 conf
ICWN
Bilkis Seeme Fatima, Abdullah Omar Arafat, Kaharudin Dimyati
2008 conf
Wireless Days
Azlina Idris, Kaharudin Dimyati, Sharifah Kamilah Syed Yusof
2005 J jnl
IEICE Electron. Express
V. Sinivasagam, Mustafa A. G. Abushagur, Kaharudin Dimyati, F. Tumiran
2002 conf
APCCAS (1)
Kaharudin Dimyati, M. F. Ismail
2001 conf
ICN (2)
Kaharudin Dimyati, Chee Onn Chow
1996
Kaharudin Dimyati
tests/integration/test_pe_extractor.py
← Index tests/integration/test_pe_extractor.py python
"""
Integration tests for the PEExtractor base class.
"""
import pytest
from unittest.mock import Mock, patch, MagicMock

pytestmark = [pytest.mark.integration, pytest.mark.pe]


class TestPEExtractorInitialization:
    """Tests for PEExtractor initialization."""

    def test_pe_extractor_with_valid_pe(self, pe_binary_path, mock_logger):
        """Test PEExtractor initialization with valid PE file."""
        from redb.extractors.pe_extractors.pe_features import PEFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = PEFeaturesExtractor(pe_binary_path, mock_logger)

            assert extractor.pe is not None
            assert extractor.filepath == pe_binary_path

    def test_pe_extractor_with_provided_pe_object(self, pe_binary_path, mock_logger, pe_object):
        """Test PEExtractor initialization with pre-existing PE object."""
        from redb.extractors.pe_extractors.pe_features import PEFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = PEFeaturesExtractor(pe_binary_path, mock_logger, pe=pe_object)

            # Should use the provided PE object, not create a new one
            assert extractor.pe is pe_object

    def test_pe_extractor_with_invalid_file(self, elf_binary_path, mock_logger):
        """Test PEExtractor initialization with non-PE file."""
        from redb.extractors.pe_extractors.pe_features import PEFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = PEFeaturesExtractor(elf_binary_path, mock_logger)

            # Should return None for pe when file is not a valid PE
            assert extractor.pe is None
            # Logger should have recorded an error
            assert mock_logger.error.called


class TestPEExtractorMethods:
    """Tests for PEExtractor helper methods."""

    def test_check_dotnet_true(self, pe_binary_path, mock_logger):
        """Test _check_dotnet returns True for .NET PE."""
        from redb.extractors.pe_extractors.pe_features import PEFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = PEFeaturesExtractor(pe_binary_path, mock_logger)

            # The test PE file is a .NET binary
            if extractor.pe is not None:
                result = extractor._check_dotnet()
                # d8637bdbcfc9112fcb1f0167b398e771 is a .NET binary
                assert result is True

    def test_check_dotnet_false(self, elf_binary_path, mock_logger):
        """Test _check_dotnet returns False for non-PE file."""
        from redb.extractors.pe_extractors.pe_features import PEFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = PEFeaturesExtractor(elf_binary_path, mock_logger)

            # Should return False when PE is None
            result = extractor._check_dotnet()
            assert result is False

    def test_is_signed_false(self, pe_binary_path, mock_logger):
        """Test _is_signed method."""
        from redb.extractors.pe_extractors.pe_features import PEFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = PEFeaturesExtractor(pe_binary_path, mock_logger)

            if extractor.pe is not None:
                result = extractor._is_signed()
                # Result depends on the actual binary
                assert isinstance(result, bool)

    def test_has_overlay(self, pe_binary_path, mock_logger):
        """Test _has_overlay method."""
        from redb.extractors.pe_extractors.pe_features import PEFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = PEFeaturesExtractor(pe_binary_path, mock_logger)

            if extractor.pe is not None:
                result = extractor._has_overlay()
                assert isinstance(result, bool)


class TestGeneratePEFileObject:
    """Tests for _generate_pefile_object method."""

    def test_generate_pefile_object_valid(self, pe_binary_path, mock_logger):
        """Test _generate_pefile_object with valid PE file."""
        from redb.extractors.pe_extractors.pe_features import PEFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = PEFeaturesExtractor(pe_binary_path, mock_logger)

            # The PE object should be created successfully
            assert extractor.pe is not None

    def test_generate_pefile_object_invalid(self, temp_text_file, mock_logger):
        """Test _generate_pefile_object with invalid file."""
        from redb.extractors.pe_extractors.pe_features import PEFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = PEFeaturesExtractor(temp_text_file, mock_logger)

            # Should return None for invalid PE
            assert extractor.pe is None


class TestGenerateDotNetFileObject:
    """Tests for _generate_dotnetfile_object method."""

    def test_generate_dotnetfile_object_valid(self, pe_binary_path, mock_logger):
        """Test _generate_dotnetfile_object with .NET PE file."""
        from redb.extractors.pe_extractors.pe_dotnet import PEDotNetExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = PEDotNetExtractor(pe_binary_path, mock_logger)

            if extractor.pe is not None and extractor._check_dotnet():
                dotnet, error = extractor._generate_dotnetfile_object()
                # Should create dotnet object for .NET PE
                assert dotnet is not None
                assert error is None

    def test_generate_dotnetfile_object_invalid(self, elf_binary_path, mock_logger):
        """Test _generate_dotnetfile_object with non-.NET file."""
        from redb.extractors.pe_extractors.pe_dotnet import PEDotNetExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = PEDotNetExtractor(elf_binary_path, mock_logger)

            dotnet, error = extractor._generate_dotnetfile_object()
            # Should return error for non-.NET file
            assert dotnet is None
            assert error is not None


class TestPEExtractorTag:
    """Tests for tag method in PE extractors."""

    def test_pe_features_tag(self, pe_binary_path, mock_logger):
        """Test that PEFeaturesExtractor returns correct tag."""
        from redb.extractors.pe_extractors.pe_features import PEFeaturesExtractor
        from redb.extractors.enum import Tag

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = PEFeaturesExtractor(pe_binary_path, mock_logger)
            assert extractor.tag() == Tag.PE_FEATURES.value

    def test_pe_import_tag(self, pe_binary_path, mock_logger):
        """Test that PEImportExtractor returns correct tag."""
        from redb.extractors.pe_extractors.pe_imports import PEImportExtractor
        from redb.extractors.enum import Tag

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = PEImportExtractor(pe_binary_path, mock_logger)
            assert extractor.tag() == Tag.PE_IMPORT.value

    def test_pe_section_tag(self, pe_binary_path, mock_logger):
        """Test that PESectionExtractor returns correct tag."""
        from redb.extractors.pe_extractors.pe_sections import PESectionExtractor
        from redb.extractors.enum import Tag

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = PESectionExtractor(pe_binary_path, mock_logger)
            assert extractor.tag() == Tag.PE_SECTION.value


class TestPEExtractorClickHouseTable:
    """Tests for get_clickhouse_table method in PE extractors."""

    def test_pe_features_clickhouse_table(self, pe_binary_path, mock_logger):
        """Test that PEFeaturesExtractor returns correct ClickHouse table name."""
        from redb.extractors.pe_extractors.pe_features import PEFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = PEFeaturesExtractor(pe_binary_path, mock_logger)
            assert extractor.get_clickhouse_table() == "redb_pe_features"

    def test_pe_import_clickhouse_table(self, pe_binary_path, mock_logger):
        """Test that PEImportExtractor returns correct ClickHouse table name."""
        from redb.extractors.pe_extractors.pe_imports import PEImportExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = PEImportExtractor(pe_binary_path, mock_logger)
            assert extractor.get_clickhouse_table() == "redb_pe_imports"

    def test_pe_section_clickhouse_table(self, pe_binary_path, mock_logger):
        """Test that PESectionExtractor returns correct ClickHouse table name."""
        from redb.extractors.pe_extractors.pe_sections import PESectionExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = PESectionExtractor(pe_binary_path, mock_logger)
            assert extractor.get_clickhouse_table() == "redb_pe_sections"


class TestPEExtractorPrepareExportData:
    """Tests for prepare_export_data method in PE extractors."""

    def test_pe_features_prepare_export_elasticsearch(self, pe_binary_path, mock_logger):
        """Test prepare_export_data for Elasticsearch."""
        from redb.extractors.pe_extractors.pe_features import PEFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = PEFeaturesExtractor(pe_binary_path, mock_logger)

            if extractor.pe is not None:
                # First extract
                extractor.extract()
                result = extractor.prepare_export_data("ElasticsearchExporter")
                # Should return the pe_features dataclass
                assert result is extractor.pe_features

    def test_pe_features_prepare_export_clickhouse(self, pe_binary_path, mock_logger):
        """Test prepare_export_data for ClickHouse."""
        from redb.extractors.pe_extractors.pe_features import PEFeaturesExtractor

        with patch('redb.settings.ELASTIC_BINARIES_COLLECTION', 'test'):
            extractor = PEFeaturesExtractor(pe_binary_path, mock_logger)

            if extractor.pe is not None:
                # First extract
                extractor.extract()
                result = extractor.prepare_export_data("ClickHouseExporter")

                # Should return tuple of (data, column_names, column_type_names)
                assert isinstance(result, tuple)
                assert len(result) == 3
                data, column_names, column_type_names = result
                assert isinstance(data, list)
                assert isinstance(column_names, list)
                assert isinstance(column_type_names, list)
                # Column names and types should match in length
                assert len(column_names) == len(column_type_names)