Caspar Gruijthuijsen

25 papers A 4B 1Journal 16Unranked 4
YearRankTypeTitle / Venue / Authors
2024 conf
CCTA
Wouter M. Kouw, Caspar Gruijthuijsen, Lennart Blanken, Enzo Evers, Timothy J. Rogers
2024 J jnl
CoRR
Wouter M. Kouw, Caspar Gruijthuijsen, Lennart Blanken, Enzo Evers, Timothy J. Rogers
2022 J jnl
Frontiers Robotics AI
Caspar Gruijthuijsen, Luis C. García-Peraza-Herrera, Gianni Borghesan, Dominiek Reynaerts, Jan Deprest, Sébastien Ourselin, Tom Vercauteren, Emmanuel B. Vander Poorten
2021 J jnl
CoRR
Caspar Gruijthuijsen, Luis C. García-Peraza-Herrera, Gianni Borghesan, Dominiek Reynaerts, Jan Deprest, Sébastien Ourselin, Tom Vercauteren, Emmanuel B. Vander Poorten
2020 J jnl
Int. J. Comput. Assist. Radiol. Surg.
Sophia Bano, Francisco Vasconcelos, Marcel Tella-Amo, George Dwyer, Caspar Gruijthuijsen, Emmanuel B. Vander Poorten, Tom Vercauteren, Sébastien Ourselin, Jan Deprest, Danail Stoyanov
2020 J jnl
Int. J. Comput. Assist. Radiol. Surg.
Mirza Awais Ahmad, Mouloud Ourak, Caspar Gruijthuijsen, Jan Deprest, Tom Vercauteren, Emmanuel B. Vander Poorten
2020 J jnl
CoRR
Luis C. García-Peraza-Herrera, Wenqi Li, Caspar Gruijthuijsen, Alain Devreker, George Attilakos, Jan Deprest, Emmanuel B. Vander Poorten, Danail Stoyanov, Tom Vercauteren, Sébastien Ourselin
2019 J jnl
IEEE Robotics Autom. Lett.
Caspar Gruijthuijsen, Gianni Borghesan, Dominiek Reynaerts, Emmanuel B. Vander Poorten
2019 conf
MICCAI (1)
Sophia Bano, Francisco Vasconcelos, Marcel Tella-Amo, George Dwyer, Caspar Gruijthuijsen, Jan Deprest, Sébastien Ourselin, Emmanuel B. Vander Poorten, Tom Vercauteren, Danail Stoyanov
2019 J jnl
CoRR
Sophia Bano, Francisco Vasconcelos, Marcel Tella-Amo, George Dwyer, Caspar Gruijthuijsen, Jan Deprest, Sébastien Ourselin, Emmanuel B. Vander Poorten, Tom Vercauteren, Danail Stoyanov
2019 conf
ICAR
Mirza Awais Ahmad, Mouloud Ourak, Caspar Gruijthuijsen, Julie Legrand, Tom Vercauteren, Jan Deprest, Sébastien Ourselin, Emmanuel B. Vander Poorten
2019 A conf
IROS
T. Vandebroek, Mouloud Ourak, Caspar Gruijthuijsen, Allan Javaux, Julie Legrand, Tom Vercauteren, Sébastien Ourselin, Jan Deprest, Emmanuel B. Vander Poorten
2018 J jnl
Int. J. Comput. Assist. Radiol. Surg.
Allan Javaux, David Bouget, Caspar Gruijthuijsen, Danail Stoyanov, Tom Vercauteren, Sébastien Ourselin, Jan Deprest, Kathleen Denis, Emmanuel B. Vander Poorten
2018 J jnl
IEEE Robotics Autom. Lett.
Julie Legrand, Mouloud Ourak, Allan Javaux, Caspar Gruijthuijsen, Mirza Awais Ahmad, Ben Van Cleynenbreugel, Tom Vercauteren, Jan Deprest, Sébastien Ourselin, Emmanuel B. Vander Poorten
2018 J jnl
J. Medical Robotics Res.
Caspar Gruijthuijsen, Richard J. Colchester, Alain Devreker, Allan Javaux, Efthymios Maneas, Sacha Noimark, Wenfeng Xia, Danail Stoyanov, Dominiek Reynaerts, Jan Deprest, Sébastien Ourselin, Adrien E. Desjardins, Tom Vercauteren, Emmanuel B. Vander Poorten
2018 J jnl
IEEE Robotics Autom. Lett.
Caspar Gruijthuijsen, Lin Dong, Guillaume Morel, Emmanuel B. Vander Poorten
2017 A conf
IROS
Allan Javaux, Laure Esteveny, David Bouget, Caspar Gruijthuijsen, Danail Stoyanov, Tom Vercauteren, Sébastien Ourselin, Dominiek Reynaerts, Kathleen Denis, Jan Deprest, Emmanuel B. Vander Poorten
2017 J jnl
CoRR
Luis C. García-Peraza-Herrera, Wenqi Li, Lucas Fidon, Caspar Gruijthuijsen, Alain Devreker, George Attilakos, Jan Deprest, Emmanuel B. Vander Poorten, Danail Stoyanov, Tom Vercauteren, Sébastien Ourselin
2017 A conf
IROS
Luis C. García-Peraza-Herrera, Wenqi Li, Lucas Fidon, Caspar Gruijthuijsen, Alain Devreker, George Attilakos, Jan Deprest, Emmanuel B. Vander Poorten, Danail Stoyanov, Tom Vercauteren, Sébastien Ourselin
2016 J jnl
J. Medical Robotics Res.
Caspar Gruijthuijsen, Benoît Rosa, Phuong Toan Tran, Jos Vander Sloten, Emmanuel B. Vander Poorten, Dominiek Reynaerts
2016 J jnl
J. Medical Robotics Res.
Emmanuel B. Vander Poorten, Phuong Toan Tran, Alain Devreker, Caspar Gruijthuijsen, Sergio Portolés Diez, Gabrijel Smoljkic, Vule Strbac, Nele Famaey, Dominiek Reynaerts, Jos Vander Sloten, Abraham Temesgen Tibebu, Bingbin Yu, Christian Rauch, Felix Bernard, Yohannes Kassahun, Jan Hendrik Metzen, Stamatia Giannarou, Liang Zhao, Su-Lin Lee, Guang-Zhong Yang, Evangelos B. Mazomenos, Ping-Lin Chang, Danail Stoyanov, Maryna Kvasnytsia, Joris Van Deun, Eva Verhoelst, Mauro M. Sette, Anita Di Iasio, Giovanni Leo, Fabian Hertner, Daniel Scherly, Leandro Chelini, Nicolai Häni, Dejan Seatovic, Benoît Rosa, Herbert De Praetere, Paul Herijgers
2016 B conf
SMC
Phuong Toan Tran, Gabrijel Smoljkic, Caspar Gruijthuijsen, Dominiek Reynaerts, Jos Vander Sloten, Emmanuel B. Vander Poorten
2016 conf
CARE@MICCAI
Luis C. García-Peraza-Herrera, Wenqi Li, Caspar Gruijthuijsen, Alain Devreker, George Attilakos, Jan Deprest, Emmanuel B. Vander Poorten, Danail Stoyanov, Tom Vercauteren, Sébastien Ourselin
2015 J jnl
Int. J. Comput. Assist. Radiol. Surg.
Benoit Rosa, Caspar Gruijthuijsen, Ben Van Cleynenbreugel, Jos Vander Sloten, Dominiek Reynaerts, Emmanuel B. Vander Poorten
2015 A conf
IROS
Benoit Rosa, Alain Devreker, Herbert De Praetere, Caspar Gruijthuijsen, Sergio Portolés Diez, A. Gijbels, Dominiek Reynaerts, Paul Herijgers, Jos Vander Sloten, Emmanuel B. Vander Poorten
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 []