Carlo Biffi

37 papers Journal 24Unranked 13
YearRankTypeTitle / Venue / Authors
2025 J jnl
CoRR
Carlo Biffi, Giorgio Roffo, Pietro Salvagnini, Andrea Cherubini
2025 J jnl
Comput. Methods Programs Biomed.
Carlo Biffi, Giorgio Roffo, Pietro Salvagnini, Andrea Cherubini
2025 conf
MICCAI (10)
Luca Parolari, Andrea Cherubini, Lamberto Ballan, Carlo Biffi
2025 J jnl
CoRR
Luca Parolari, Andrea Cherubini, Lamberto Ballan, Carlo Biffi
2025 J jnl
CoRR
Luca Parolari, Andrea Cherubini, Lamberto Ballan, Carlo Biffi
2025 conf
ISBI
Luca Parolari, Andrea Cherubini, Lamberto Ballan, Carlo Biffi
2024 conf
MICCAI (10)
Giorgio Roffo, Carlo Biffi, Pietro Salvagnini, Andrea Cherubini
2024 J jnl
CoRR
Giorgio Roffo, Carlo Biffi, Pietro Salvagnini, Andrea Cherubini
2024 J jnl
CoRR
Carlo Biffi, Giulio Antonelli, Sebastian Bernhofer, Cesare Hassan, Daizen Hirata, Mineo Iwatate, Andreas Maieron, Pietro Salvagnini, Andrea Cherubini
2022 J jnl
npj Digit. Medicine
Carlo Biffi, Pietro Salvagnini, Nhan Ngo Dinh, Cesare Hassan, Prateek Sharma, Giulio Antonelli, Halim Awadie, Sebastian Bernhofer, Sabela Carballal, Mário Dinis-Ribeiro, Agnès Fernández-Clotet, Gloria Fernández-Esparrach, Ian Gralnek, Yuta Higasa, Taku Hirabayashi, Tatsuki Hirai, Mineo Iwatate, Miki Kawano, Markus Mader, Andreas Maieron, Sebastian Mattes, Tastuya Nakai, Ingrid Ordas, Raquel Ortigão, Oswaldo Ortiz Zúñiga, Maria Pellisé, Cláudia Pinto, Florian Riedl, Ariadna Sánchez, Emanuel Steiner, Yukari Tanaka, Andrea Cherubini
2022 J jnl
npj Digit. Medicine
Carlo Biffi, Pietro Salvagnini, Nhan Ngo Dinh, Cesare Hassan, Prateek Sharma, Giulio Antonelli, Halim Awadie, Sebastian Bernhofer, Sabela Carballal, Mário Dinis-Ribeiro, Agnès Fernández-Clotet, Gloria Fernández-Esparrach, Ian Gralnek, Yuta Higasa, Taku Hirabayashi, Tatsuki Hirai, Mineo Iwatate, Miki Kawano, Markus Mader, Andreas Maieron, Sebastian Mattes, Tastuya Nakai, Ingrid Ordas, Raquel Ortigão, Oswaldo Ortiz Zúñiga, Maria Pellisé, Cláudia Pinto, Florian Riedl, Ariadna Sánchez, Emanuel Steiner, Yukari Tanaka, Andrea Cherubini
2022 J jnl
IEEE Trans. Medical Imaging
Cheng Ouyang, Carlo Biffi, Chen Chen, Turkay Kart, Huaqi Qiu, Daniel Rueckert
2020 J jnl
IEEE Trans. Medical Imaging
Carlo Biffi, Juan J. Cerrolaza, Giacomo Tarroni, Wenjia Bai, Antonio de Marvao, Ozan Oktay, Christian Ledig, Loïc Le Folgoc, Konstantinos Kamnitsas, Georgia Doumou, Jinming Duan, Sanjay K. Prasad, Stuart A. Cook, Declan P. O'Regan, Daniel Rueckert
2020 conf
ECCV (8)
Carlo Biffi, Steven McDonagh, Philip H. S. Torr, Ales Leonardis, Sarah Parisot
2020 J jnl
CoRR
Carlo Biffi, Steven McDonagh, Philip H. S. Torr, Ales Leonardis, Sarah Parisot
2020 J jnl
CoRR
Cheng Ouyang, Carlo Biffi, Chen Chen, Turkay Kart, Huaqi Qiu, Daniel Rueckert
2020 conf
ECCV (29)
Cheng Ouyang, Carlo Biffi, Chen Chen, Turkay Kart, Huaqi Qiu, Daniel Rueckert
2019 conf
ISBI
Carlo Biffi, Juan J. Cerrolaza, Giacomo Tarroni, Antonio de Marvao, Stuart A. Cook, Declan P. O'Regan, Daniel Rueckert
2019 J jnl
CoRR
Carlo Biffi, Juan J. Cerrolaza, Giacomo Tarroni, Antonio de Marvao, Stuart A. Cook, Declan P. O'Regan, Daniel Rueckert
2019 J jnl
IEEE Trans. Medical Imaging
Jinming Duan, Ghalib Bello, Jo Schlemper, Wenjia Bai, Timothy J. W. Dawes, Carlo Biffi, Antonio de Marvao, Georgia Doumou, Declan P. O'Regan, Daniel Rueckert
2019 conf
MICCAI (2)
Cheng Ouyang, Konstantinos Kamnitsas, Carlo Biffi, Jinming Duan, Daniel Rueckert
2019 J jnl
CoRR
Cheng Ouyang, Konstantinos Kamnitsas, Carlo Biffi, Jinming Duan, Daniel Rueckert
2019 J jnl
Nat. Mach. Intell.
Ghalib A. Bello, Timothy J. W. Dawes, Jinming Duan, Carlo Biffi, Antonio de Marvao, Luke S. G. E. Howard, J. Simon R. Gibbs, Martin R. Wilkins, Stuart A. Cook, Daniel Rueckert, Declan P. O'Regan
2019 J jnl
CoRR
Carlo Biffi, Juan J. Cerrolaza, Giacomo Tarroni, Wenjia Bai, Ozan Oktay, Loïc Le Folgoc, Konstantinos Kamnitsas, Antonio de Marvao, Georgia Doumou, Jinming Duan, Sanjay K. Prasad, Stuart A. Cook, Declan P. O'Regan, Daniel Rueckert
2019 J jnl
CoRR
Cheng Ouyang, Jo Schlemper, Carlo Biffi, Gavin Seegoolam, Jose Caballero, Anthony N. Price, Joseph V. Hajnal, Daniel Rueckert
2019 conf
MICCAI (2)
Chen Chen, Carlo Biffi, Giacomo Tarroni, Steffen E. Petersen, Wenjia Bai, Daniel Rueckert
2019 J jnl
CoRR
Chen Chen, Carlo Biffi, Giacomo Tarroni, Steffen E. Petersen, Wenjia Bai, Daniel Rueckert
2019 conf
MICCAI (4)
Jinming Duan, Jo Schlemper, Chen Qin, Cheng Ouyang, Wenjia Bai, Carlo Biffi, Ghalib Bello, Ben Statton, Declan P. O'Regan, Daniel Rueckert
2019 J jnl
CoRR
Jinming Duan, Jo Schlemper, Chen Qin, Cheng Ouyang, Wenjia Bai, Carlo Biffi, Ghalib Bello, Ben Statton, Declan P. O'Regan, Daniel Rueckert
2018 conf
MICCAI (1)
Juan J. Cerrolaza, Yuanwei Li, Carlo Biffi, Alberto Gómez, Matthew Sinclair, Jacqueline Matthew, Caronline Knight, Bernhard Kainz, Daniel Rueckert
2018 J jnl
CoRR
Jinming Duan, Ghalib Bello, Jo Schlemper, Wenjia Bai, Timothy J. W. Dawes, Carlo Biffi, Antonio de Marvao, Georgia Doumou, Declan P. O'Regan, Daniel Rueckert
2018 conf
ShapeMI@MICCAI
Jinming Duan, Jo Schlemper, Wenjia Bai, Timothy J. W. Dawes, Ghalib Bello, Carlo Biffi, Georgia Doumou, Antonio M. Simoes Monteiro de Marvao, Declan P. O'Regan, Daniel Rueckert
2018 J jnl
CoRR
Ghalib A. Bello, Timothy J. W. Dawes, Jinming Duan, Carlo Biffi, Antonio de Marvao, Luke S. G. E. Howard, J. Simon R. Gibbs, Martin R. Wilkins, Stuart A. Cook, Daniel Rueckert, Declan P. O'Regan
2018 conf
EMBC
Juan J. Cerrolaza, Yuanwei Li, Carlo Biffi, Alberto Gómez, Jacqueline Matthew, Matthew Sinclair, Chandni Gupta, Caroline L. Knight, Daniel Rueckert
2018 conf
MICCAI (2)
Carlo Biffi, Ozan Oktay, Giacomo Tarroni, Wenjia Bai, Antonio M. Simoes Monteiro de Marvao, Georgia Doumou, Martin Rajchl, Reem Bedair, Sanjay K. Prasad, Stuart A. Cook, Declan P. O'Regan, Daniel Rueckert
2018 J jnl
CoRR
Carlo Biffi, Ozan Oktay, Giacomo Tarroni, Wenjia Bai, Antonio M. Simoes Monteiro de Marvao, Georgia Doumou, Martin Rajchl, Reem Bedair, Sanjay K. Prasad, Stuart A. Cook, Declan P. O'Regan, Daniel Rueckert
2018 J jnl
Bioinform.
Carlo Biffi, Antonio de Marvao, Mark I Attard, Timothy J. W. Dawes, Nicola Whiffin, Wenjia Bai, Wenzhe Shi, Catherine Francis, Hannah Meyer, Rachel J. Buchan, Stuart A. Cook, Daniel Rueckert, Declan P. O'Regan
redb/extractors/pe_extractors/pe_imports.py
← Index redb/extractors/pe_extractors/pe_imports.py python
import inspect
from typing import Any, List, Tuple
from datetime import datetime, timezone

from redb.extractors.enum import Tag
from redb.extractors.pe_extractor import PEExtractor
from redb.models.dataclasses import PEImport


class PEImportExtractor(PEExtractor):

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

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

    def _extract_imports(self):
        self.log.debug(inspect.currentframe().f_code.co_name)

        imports_symbols = []
        imports_lib = []
        imports_total = 0
        # pe_import = None
        try:
            directory_entry_import = getattr(self.pe, "DIRECTORY_ENTRY_IMPORT", [])
            imports_total = len(directory_entry_import)
            for entry in directory_entry_import:
                symbols = []
                tmp_import = {}
                libname = entry.dll.decode() if entry.dll else ""
                imports_lib.append(libname)
                # replace . with _ to avoid issues with elastic
                # entryname = entryname.replace(".", "_")
                for symbol in entry.imports:
                    if symbol.name:
                        symbols.append(symbol.name.decode())
                # imports_symbols[entryname] = symbols
                tmp_import[libname] = symbols
                imports_symbols.append(tmp_import)
            return PEImport(
                pe_imports_total=imports_total,
                pe_import_libraryName=imports_lib if imports_lib else None,
                pe_import_functions=imports_symbols if imports_symbols else None,
            )
        except Exception as e:
            self.log.error(f"Extract imports error {self.hash.sha256} Exception: {e}")
        return pe_import

    def extract(self):
        try:
            self.log.debug(inspect.currentframe().f_code.co_name)
            return self._extract_imports()
        except Exception as e:
            self.log.error(f"Extract imports error {self.hash.sha256} Exception: {e}")
            return None

    def prepare_export_data(self, exporter_type: str) -> Any:
        if exporter_type == "ElasticsearchExporter":
            return self.extract()
        elif exporter_type == "ClickHouseExporter":
            imports = self.extract()
            if (
                imports is None
                or imports.pe_imports_total == 0
                or (
                    imports.pe_import_libraryName is None
                    and imports.pe_import_functions is None
                )
            ):
                return None

            # Flatten the data - one row per function import
            data = []
            current_time = datetime.now(timezone.utc)

            for lib_funcs in imports.pe_import_functions:
                for lib, funcs in lib_funcs.items():
                    for func in funcs:
                        data.append(
                            [
                                self.sha256,  # sha256
                                self.md5,  # md5
                                self.sha1,  # sha1
                                lib,  # library_name
                                func,  # function_name
                                current_time,  # analysis_date
                            ]
                        )

            column_names = [
                "sha256",
                "md5",
                "sha1",
                "library_name",
                "function_name",
                "analysis_date",
            ]

            column_type_names = [
                "FixedString(64)",
                "FixedString(32)",
                "FixedString(40)",
                "LowCardinality(Nullable(String))",
                "LowCardinality(Nullable(String))",
                "DateTime64(3, 'UTC')",
            ]

            if not data:
                return None

            return (data, column_names, column_type_names)

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