Ignacio Avellino

36 papers A* 12B 1Misc 1Journal 8Unranked 12
YearRankTypeTitle / Venue / Authors
2026 A* conf
CHI
Nour Karoui, Isabelle Bloch, Ignacio Avellino
2026 A* conf
CHI
Anastasiya Zakreuskaya, Ignacio Avellino, Wendy E. Mackay
2026 conf
CHI Extended Abstracts
Ignacio Avellino, James R. Wallace, Francisco Nunes, Jason Wiese, Helena M. Mentis, Sean A. Munson, Aneesha Singh, Chia-Fang Chung, Pin Sym Foong
2026 A* conf
CHI
Hamid Moradi, Ignacio Avellino, Patrick Krauss, Dario Zanca, Ilka Hein, Bjoern M. Eskofier, Madeleine Flaucher
2025 conf
CHI Extended Abstracts
Ignacio Avellino, Pei-Yi (Patricia) Kuo, Pin Sym Foong, Jason Wiese, Helena M. Mentis, Sean A. Munson, James R. Wallace, Aneesha Singh, Andrew D. Miller, Daniel A. Epstein, Francisco Nunes
2025 conf
IHM
Yue Shin Koh, Gilles Bailly, Ignacio Avellino
2025 J jnl
Proc. ACM Hum. Comput. Interact.
Jwawon Seo, Ignacio Avellino, Helena M. Mentis
2025 J jnl
Proc. ACM Hum. Comput. Interact.
Helena M. Mentis, Jwawon Seo, Ignacio Avellino
2025 conf
IHM
Gilles Bailly, Ignacio Avellino, Emeline Brulé, Sylvain Malacria
2024 conf
IHM
Eya Jaafar, Philippe Gauthier, Geoffroy Canlorbe, Ignacio Avellino
2024 Misc conf
MuC
Anastasiya Zakreuskaya, Daniel Buschek, Wendy E. Mackay, Ignacio Avellino, Graham Dove, Bjoern M. Eskofier
2024 A* conf
CHI
Solène Lambert, Sandrine Voros, Geoffroy Canlorbe, Jocelyne Troccaz, Ignacio Avellino
2024 J jnl
Proc. ACM Hum. Comput. Interact.
Solène Lambert, Sandrine Voros, Jocelyne Troccaz, Geoffroy Canlorbe, Ignacio Avellino
2024 conf
CHI Extended Abstracts
Alexandre Haddad, Gilles Bailly, Olivier Choussy, Rabah Taouachi, Ignacio Avellino
2023 conf
IHM
Eleonore Ferrier-Barbut, Ignacio Avellino, Marie-Aude Vitrani, Geoffroy Canlorbe
2023 J jnl
Proc. ACM Hum. Comput. Interact.
Jwawon Seo, Ignacio Avellino, Damaruka Priya Rajasagi, Anita Komlodi, Helena M. Mentis
2023 J jnl
Proc. ACM Hum. Comput. Interact.
Eleonore Ferrier-Barbut, Ignacio Avellino, Geoffroy Canlorbe, Marie-Aude Vitrani, Vanda Luengo
2023 A* conf
CHI
Sophie Maria, Helena M. Mentis, Geoffroy Canlorbe, Ignacio Avellino
2022 conf
VR Workshops
Helena M. Mentis, Ignacio Avellino, Jwawon Seo
2022 J jnl
Proc. ACM Hum. Comput. Interact.
Clara Rigaud, Gilles Bailly, Ignacio Avellino, Yvonne Jansen
2022 conf
VR Workshops
Sophie Maria, Solène Lambert, Ignacio Avellino
2021 A* conf
CHI
Adegboyega Akinsiku, Ignacio Avellino, Yasmin Graham, Helena M. Mentis
2021 J jnl
CoRR
Adegboyega Akinsiku, Ignacio Avellino, Yasmin Graham, Helena M. Mentis
2021 J jnl
Proc. ACM Hum. Comput. Interact.
Ignacio Avellino, Sheida Nozari, Geoffroy Canlorbe, Yvonne Jansen
2020 A* ed.
CHI
Regina Bernhaupt, Florian 'Floyd' Mueller, David Verweij, Josh Andres, Joanna McGrenere, Andy Cockburn, Ignacio Avellino, Alix Goguey, Pernille Bjøn, Shengdong Zhao, Briane Paul Samson, Rafal Kocielnik
2020 ed.
CHI Extended Abstracts
Regina Bernhaupt, Florian 'Floyd' Mueller, David Verweij, Josh Andres, Joanna McGrenere, Andy Cockburn, Ignacio Avellino, Alix Goguey, Pernille Bjøn, Shengdong Zhao, Briane Paul Samson, Rafal Kocielnik
2020 conf
CHI Extended Abstracts
Ignacio Avellino
2020 A* conf
CHI
Ignacio Avellino, Gilles Bailly, Mario Aricò, Guillaume Morel, Geoffroy Canlorbe
2020 conf
CHI Extended Abstracts
Poorna Talkad Sukumar, Ignacio Avellino, Christian Remy, Michael A. DeVito, Tawanna R. Dillahunt, Joanna McGrenere, Max L. Wilson
2019 conf
INTERACT (2)
Khanh-Duy Le, Ignacio Avellino, Cédric Fleury, Morten Fjeld, Andreas M. Kunz
2019 A* conf
CHI
Ignacio Avellino, Gilles Bailly, Geoffroy Canlorbe, Jérémie Belgihti, Guillaume Morel, Marie-Aude Vitrani
2019 A* conf
ICRA
François Schmitt, Josue Sulub, Ignacio Avellino, Jimmy Da Silva, Laurent Barbé, Olivier Piccin, Bernard Bayle, Guillaume Morel
2017 A* conf
CHI
Ignacio Avellino, Cédric Fleury, Wendy E. Mackay, Michel Beaudouin-Lafon
2017
Ignacio Avellino
2015 A* conf
CHI
Ignacio Avellino, Cédric Fleury, Michel Beaudouin-Lafon
2013 B conf
ITS
Christian Corsten, Ignacio Avellino, Max Möllers, Jan O. Borchers
redb/extractors/pe_extractors/pe_sections.py
← Index redb/extractors/pe_extractors/pe_sections.py python
import base64
import hashlib
import inspect
from redb.extractors.enum import Tag
from redb.extractors.pe_extractor import PEExtractor
from redb.models.dataclasses import PESection
from datetime import datetime, timezone
from typing import Any


class PESectionExtractor(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_sections"
        self.log.debug(inspect.currentframe().f_code.co_name)

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

    def _extract_sections(self):
        self.log.debug(inspect.currentframe().f_code.co_name)
        sections = []
        for section in self.pe.sections:
            try:
                name = self.process_binary_string(section.Name)
            except Exception as e:
                name = "UnableToDecode"
                self.log.warning(
                    f'Unable to store section Name "{section.Name}" for {self.hash.sha256}'
                    f" exception {e}"
                )
            sec_sha256 = section.get_hash_sha256()
            sec_md5 = section.get_hash_md5()
            # sec_entropy = "%.2f" % section.get_entropy()
            sec_entropy = section.get_entropy()
            pe_section = PESection(
                _id=hashlib.sha256(
                    name.encode()
                ).hexdigest(),  # usecase 8e035beb02a411f8a9e92d4cf184ad34f52bbd0a81a50c222cdd4706e4e45104, all section have same sha256
                section_name=name,
                section_name_b64=base64.b64encode(
                    section.Name.rstrip(b'\x00')
                ).decode(),  # base64.b64decode(b64) to decode
                section_v_addr=section.VirtualAddress,
                section_v_addr_hex=hex(section.VirtualAddress),
                section_v_size=section.Misc_VirtualSize,
                section_size=section.SizeOfRawData,
                section_pointer_to_raw_data=hex(section.PointerToRawData),
                section_md5=sec_md5,
                section_sha256=sec_sha256,
                section_entropy=sec_entropy,
            )
            sections.append(pe_section)
        return sections

    def extract(self):
        self.log.debug(inspect.currentframe().f_code.co_name)
        try:
            sections = self._extract_sections()
            # self.export_to_elastic(sections)  # Let the exporters handle this
            return sections
        except Exception as e:
            self.log.error(f"Error extracting PE sections: {e}")
            return None

    def prepare_export_data(self, exporter_type: str) -> Any:
        if exporter_type == "ElasticsearchExporter":
            return self.extract()
        elif exporter_type == "ClickHouseExporter":
            sections = self.extract()
            if sections is None:
                return None
            
            data = []
            current_time = datetime.now(timezone.utc)
            
            for section in sections:
                data.append([
                    self.sha256,                          # sha256
                    self.md5,                             # md5
                    self.sha1,                            # sha1
                    section.section_name,                 # section_name
                    section.section_name_b64,             # section_name_b64
                    section.section_entropy,              # section_entropy
                    section.section_sha256,               # section_sha256
                    section.section_md5,                  # section_md5
                    section.section_size,                 # section_size
                    section.section_v_addr,               # section_v_addr
                    section.section_v_size,               # section_v_size
                    int(section.section_pointer_to_raw_data, 16),  # section_pointer_to_raw_data - convert from hex
                    current_time                          # analysis_date
                ])
            
            column_names = [
                'sha256', 'md5', 'sha1', 'section_name', 'section_name_b64',
                'section_entropy', 'section_sha256', 'section_md5', 'section_size',
                'section_v_addr', 'section_v_size', 'section_pointer_to_raw_data',
                'analysis_date'
            ]
            
            if not data:
                return None

            column_type_names = [
                'FixedString(64)', 'FixedString(32)', 'FixedString(40)',
                'LowCardinality(String)', 'LowCardinality(String)',
                'Float64', 'FixedString(64)', 'FixedString(32)', 'UInt64',
                'UInt64', 'UInt64', 'UInt64',
                'DateTime64(3, \'UTC\')'
            ]

            return (data, column_names, column_type_names)

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