Ignacio Larrabide

42 papers Journal 26Unranked 15
YearRankTypeTitle / Venue / Authors
2026 J jnl
Biomed. Signal Process. Control.
Lucas Gabriel Telesco, Danila Nejamkin, Estefanía Mata, Francisco Filizzola, Kevin Wignall, Lucía Franco Troilo, María de los Ángeles Cenoz, Melissa Thompson, Mercedes Leguía, Ignacio Larrabide, José Ignacio Orlando
2025 J jnl
Neuroinformatics
Delfina Braggio, Hernán C. Külsgaard, Mariana Vallejo-Azar, Mariana Bendersky, Paula González, Lucía Alba-Ferrara, José Ignacio Orlando, Ignacio Larrabide
2025 J jnl
CoRR
Lucas Gabriel Telesco, Danila Nejamkin, Estefanía Mata, Francisco Filizzola, Kevin Wignall, Lucía Franco Troilo, María de los Ángeles Cenoz, Melissa Thompson, Mercedes Leguía, Ignacio Larrabide, José Ignacio Orlando
2024 J jnl
Medical Biol. Eng. Comput.
Eugenia Moris, Ignacio Larrabide
2024 conf
MIDL
Eugenia Moris, Ignacio Larrabide, José Ignacio Orlando
2023 J jnl
CoRR
Eugenia Moris, Ignacio Larrabide
2023 conf
MICCAI (8)
Duilio Deangeli, Emmanuel Iarussi, Juan Pablo Princich, Mariana Bendersky, Ignacio Larrabide, José Ignacio Orlando
2023 J jnl
CoRR
Duilio Deangeli, Emmanuel Iarussi, Juan Pablo Princich, Mariana Bendersky, Ignacio Larrabide, José Ignacio Orlando
2022 J jnl
CoRR
Tomás Castilla, Marcela S. Martínez, Mercedes Leguía, Ignacio Larrabide, José Ignacio Orlando
2022 J jnl
CoRR
Camila García, Yibin Fang, Jianmin Liu, Ana Paula Narata, José Ignacio Orlando, Ignacio Larrabide
2022 J jnl
CoRR
Eugenia Moris, Nicolás Dazeo, Maria Paula Albina de Rueda, Francisco Filizzola, Nicolás Iannuzzo, Danila Nejamkin, Kevin Wignall, Mercedes Leguía, Ignacio Larrabide, José Ignacio Orlando
2022 J jnl
Comput. Biol. Medicine
Romina Muñoz, Ana Paula Narata, Laura Obradó, Hector Fernandez, Ignacio Larrabide
2021 J jnl
Int. J. Comput. Assist. Radiol. Surg.
Nicolás Dazeo, Romina Muñoz, Ana Paula Narata, Hector Fernandez, Ignacio Larrabide
2020 conf
MICCAI (6)
Romina Muñoz, Ana Paula Narata, Ignacio Larrabide
2020 J jnl
Int. J. Comput. Assist. Radiol. Surg.
Santiago Vitale, José Ignacio Orlando, Emmanuel Iarussi, Ignacio Larrabide
2020 J jnl
Comput. Methods Programs Biomed.
Delfina Braggio, Jimena Barbeito-Andrés, Paula González, Benedikt Hallgrímsson, Ignacio Larrabide
2019 conf
WorldCIST (1)
P. Rinaldi, Ignacio Larrabide, Juan P. D'Amato
2019 J jnl
Comput. Methods Programs Biomed.
Lucas Lo Vercio, Mariana del Fresno, Ignacio Larrabide
2017 conf
SIPAIM
Raquel Kale Moyano, Hector Fernandez, Juan M. Macho, Jordi Blasco, Luis San-Román, Ana Paula Narata, Ignacio Larrabide
2017 J jnl
IEEE Trans. Biomed. Eng.
Gonzalo D. Maso Talou, Pablo J. Blanco, Ignacio Larrabide, Cristiano Guedes Bezerra, Pedro A. Lemos, Raúl A. Feijóo
2016 J jnl
Int. J. Comput. Assist. Radiol. Surg.
Lucas Lo Vercio, José Ignacio Orlando, Mariana del Fresno, Ignacio Larrabide
2016 J jnl
Comput. Medical Imaging Graph.
Ignacio Larrabide, Arjan J. Geers, Hernán G. Morales, Philippe Bijlenga, Daniel A. Rüfenacht
2015 conf
MICCAI (2)
Gonzalo D. Maso Talou, Pablo J. Blanco, Ignacio Larrabide, Cristiano Guedes Bezerra, Pedro A. Lemos, Raúl A. Feijóo
2015 J jnl
Int. J. Comput. Assist. Radiol. Surg.
Hector Fernandez, Juan M. Macho, Jordi Blasco, Luis San-Román, Werner Mailaender, Luis Serra, Ignacio Larrabide
2015 J jnl
IEEE Trans. Biomed. Eng.
Gonzalo D. Maso Talou, Ignacio Larrabide, Pablo J. Blanco, Cristiano Guedes Bezerra, Pedro A. Lemos, Raúl A. Feijóo
2013 J jnl
IEEE Trans. Medical Imaging
Hernán G. Morales, Ignacio Larrabide, Arjan J. Geers, Luis San-Román, Jordi Blasco, Juan M. Macho, Alejandro F. Frangi
2013 J jnl
Medical Biol. Eng. Comput.
Rubén Cárdenes, Ignacio Larrabide, Luis San-Román, Alejandro F. Frangi
2013 J jnl
Comput. Methods Programs Biomed.
Frederic Pérez, Jordi Huguet, R. Aguilar, Laura Lara Rodríguez, Ignacio Larrabide, Maria-Cruz Villa-Uriol, J. López, Juan M. Macho, A. Rigo, J. Rosselló, Sergio Vera, Elio Vivas, J. Fernàndez, Antonio Arbona, Alejandro F. Frangi, Javier Herrero Jover, Miguel Ángel González Ballester
2012 J jnl
Comput. Methods Programs Biomed.
Ignacio Larrabide, Maria-Cruz Villa-Uriol, Rubén Cárdenes, Valeria Barbarito, Luigi Carotenuto, Arjan J. Geers, Hernán G. Morales, José María Pozo, Marco D. Mazzeo, Hrvoje Bogunovic, Pedro Omedas, Chiara Riccobene, Juan M. Macho, Alejandro F. Frangi
2012 conf
ISBI
Hernán G. Morales, Ignacio Larrabide, Martha L. Aguilar, Arjan J. Geers, Juan M. Macho, Luis San-Román, Alejandro F. Frangi
2012 conf
ISBI
Martha L. Aguilar, Hernán G. Morales, Ignacio Larrabide, Juan M. Macho, Luis San-Román, Alejandro F. Frangi
2012 J jnl
Medical Image Anal.
Ignacio Larrabide, Minsuok Kim, Luca Augsburger, Maria-Cruz Villa-Uriol, Daniel A. Rüfenacht, Alejandro F. Frangi
2012 J jnl
Comput. Biol. Medicine
Ignacio Larrabide, Pablo J. Blanco, Santiago Adrian Urquiza, E. A. Dari, Marcelo J. Vénere, N. A. de Souza e Silva, Raúl A. Feijóo
2011 conf
MICCAI (3)
Rubén Cárdenes, José-Luis Díez, Ignacio Larrabide, Hrvoje Bogunovic, Alejandro F. Frangi
2011 J jnl
IEEE Trans. Medical Imaging
Rubén Cárdenes, José María Pozo, Hrvoje Bogunovic, Ignacio Larrabide, Alejandro F. Frangi
2011 conf
ISBI
Qi Sun, Alexandra Groth, Ignacio Larrabide, Salvatore Cito, Martha L. Aguilar, Alejandro F. Frangi, Vitor Mendes Pereira, Rafik Ouared, Olivier Brina, Til Aach
2011 conf
MICCAI (1)
Hernán G. Morales, Ignacio Larrabide, Minsuok Kim, Maria-Cruz Villa-Uriol, Juan M. Macho, Jordi Blasco, Luis San-Román, Alejandro F. Frangi
2009 conf
FIMH
Ignacio Larrabide, Pedro Omedas, Yves Martelli, Xavier Planes, Maarten Nieber, Juan A. Moya, Constantine Butakoff, Rafael Sebastián, Oscar Camara, Mathieu De Craene, Bart H. Bijnens, Alejandro F. Frangi
2009 conf
ISBI
Minsuok Kim, Ignacio Larrabide, Maria-Cruz Villa-Uriol, Alejandro F. Frangi
2009 conf
ISBI
Arjan J. Geers, Ignacio Larrabide, Alessandro Radaelli, Hrvoje Bogunovic, Hugo A. F. Gratama van Andel, Charles B. L. M. Majoie, Alejandro F. Frangi
2008 conf
MICCAI (2)
Ignacio Larrabide, Alessandro Radaelli, Alejandro F. Frangi
2007
Ignacio Larrabide
redb/extractors/macho_extractors/macho_exports.py
← Index redb/extractors/macho_extractors/macho_exports.py python
import inspect
from datetime import datetime, timezone
from typing import Any

from redb.extractors.enum import Tag
from redb.extractors.macho_extractor import MachOExtractor
from redb.models.dataclasses import MachOExport


class MachOExportExtractor(MachOExtractor):

    def __init__(
        self,
        filepath,
        log,
        exporters=None,
        index_prefix=None,
        elastic_index=None,
        known_benign=False,
        known_malicious=False,
        macho=None,
    ):
        super().__init__(
            filepath,
            log,
            exporters,
            index_prefix,
            elastic_index,
            known_benign,
            known_malicious,
            macho,
        )
        self.elastic_index = self.index_prefix + "-macho_exports"
        self.log.debug(inspect.currentframe().f_code.co_name)

    def tag(self):
        return Tag.MACHO_EXPORT.value

    def _extract_exports(self, arch_name=None):
        """Extract export information from the MachO binary for a specific architecture."""
        self.log.debug(inspect.currentframe().f_code.co_name)

        if not self.macho:
            return None

        try:
            # Get exported symbols using new API for specific architecture
            exported_symbols = self.macho.get_exported_symbols(arch=arch_name)

            # Extract all exported symbols (may be empty for some binaries)
            # Handle None or empty dict
            if not exported_symbols:
                exported_symbols = {}
            all_symbols = []
            for dylib_name, symbols in exported_symbols.items():
                # Process symbol names
                for symbol in symbols:
                    if isinstance(symbol, bytes):
                        symbol = symbol.decode('utf-8', errors='replace')
                    all_symbols.append(symbol)

            # Create export dataclass
            macho_export = MachOExport(
                macho_exports_total=len(all_symbols),
                macho_export_symbols=all_symbols  # Empty list is fine, but None is not allowed for Array type
            )

            return macho_export

        except Exception as e:
            self.log.error(f"Error extracting MachO exports for arch {arch_name}: {e}")
            return None

    def extract(self):
        self.log.debug(inspect.currentframe().f_code.co_name)
        try:
            # Get architectures (macho is already parsed in base class)
            architectures = self.macho.get_architectures()
            if len(architectures) > 1:
                # FAT binary - return list of exports for each architecture
                results = []
                for arch_name in architectures:
                    exports = self._extract_exports(arch_name)
                    if exports:
                        exports.arch_identifier = arch_name
                        results.append(exports)
                return results
            else:
                # Single architecture - return single result
                return self._extract_exports(architectures[0] if architectures else None)
        except Exception as e:
            self.log.error(f"Error extracting MachO exports: {e}")
            return None

    def prepare_export_data(self, exporter_type: str) -> Any:
        if exporter_type == "ElasticsearchExporter":
            return self.extract()
        elif exporter_type == "ClickHouseExporter":
            if not self.macho:
                return None

            # Get architectures (macho is already parsed in base class)
            try:
                architectures = self.macho.get_architectures()
                is_fat = len(architectures) > 1
            except Exception as e:
                self.log.error(f"Could not get architectures: {e}")
                return None

            data = []
            current_time = datetime.now(timezone.utc)

            # Loop through each architecture (1 for single, multiple for FAT)
            for arch_name in architectures:
                # Get architecture-specific sha256
                try:
                    arch_general_info = self.macho.get_general_info(arch=arch_name)
                    arch_header_raw = self.macho.get_macho_header(arch=arch_name)
                    arch_sha256 = arch_general_info.get('SHA256', self.sha256)
                    arch_cputype_raw = arch_header_raw.get('cputype', 0) if arch_header_raw else 0
                except Exception as e:
                    self.log.warning(f"Could not get arch-specific data for {arch_name}: {e}")
                    arch_sha256 = self.sha256
                    arch_cputype_raw = 0

                # Get exports for this architecture
                macho_export = self._extract_exports(arch_name)
                if not macho_export:
                    continue

                data.append([
                    arch_sha256,                          # sha256 (arch-specific)
                    macho_export.macho_exports_total,     # macho_exports_total
                    macho_export.macho_export_symbols,    # macho_export_symbols (keep as array!)
                    current_time,                         # analysis_date
                ])

            column_names = [
                'sha256',
                'macho_exports_total', 'macho_export_symbols',
                'analysis_date'
            ]

            if not data:
                return None

            column_type_names = [
                'FixedString(64)',
                'UInt32', 'Array(Nullable(String))',
                'DateTime64(3, \'UTC\')'
            ]

            return (data, column_names, column_type_names)

        return None

    def get_clickhouse_table(self) -> str:
        return "redb_macho_exports"