Nadeem Akhtar

82 papers A 1B 8C 1Misc 8Journal 39Unranked 24
YearRankTypeTitle / Venue / Authors
2025 J jnl
IEEE Access
Shahbaz Ahmad, Nadeem Akhtar, Adeel Ahmed, Saman Iftikhar, Shaikhan Bawazeer, Saima Abdullah
2025 J jnl
Frontiers Artif. Intell.
Sidra Hameed, Muhammad Nauman, Nadeem Akhtar, Muhammad A. B. Fayyaz, Raheel Nawaz
2025 J jnl
Axioms
Muteb Faraj Alharthi, Nadeem Akhtar
2025 J jnl
Axioms
Muteb Faraj Alharthi, Nadeem Akhtar
2024 J jnl
Soft Comput.
Nadeem Salamat, Malik Muhammad Saad Missen, Nadeem Akhtar, Muhammad Mustahsan, V. B. Surya Prasath
2024 J jnl
IEEE Access
Nadia Khan, Muhammad Nauman, Ahmad S. Almadhor, Nadeem Akhtar, Abdullah Alghuried, Adi Alhudhaif
2024 Misc conf
COMSNETS
Jagrati Kulshrestha, Nadeem Akhtar, Preyas Hathi, Mukulika Maity
2023 J jnl
Kybernetes
Ambreen Sarwar, Muhammad Kashif Imran, Nadeem Akhtar, Tehreem Fatima
2023 Misc conf
COMSNETS
Siddharth Dhama, Nadeem Akhtar, Preyas Hathi, Samar Agnihotri
2023 J jnl
IEEE Access
Fatima Hussain, Muhammad Nauman, Abdullah Alghuried, Adi Alhudhaif, Nadeem Akhtar
2023 conf
ICC
Rishabh Roy, Rajshekhar Vishweshwar Bhat, Preyas Hathi, Nadeem Akhtar, Naveen Mysore Balasubramanya
2023 J jnl
CoRR
Rishabh Roy, Rajshekhar Vishweshwar Bhat, Preyas Hathi, Nadeem Akhtar, Naveen Mysore Balasubramanya
2023 Misc conf
COMSNETS
Govind Rajendran, Rishabh Roy, Preyas Hathi, Nadeem Akhtar, Samar Agnihotri
2023 J jnl
CoRR
Govind Rajendran, Rishabh Roy, Preyas Hathi, Nadeem Akhtar, Samar Agnihotri
2022 Misc conf
COMSNETS
Neil Dalal, Nadeem Akhtar, Anubhav Gupta, Nikhil Karamchandani, Gaurav S. Kasbekar, Jatin Parekh
2022 conf
NCC
Sarthak Joshi, Rishabh Roy, Rajshekhar Vishweshwar Bhat, Preyas Hathi, Nadeem Akhtar
2022 Misc conf
COMSNETS
Sheela C. S, Joy Kuri, Nadeem Akhtar
2021 J jnl
CoRR
Neil Dalal, Nadeem Akhtar, Anubhav Gupta, Nikhil Karamchandani, Gaurav S. Kasbekar, Jatin Parekh
2021 J jnl
Frontiers Comput. Sci.
Mujtaba Husnain, Malik Muhammad Saad Missen, Nadeem Akhtar, Mickaël Coustaty, Shahzad Mumtaz, V. B. Surya Prasath
2021 Misc conf
COMSNETS
Ayushneel Titus, Rajat Bansal, T. V. Sreejith, Arzad Alam Kherani, Nadeem Akhtar
2021 J jnl
Sci. Program.
Abdul Rehman, Nadeem Akhtar, Omar Hussain Alhazmi
2021 J jnl
IEEE Access
Muhammad Nauman, Nadeem Akhtar, Adi Alhudhaif, Abdulrahman Alothaim
2021 J jnl
J. Ambient Intell. Humaniz. Comput.
Malik Muhammad Saad Missen, Aqsa Naeem, Hina Asmat, Nadeem Salamat, Nadeem Akhtar, Mickaël Coustaty, V. B. Surya Prasath
2021 J jnl
IEEE Access
Muhammad Nauman, Nadeem Akhtar, Omar Hussain Alhazmi, Mustafa Hameed, Habib Ullah, Nadia Khan
2021 Misc conf
COMSNETS
Laxmi Thakare, Ruchi Dohare, Nadeem Akhtar
2021 J jnl
Complex.
Irfan Ullah Khan, Nida Aslam, Talha Anwar, Sumayh S. Aljameel, Mohib Ullah, Rafiullah Khan, Abdul Rehman, Nadeem Akhtar
2020 J jnl
J. Medical Imaging Health Informatics
Sadaf Zahid Mahmood, Humaira Afzal, Muhammad Rafiq Mufti, Nadeem Akhtar, Asad Habib, Shahid Hussain
2020 J jnl
Inf. Technol. Control.
Dost Muhammad Khan, Talal Aslam, Nadeem Akhtar, Salman Qadri, Imran Mujaddid Rabbani, Muhammad Aslam
2020 J jnl
Symmetry
Mohammed Attik, Malik Muhammad Saad Missen, Mickaël Coustaty, Gyu Sang Choi, Fahd Saleh Alotaibi, Nadeem Akhtar, Muhammad Zeeshan Jhandir, V. B. Surya Prasath, Nadeem Salamat, Mujtaba Husnain
2020 J jnl
J. Intell. Fuzzy Syst.
Nadeem Akhtar, M. M. Sufyan Beg, Md. Muzakkir Hussain
2020 J jnl
Neural Comput. Appl.
Nadeem Akhtar, U. Ragavendran
2020 J jnl
Scientometrics
Malik Muhammad Saad Missen, Sajeeha Qureshi, Nadeem Salamat, Nadeem Akhtar, Hina Asmat, Mickaël Coustaty, V. B. Surya Prasath
2020 J jnl
J. Intell. Fuzzy Syst.
Md. Muzakkir Hussain, Mohammad Saad Alam, M. M. Sufyan Beg, Nadeem Akhtar
2020 J jnl
Appl. Soft Comput.
Saban Öztürk, Rehan Ahmad, Nadeem Akhtar
2020 A conf
MSWiM
Muhammad Inamullah, Bhaskaran Raman, Nadeem Akhtar
2019 J jnl
IEEE Access
Subhan Tariq, Nadeem Akhtar, Humaira Afzal, Shehzad Khalid, Muhammad Rafiq Mufti, Shahid Hussain, Asad Habib, Ghufran Ahmad
2019 J jnl
Int. Arab J. Inf. Technol.
Nadeem Akhtar, Saima Khan
2019 J jnl
IEEE Access
Nadeem Akhtar, Abdul Rehman, Mujtaba Hussnain, Saad Rohail, Malik Muhammad Saad Missen, Mehwish Nasir, Alina Hayder, Nadeem Salamat, Maruf Pasha
2019 J jnl
Symmetry
Mohammed Attik, Malik Muhammad Saad Missen, Mickaël Coustaty, Gyu Sang Choi, Fahd Saleh Alotaibi, Nadeem Akhtar, Muhammad Zeeshan Jhandir, V. B. Surya Prasath, Nadeem Salamat, Mujtaba Husnain
2019 conf
IC3
Nadeem Akhtar, M. M. Sufyan Beg, Hira Javed
2019 conf
ICACDS (2)
Nadeem Akhtar, M. M. Sufyan Beg, Hira Javed
2019 J jnl
J. Intell. Fuzzy Syst.
Nadeem Akhtar, M. M. Sufyan Beg
2017 J jnl
J. Intell. Fuzzy Syst.
Nadeem Akhtar, Bushra Siddique
2016 J jnl
CoRR
Nadeem Akhtar, Malik Muhammad Saad Missen
2016 B conf
PIMRC
Gareth Tyson, John Bigham, Eliane L. Bodanese, Nadeem Akhtar, Pradipta Biswas, Pat Langdon, Vineet Mimrot, Pratyay Mukhopadhyay, Vinay J. Ribeiro
2016 B conf
WCNC
Pravjyot Singh Deogun, Mahima Mehta, Abhay Karandikar, Nadeem Akhtar
2015 conf
NCC
Shashi Ranjan, Pravjyot Singh Deogun, Mahima Mehta, Punit Rathod, Nadeem Akhtar, Abhay Karandikar
2015 B conf
WCNC
Pravjyot Singh Deogun, Shashi Ranjan, Punit Rathod, Abhay Karandikar, Nadeem Akhtar
2015 conf
NCC
Mahima Mehta, Nadeem Akhtar, Abhay Karandikar
2015 J jnl
CoRR
Nadeem Akhtar, Yann Le Guyadec, Flávio Oquendo
2015 conf
NCC
Mahima Mehta, Nadeem Akhtar, Abhay Karandikar
2015 J jnl
CoRR
Nadeem Akhtar, Anique Akhtar
2015 conf
IEEE ANTS
Vaishakh Janardhanan, Nishad Muhammed, Venkatarao Gonuguntla, Nadeem Akhtar
2015 B conf
WCNC
Shubhada Gadgil, Shashi Ranjan, Divya Joshi, Mahima Mehta, Nadeem Akhtar, Abhay Karandikar
2015 J jnl
CoRR
Nadeem Akhtar, Aisha Shafique Ghori, Nadeem Salamat
2015 J jnl
CoRR
Nadeem Akhtar
2014 C conf
HIS
Shahzad Alam, S. M. Zakariya, Nadeem Akhtar
2014 conf
ICACCI
Nadeem Akhtar, Nishi Agarwal, Armita Burjwal
2014 conf
NCC
Venkatarao Gonuguntla, Ram Garg, Sayee C. Kompalli, Nadeem Akhtar
2014 conf
NCC
Shashi Ranjan, Nadeem Akhtar, Mahima Mehta, Abhay Karandikar
2013 conf
ICC Workshops
S. Naga Sekhar Kshatriya, Sivakishore Reddy Yerrapareddy, Nadeem Akhtar, J. Klutto Milleth
2013 Misc conf
COMSNETS
S. Naga Sekhar Kshatriya, Sunil Kaimalettu, Sivakishore Reddy Yerrapareddy, J. Klutto Milleth, Nadeem Akhtar
2012 conf
MOBILWARE
Karthik Srinivasan, Poorva Agrawal, Rajat Arya, Nadeem Akhtar, Deepak Pengoria, Timothy A. Gonsalves
2012 conf
ICITST
Umar Manzoor, Naveed Ejaz, Nadeem Akhtar, Muhammad Umar, M. Shoaib Khan, Hafsa Umar
2011 conf
ICC
Sunil Kaimalettu, Rajet Krishnan, Sheetal Kalyani, Nadeem Akhtar, Bhaskar Ramamurthi
2009 conf
WKDD
Mohammed A. Qadeer, Nadeem Akhtar, Faraz Khan
2009 B conf
ICAART
Nadeem Akhtar, Yann Le Guyadec, Flávio Oquendo
2009 conf
WKDD
Faraz Khan, Nadeem Akhtar, Mohammed A. Qadeer
2008 conf
COMSWARE
Nadeem Akhtar, Klaus Moessner
2008 J jnl
Comput. Commun.
Nadeem Akhtar, Klaus Moessner
2007 B conf
PIMRC
Nadeem Akhtar, Jan Markendahl, Klaus Moessner
2007 conf
CTTE
Nadeem Akhtar, Jan Markendahl, Olav Queseth
2007 J jnl
Comput. Commun.
Michael Georgiades, Nadeem Akhtar, Christos Politis, Rahim Tafazolli
2007 conf
DRCN
Di Zhou, Yaning Wang, Nadeem Akhtar, Klaus Moessner, Daniel Migault
2007 B conf
PIMRC
Zhaojun Li, Nadeem Akhtar, Rahim Tafazolli
2006 conf
VTC Fall
Nadeem Akhtar, Rui Campos, Cornelia Kappler, Pekka Pääkkönen, Petteri Pöyhönen, Di Zhou
2006 ch.
The Handbook of Mobile Middleware
Michael Georgiades, Christos Politis, Nadeem Akhtar, Rahim Tafazolli
2006 conf
MOBIWAC
Pirabakaran Navaratnam, Nadeem Akhtar, Rahim Tafazolli
2006 conf
WWIC
Pekka Pääkkönen, Nadeem Akhtar, Rui Campos, Cornelia Kappler, Petteri Pöyhönen, Di Zhou
2005 conf
WAC
Nadeem Akhtar, Klaus Moessner, Ralf Kernchen
2005 B conf
PIMRC
Dan He, Nadeem Akhtar, Rahim Tafazolli, Anne-Louise Burness, Philip Eardley
2004 J jnl
IEEE Wirel. Commun.
Christos Politis, Kar Ann Chew, Nadeem Akhtar, Michael Georgiades, Rahim Tafazolli, Tasos Dagiuklas
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)