Hamed Rahimi

26 papers B 3Misc 1Journal 18Unranked 3
YearRankTypeTitle / Venue / Authors
2026 J jnl
CoRR
Adrien Jacquet Crétides, Mouad Abrini, Hamed Rahimi, Mohamed Chetouani
2026 J jnl
CoRR
Jeanne Malecot, Hamed Rahimi, Jeanne Cattoni, Marie Samson, Mouad Abrini, Mahdi Khoramshahi, Maribel Pino, Mohamed Chetouani
2025 B conf
ICMI
Hamed Rahimi, Mouad Abrini, Jeanne Malecot, Ying Lai, Adrien Jacquet Crétides, Mahdi Khoramshahi, Mohamed Chetouani
2025 J jnl
CoRR
Hamed Rahimi, Mouad Abrini, Mahdi Khoramshahi, Mohamed Chetouani
2025 J jnl
CoRR
Adil Bahaj, Hamed Rahimi, Mohamed Chetouani, Mounir Ghogho
2025 J jnl
CoRR
Clémence Grislain, Hamed Rahimi, Olivier Sigaud, Mohamed Chetouani
2025 J jnl
CoRR
Mouad Abrini, Omri Abend, Dina M. Acklin, Henny Admoni, Gregor Aichinger, Nitay Alon, Zahra Ashktorab, Ashish Atreja, Moises Auron, Alexander Aufreiter, Raghav Awasthi, Soumya Banerjee, Joseph M. Barnby, Rhea Basappa, Severin Bergsmann, Djallel Bouneffouf, Patrick Callaghan, Marc Cavazza, Thierry Chaminade, Sonia Chernova, Mohamed Chetouani, Moumita Choudhury, Axel Cleeremans, Jacek B. Cywinski, Fabio Cuzzolin, Hokin Deng, N'yoma Diamond, Camilla Di Pasquasio, Guillaume Dumas, Max J. van Duijn, Mahapatra Dwarikanath, Qingying Gao, Ashok K. Goel, Rebecca Goldstein, Matthew C. Gombolay, Gabriel Enrique Gonzalez, Amar Halilovic, Tobias Halmdienst, Mahimul Islam, Julian Jara-Ettinger, Natalie Kastel, Renana Keydar, Ashish K. Khanna, Mahdi Khoramshahi, Jihyun Kim, MiHyeon Kim, YoungBin Kim, Senka Krivic, Nikita Krasnytskyi, Arun Kumar, JuneHyoung Kwon, Eunju Lee, Shane Lee, Peter R. Lewis, Xue Li, Yijiang Li, Michal Lewandowski, Nathan Lloyd, Matthew B. Luebbers, Dezhi Luo, Haiyun Lyu, Dwarikanath Mahapatra, Kamal Maheshwari, Mallika Mainali, Piyush Mathur, Patrick Mederitsch, Shuwa Miura, Manuel Preston de Miranda, Reuth Mirsky, Shreya Mishra, Nina Moorman, Katelyn Morrison, John Muchovej, Bernhard Nessler, Felix Nessler, Hieu Minh Jord Nguyen, Abby Ortego, Francis A. Papay, Antoine Pasquali, Hamed Rahimi, Charumathi Raghu, Amanda L. Royka, Stefan Sarkadi, Jaelle Scheuerman, Simon Schmid, Paul Schrater, Anik Sen, Zahra Sheikhbahaee, Ke Shi, Reid G. Simmons, Nishant Singh, Mason O. Smith, Ramira van der Meulen, Anthia Solaki, Haoran Sun, Viktor Szolga, Matthew E. Taylor, Travis Taylor, Sanne van Waveren, Juan David Vargas
2025 B conf
RO-MAN
Hamed Rahimi, Jeanne Cattoni, Meriem Beghili, Mouad Abrini, Mahdi Khoramshahi, Maribel Pino, Mohamed Chetouani
2025 J jnl
CoRR
Hamed Rahimi, Jeanne Cattoni, Meriem Beghili, Mouad Abrini, Mahdi Khoramshahi, Maribel Pino, Mohamed Chetouani
2025 B conf
ICMI
Hamed Rahimi, Adil Bahaj, Mouad Abrini, Mahdi Khoramshahi, Mounir Ghogho, Mohamed Chetouani
2025 J jnl
CoRR
Hamed Rahimi, Adil Bahaj, Mouad Abrini, Mahdi Khoramshahi, Mounir Ghogho, Mohamed Chetouani
2024 J jnl
Trans. Large Scale Data Knowl. Centered Syst.
Hamed Rahimi, Hubert Naacke, Camélia Constantin, Bernd Amann
2024 conf
EACL (Findings)
Hamed Rahimi, David Mimno, Jacob Louis Hoover, Hubert Naacke, Camélia Constantin, Bernd Amann
2024
Hamed Rahimi
2023 J jnl
CoRR
Hamed Rahimi, Hubert Naacke, Camélia Constantin, Bernd Amann
2023 conf
COMPLEX NETWORKS (3)
Hamed Rahimi, Hubert Naacke, Camélia Constantin, Bernd Amann
2023 J jnl
CoRR
Hamed Rahimi, Hubert Naacke, Camélia Constantin, Bernd Amann
2023 J jnl
CoRR
Hamed Rahimi, Jacob Louis Hoover, David Mimno, Hubert Naacke, Camélia Constantin, Bernd Amann
2021 J jnl
IEEE Trans. Computers
Hamed Rahimi, Yvan Picaud, Kamal Deep Singh, Giyyarpuram Madhusudan, Salvatore Costanzo, Olivier Boissier
2021 conf
WI/IAT
Hamed Rahimi, Iago Felipe Trentin, Fano Ramparany, Olivier Boissier
2021 J jnl
CoRR
Hamed Rahimi, Iago Felipe Trentin, Fano Ramparany, Olivier Boissier
2021 Misc conf
PAAMS
Hamed Rahimi, Iago Felipe Trentin, Fano Ramparany, Olivier Boissier
2021 J jnl
CoRR
Hamed Rahimi, Iago Felipe Trentin, Fano Ramparany, Olivier Boissier
2020 J jnl
CoRR
Hamed Rahimi, Yvan Picaud, Salvatore Costanzo, Giyyarpuram Madhusudan, Olivier Boissier, Kamal Deep Singh
2020 J jnl
CoRR
Hamed Rahimi, Dhayananth Dharmalingam
2018 J jnl
CoRR
Hamed Rahimi, Ali Zibaeenejad, Ali Akbar Safavi
redb/extractors/apk_extractor.py
← Index redb/extractors/apk_extractor.py python
import logging
import zipfile
from abc import ABCMeta, abstractmethod

from redb.extractors.extractor import Extractor

logger = logging.getLogger(__name__)


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

    def __init__(
        self,
        filepath,
        log,
        exporters=None,
        index_prefix=None,
        known_benign=False,
        known_malicious=False,
        apk=None,
    ):
        # Read binary data before calling super().__init__ so that the
        # binary property override is available during hash computation.
        with open(filepath, "rb") as f:
            self._binary_data = f.read()

        self.apk = apk if apk else self._generate_apk_object(filepath)

        super().__init__(
            filepath,
            log,
            exporters,
            index_prefix,
            known_benign=known_benign,
            known_malicious=known_malicious,
        )

    @property
    def binary(self):
        """Override to use already-read binary data."""
        return self._binary_data

    def _generate_apk_object(self, filepath):
        """Parse APK using androguard."""
        apk = None
        try:
            # Suppress verbose androguard loguru DEBUG/INFO output
            from loguru import logger as loguru_logger
            loguru_logger.disable("androguard")
            from androguard.core.apk import APK
            apk = APK(filepath)
            if not apk.is_valid_APK():
                logger.warning(
                    f"APK validation warning for {filepath}"
                )
                # Still return the object — partial parsing may still work
        except Exception as e:
            logger.error(
                f"Format error parsing APK {filepath}: {e}"
            )
        return apk

    def _is_valid_apk(self):
        """Check if the APK object was parsed successfully."""
        return self.apk is not None

    def _get_zip_file(self):
        """Get a zipfile.ZipFile handle for direct archive inspection."""
        try:
            return zipfile.ZipFile(self.filepath, 'r')
        except (zipfile.BadZipFile, Exception) as e:
            self.log.error(f"Failed to open APK as ZIP: {e}")
            return None

    def _list_files(self):
        """List all files in the APK archive."""
        if not self._is_valid_apk():
            return []
        try:
            return self.apk.get_files()
        except Exception as e:
            self.log.error(f"Error listing APK files: {e}")
            return []