Hamada Rizk

100 papers A* 6A 4B 22C 3Misc 1Journal 21Unranked 43
YearRankTypeTitle / Venue / Authors
2026 conf
ICDCN Companion
Riku Nakao, Akihito Hiromori, Hamada Rizk, Hirozumi Yamaguchi
2026 conf
ICDCN Companion
Daniela Nicklas, Leonie Ackermann, Debasree Das, Tatsuya Amano, Hamada Rizk, Hirozumi Yamaguchi
2026 conf
ICDCN Companion
Aidana Baimbetova, Haruki Yonekura, Hamada Rizk, Hirozumi Yamaguchi
2026 conf
ICDCN Companion
Ibuki Matsumoto, Takamasa Higuchi, Fukuharu Tanaka, Tatsuya Amano, Hamada Rizk, Akira Uchiyama, Akihito Hiromori, Hirozumi Yamaguchi, Masaki Takanashi
2026 conf
ICDCN Companion
Xuqing Liu, Tatsuya Amano, Hamada Rizk, Hirozumi Yamaguchi
2026 conf
ICDCN Companion
Rami Naeem, Tengis Buyantogtokh, Hamada Rizk, Tatsuya Amano, Hirozumi Yamaguchi
2026 conf
ICDCN Companion
Yui Maruyama, Ryohei Tsuji, Akira Uchiyama, Hamada Rizk, Hirozumi Yamaguchi, Sumio Morioka, Takahiro Inagawa
2026 conf
ICDCN Companion
Ziheng Xu, Tatsuya Amano, Hamada Rizk, Hirozumi Yamaguchi
2025 B conf
PIMRC
Hamada Rizk, Heetae Jin, Akira Uchiyama
2025 J jnl
Eng. Appl. Artif. Intell.
Mohammad A. Eita, Hamada Rizk
2025 B conf
SMARTCOMP
Ren Ozeki, Haruki Yonekura, Hamada Rizk, Hirozumi Yamaguchi
2025 Misc conf
IE
Kentaro Inohara, Tatsuya Amano, Hamada Rizk, Hirozumi Yamaguchi
2025 B conf
SSTD
Haruki Yonekura, Hamada Rizk, Hirozumi Yamaguchi
2025 B conf
MDM
Mohamed Mohsen, Teegwende Zougmore, Bamba Gueye, Hamada Rizk, Moustafa Youssef
2025 conf
VTC2025-Fall
Hamada Rizk, Heetae Jin, Akira Uchiyama
2025 conf
SIGSPATIAL/GIS
Mostafa Gaafar, Ali Elaswad, Hamada Rizk, Moustafa Youssef
2025 B conf
SSTD
Xuqing Liu, Ahmed Farid, Tatsuya Amano, Hamada Rizk, Hirozumi Yamaguchi
2025 B conf
SSTD
Congzhi Ren, Hamada Rizk, Tatsuya Amano, Hirozumi Yamaguchi
2025 conf
SIGSPATIAL/GIS
Mohab Bahnassy, Omar Saqr, Hamada Rizk, Moustafa Youssef
2025 conf
SIGSPATIAL/GIS
Haruki Yonekura, Ren Ozeki, Tatsuya Amano, Hamada Rizk, Hirozumi Yamaguchi
2025 J jnl
CoRR
Haruki Yonekura, Ren Ozeki, Tatsuya Amano, Hamada Rizk, Hirozumi Yamaguchi
2025 B conf
SSTD
Ren Ozeki, Hamada Rizk, Hirozumi Yamaguchi
2025 conf
ICMU
Fukuharu Tanaka, Takamasa Higuchi, Masaki Takanashi, Tatsuya Amano, Hamada Rizk, Akira Uchiyama, Akihito Hiromori, Hirozumi Yamaguchi
2025 B conf
SMARTCOMP
Riku Nakao, Akihito Hiromori, Hamada Rizk, Hirozumi Yamaguchi
2025 conf
UbiComp Companion
Hongyin Qiao, Hamada Rizk, Takuya Maekawa
2025 conf
VTC2025-Fall
Congzhi Ren, Hamada Rizk, Tatsuya Amano, Hirozumi Yamaguchi
2025 J jnl
IEEE Trans. Intell. Transp. Syst.
Riki Ukyo, Tatsuya Amano, Hamada Rizk, Hirozumi Yamaguchi, Takao Moriya
2025 J jnl
Neural Comput. Appl.
Haruki Yonekura, Hamada Rizk, Hirozumi Yamaguchi
2025 conf
ICMU
Ahmed Jaheen, Sarah Elsamanody, Hamada Rizk, Moustafa Youssef
2025 J jnl
CoRR
Ahmed Jaheen, Sarah Elsamanody, Hamada Rizk, Moustafa Youssef
2024 B conf
MDM
Hamada Rizk, Akira Uchiyama, Hirozumi Yamaguchi
2024 B conf
SMARTCOMP
Tatsuya Amano, Hamada Rizk
2024 J jnl
CoRR
Mohamed I. Hany, Hamada Rizk, Moustafa A. Youssef
2024 A* conf
PerCom
Ren Ozeki, Haruki Yonekura, Hamada Rizk, Hirozumi Yamaguchi
2024 conf
SIGSPATIAL/GIS
Muhammad ElMahdy, Mubarak G. Abdu-Aguye, Hamada Rizk, Moustafa Youssef
2024 B conf
SMARTCOMP
Hamada Rizk, Mirna Elbestar, Moustafa Youssef
2024 conf
SIGSPATIAL/GIS
Ahmed Hesham, Eman Samir, Hamada Rizk, Moustafa Youssef
2024 A conf
MobiSys
Hamada Rizk, Sherief Hashima
2024 A conf
MobiSys
Mirna Elbestar, Hamada Rizk, Moustafa Youssef
2024 A conf
MobiSys
Haruki Yonekura, Hamada Rizk, Hirozumi Yamaguchi
2024 conf
SIGSPATIAL/GIS
Ren Ozeki, Haruki Yonekura, Hamada Rizk, Hirozumi Yamaguchi
2024 J jnl
CoRR
Ren Ozeki, Haruki Yonekura, Hamada Rizk, Hirozumi Yamaguchi
2024 J jnl
Pervasive Mob. Comput.
Masakazu Ohno, Riki Ukyo, Tatsuya Amano, Hamada Rizk, Hirozumi Yamaguchi
2024 B conf
MDM
Hamada Rizk, Sherief Hashima
2024 J jnl
CoRR
Haruki Yonekura, Ren Ozeki, Hamada Rizk, Hirozumi Yamaguchi
2024 conf
SIGSPATIAL/GIS
Ahmed Jaheen, Sarah Elsamanody, Hamada Rizk, Moustafa Youssef
2024 conf
ABC
Sherief Hashima, Hamada Rizk, Hirozumi Yamaguchi
2024 J jnl
CoRR
Mohamed Mohsen, Hamada Rizk, Hirozumi Yamaguchi, Moustafa Youssef
2024 J jnl
IEEE Internet Things J.
Mohamed Mohsen, Hamada Rizk, Hirozumi Yamaguchi, Moustafa Youssef
2024 J jnl
J. Reliab. Intell. Environ.
Hirozumi Yamaguchi, Hamada Rizk, Tatsuya Amano, Akihito Hiromori, Riki Ukyo, Shota Yamada, Masakazu Ohno
2024 A conf
MobiSys
Hamada Rizk, Hend Fayed, Akira Uchiyama, Hirozumi Yamaguchi
2023 C conf
ICCC
Zhen Chen, Junjie Ye, Peichang Zhang, Hamada Rizk, Lei Huang, Mohamed Rihan
2023 B conf
MDM
Ren Ozeki, Haruki Yonekura, Hamada Rizk, Hirozumi Yamaguchi
2023 B conf
MDM
Haruki Yonekura, Ren Ozeki, Hamada Rizk, Hirozumi Yamaguchi
2023 conf
UbiComp/ISWC Adjunct
Kaede Shintani, Hamada Rizk, Hirozumi Yamaguchi
2023 conf
MobiQuitous (2)
Shota Yamada, Hamada Rizk, Tatsuya Amano, Hirozumi Yamaguchi
2023 conf
ICCTA
Hamada Rizk, Hirozumi Yamaguchi
2023 B conf
GLOBECOM
Hamada Rizk, Ahmed Sakr, Ali Ghazal, Mohamed Hemdan, Omar Shaheen, Hossam Sharara, Hirozumi Yamaguchi, Moustafa Youssef
2023 B conf
SMARTCOMP
Hamada Rizk, Hirozumi Yamaguchi
2023 J jnl
ACM Trans. Spatial Algorithms Syst.
Hamada Rizk, Hirozumi Yamaguchi, Moustafa Youssef, Teruo Higashino
2023 conf
GeoIndstry@SIGSPATIAL
Mohamed Mohsen, Hamada Rizk, Hirozumi Yamaguchi, Moustafa Youssef
2023 conf
SIGSPATIAL/GIS
Ren Ozeki, Haruki Yonekura, Aidana Baimbetova, Hamada Rizk, Hirozumi Yamaguchi
2023 J jnl
CoRR
Ren Ozeki, Haruki Yonekura, Aidana Baimbetova, Hamada Rizk, Hirozumi Yamaguchi
2023 conf
ITSC
Riki Ukyo, Tatsuya Amano, Hamada Rizk, Hirozumi Yamaguchi
2023 conf
PerCom Workshops
Kaede Shintani, Hamada Rizk, Hirozumi Yamaguchi
2023 B conf
SMARTCOMP
Yumeki Goto, Tomoya Matsumoto, Hamada Rizk, Naoto Yanai, Hirozumi Yamaguchi
2023 J jnl
CoRR
Yumeki Goto, Tomoya Matsumoto, Hamada Rizk, Naoto Yanai, Hirozumi Yamaguchi
2023 B conf
MDM
Mohamed Mohsen, Hamada Rizk, Moustafa Youssef
2023 J jnl
CoRR
Mohamed Mohsen, Hamada Rizk, Moustafa Youssef
2023 A* conf
PERCOM
Masakazu Ohno, Riki Ukyo, Tatsuya Amano, Hamada Rizk, Hirozumi Yamaguchi
2023 J jnl
CoRR
Masakazu Ohno, Riki Ukyo, Tatsuya Amano, Hamada Rizk, Hirozumi Yamaguchi
2023 conf
BodySys@MobiSys
Yu Sugimoto, Hamada Rizk, Akira Uchiyama, Hirozumi Yamaguchi
2023 C conf
ISI
Sherief Hashima, Mohamed H. Saad, Kohei Hatano, Hamada Rizk
2023 conf
SIGSPATIAL/GIS
Mohammed Elkholy, Hamada Rizk, Moustafa Youssef
2022 J jnl
Sensors
Hamada Rizk, Ahmed M. Elmogy, Hirozumi Yamaguchi
2022 conf
PerCom Workshops
Shota Yamada, Hamada Rizk, Hirozumi Yamaguchi
2022 B conf
Intelligent Environments
Asmaa Saeed, Ahmed Wasfey, Hamada Rizk, Hirozumi Yamaguchi
2022 A* conf
MobiCom
Hamada Rizk, Tatsuya Amano, Hirozumi Yamaguchi, Moustafa Youssef
2022 A* conf
MobiCom
Hamada Rizk, Yuma Okochi, Hirozumi Yamaguchi
2022 conf
PerCom Workshops
Hamada Rizk, Dong Ma, Mahbub Hassan, Moustafa Youssef
2022 conf
SIGSPATIAL/GIS
Farah Youssef, Sara Elmogy, Hamada Rizk
2022 J jnl
CoRR
Betty Lala, Hamada Rizk, Srikant Manas Kala, Aya Hagishima
2022 B conf
WiMob
Yuma Okochi, Hamada Rizk, Tatsuya Amano, Hirozumi Yamaguchi
2022 B conf
Intelligent Environments
Yuma Okochi, Hamada Rizk, Hirozumi Yamaguchi
2022 conf
SIGSPATIAL/GIS
Hamada Rizk, Dong Ma, Mahbub Hassan, Moustafa Youssef
2022 conf
SIGSPATIAL/GIS
Ren Ozeki, Haruki Yonekura, Hamada Rizk, Hirozumi Yamaguchi
2022 conf
PerCom Workshops
Hikaru Katayama, Teruhiro Mizumoto, Hamada Rizk, Hirozumi Yamaguchi
2021 J jnl
Pervasive Mob. Comput.
Hamada Rizk, Moustafa Abbas, Moustafa Youssef
2021 conf
ICDCN (Adjunct Volume)
Viktor Erdélyi, Hamada Rizk, Hirozumi Yamaguchi, Teruo Higashino
2021 conf
SIGSPATIAL/GIS
Israa Fahmy, Samah Ayman, Hamada Rizk, Moustafa Youssef
2021 J jnl
Data
Ahmed M. Elmogy, Hamada Rizk, Amany M. Sarhan
2021 C conf
MobiQuitous
Hamada Rizk, Tatsuya Amano, Hirozumi Yamaguchi, Moustafa Youssef
2020 conf
SIGSPATIAL/GIS
Hamada Rizk, Hirozumi Yamaguchi, Teruo Higashino, Moustafa Youssef
2020 conf
SIGSPATIAL/GIS
Khaled Alkiek, Aya Othman, Hamada Rizk, Moustafa Youssef
2020 conf
SIGSPATIAL/GIS
Hamada Rizk, Hirozumi Yamaguchi, Moustafa Youssef, Teruo Higashino
2020 A* conf
PerCom
Hamada Rizk, Moustafa Abbas, Moustafa Youssef
2019 B conf
WCNC
Hamada Rizk, Ahmed Shokry, Moustafa Youssef
2019 conf
SIGSPATIAL/GIS
Hamada Rizk, Moustafa Youssef
2019 conf
SIGSPATIAL/GIS
Hamada Rizk
2019 A* conf
PerCom
Moustafa Abbas, Moustafa Elhamshary, Hamada Rizk, Marwan Torki, Moustafa Youssef
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)