Celso C. Ribeiro

163 papers C 3Journal 131Unranked 24
YearRankTypeTitle / Venue / Authors
2025 J jnl
Ann. Oper. Res.
Rafael A. Melo, Celso C. Ribeiro, José A. Riveaux
2025 J jnl
Eur. J. Oper. Res.
Rafael A. Melo, Celso C. Ribeiro, Sebastián Urrutia, Pieter Vansteenwegen
2025 J jnl
Ann. Oper. Res.
Carlos R. H. Márquez, Vanessa Braganholo, Celso C. Ribeiro
2025 J jnl
Eur. J. Oper. Res.
Daniel Aloise, Robin Moine, Celso C. Ribeiro, Jonathan Jalbert
2024 conf
ISMSI
Thiago F. Noronha, Celso C. Ribeiro
2024 J jnl
Int. Trans. Oper. Res.
Ruben Interian, Igor Carpanese, Bruno Mello, Celso C. Ribeiro
2023 J jnl
RAIRO Oper. Res.
Samuel Eduardo da Silva, Celso C. Ribeiro, Uéverton dos Santos Souza
2023 J jnl
Int. Trans. Oper. Res.
Celso C. Ribeiro, Sebastián Urrutia, Dominique de Werra
2023 J jnl
Int. Trans. Oper. Res.
Celso C. Ribeiro, Peter C. Bell
2023 J jnl
Int. Trans. Oper. Res.
Rafael A. Melo, Celso C. Ribeiro
2023 J jnl
Int. Trans. Oper. Res.
Ruben Interian, Ruslán G. Marzo, Isela Mendoza, Celso C. Ribeiro
2023 J jnl
Int. Trans. Oper. Res.
Juan G. Villegas, Jorge E. Mendoza, Celso C. Ribeiro, Rubén Ruiz, Andrés L. Medaglia
2023 J jnl
Int. Trans. Oper. Res.
Luce Brotcorne, Mario Guajardo, Celso C. Ribeiro, Maria Grazia Speranza
2022 J jnl
Int. Trans. Oper. Res.
Rafael A. Melo, Celso C. Ribeiro
2022 J jnl
CoRR
Ruben Interian, Ruslán G. Marzo, Isela Mendoza, Celso C. Ribeiro
2022 J jnl
Comput. Oper. Res.
Ruslán G. Marzo, Rafael A. Melo, Celso C. Ribeiro, Marcio Costa Santos
2022 J jnl
Int. Trans. Oper. Res.
Carlos R. H. Márquez, Celso C. Ribeiro
2022 J jnl
Inf. Sci.
Rafael A. Melo, Celso C. Ribeiro, José A. Riveaux
2021 J jnl
RAIRO Oper. Res.
Bruno Q. Pinto, Celso C. Ribeiro, José A. Riveaux, Isabel Rosseti
2021 J jnl
Int. Trans. Oper. Res.
Rafael B. Velasco, Igor Carpanese, Ruben Interian, Octávio C. G. Paulo Neto, Celso C. Ribeiro
2021 conf
ISMSI
Celso C. Ribeiro, José A. Riveaux, Julliany S. Brandão
2021 J jnl
Eur. J. Oper. Res.
Rafael A. Melo, Michell F. Queiroz, Celso C. Ribeiro
2021 J jnl
RAIRO Oper. Res.
Ruslán G. Marzo, Celso C. Ribeiro
2021 J jnl
CoRR
Rafael A. Melo, Celso C. Ribeiro
2021 J jnl
CoRR
Ruslán G. Marzo, Rafael A. Melo, Celso C. Ribeiro, Marcio Costa Santos
2021 J jnl
Int. Trans. Oper. Res.
Ruben Interian, Jorge R. Moreno, Celso C. Ribeiro
2020 J jnl
Int. Trans. Oper. Res.
Ruslán G. Marzo, Celso C. Ribeiro
2020 J jnl
J. Glob. Optim.
Bruno Q. Pinto, Celso C. Ribeiro, Isabel Rosseti, Thiago F. Noronha
2020 J jnl
RAIRO Oper. Res.
Celso C. Ribeiro, Philippe L. F. dos Santos
2020 conf
ISMSI
Ruben Interian, Jorge R. Moreno, Celso C. Ribeiro
2019 J jnl
Int. Trans. Oper. Res.
Celso C. Ribeiro, José A. Riveaux
2019 J jnl
Int. Trans. Oper. Res.
Celso C. Ribeiro, Tiago de A. Santos, Cid C. de Souza
2018 J jnl
Eur. J. Oper. Res.
Bruno Q. Pinto, Celso C. Ribeiro, Isabel Rosseti, Alexandre Plastino
2018 J jnl
Appl. Math. Comput.
Ruben Interian, Celso C. Ribeiro
2018 J jnl
Int. Trans. Oper. Res.
Alberto Reyes, Celso C. Ribeiro
2018 J jnl
Int. Trans. Oper. Res.
El-Ghazali Talbi, Celso C. Ribeiro
2017 J jnl
Int. Trans. Oper. Res.
Ruben Interian, Celso C. Ribeiro
2017 J jnl
Int. Trans. Oper. Res.
Julliany S. Brandão, Thiago F. Noronha, Mauricio G. C. Resende, Celso C. Ribeiro
2017 J jnl
Comput. Graph.
Ruben Interian, Juan M. Otero, Celso C. Ribeiro, Anselmo Antunes Montenegro
2017 J jnl
Int. J. Prod. Res.
Rafael A. Melo, Celso C. Ribeiro
2016 J jnl
J. Inf. Data Manag.
Mariana Tasca, Alexandre Plastino, Celso C. Ribeiro, Bianca Zadrozny
2016 J jnl
J. Glob. Optim.
Julliany S. Brandão, Thiago F. Noronha, Celso C. Ribeiro
2016 conf
GECCO (Companion)
Mauricio G. C. Resende, Celso C. Ribeiro
2016 J jnl
Eur. J. Oper. Res.
Tiago Januario, Sebastián Urrutia, Celso C. Ribeiro, Dominique de Werra
2016 J jnl
Int. Trans. Oper. Res.
Renato E. N. Moraes, Celso C. Ribeiro, Glaydston Mattos Ribeiro
2016 J jnl
Eur. J. Oper. Res.
Leonardo M. Musmanno, Celso C. Ribeiro
2015 J jnl
Int. Trans. Oper. Res.
Julliany S. Brandão, Thiago F. Noronha, Mauricio G. C. Resende, Celso C. Ribeiro
2015 J jnl
Comput. Ind. Eng.
Rafael A. Melo, Celso C. Ribeiro
2015 J jnl
Int. Trans. Oper. Res.
Celso C. Ribeiro, Vittorio Maniezzo
2015 J jnl
Int. Trans. Oper. Res.
Celso C. Ribeiro
2015 J jnl
Optim. Lett.
Celso C. Ribeiro, Isabel Rosseti
2014 J jnl
Discret. Appl. Math.
Laura Bahiense, Yuri Frota, Thiago F. Noronha, Celso C. Ribeiro
2014 J jnl
Int. Trans. Oper. Res.
Fernando Costa, Leonardo Murta, Celso C. Ribeiro
2013 J jnl
Comput. Oper. Res.
Luciana S. Pessoa, Mauricio G. C. Resende, Celso C. Ribeiro
2013 J jnl
Eur. J. Oper. Res.
Rafael Martí, Mauricio G. C. Resende, Celso C. Ribeiro
2013 J jnl
Comput. Oper. Res.
Renato E. N. Moraes, Celso C. Ribeiro
2013 J jnl
Int. Trans. Oper. Res.
Celso C. Ribeiro, Isabel Rosseti, Reinaldo Castro Souza
2013 J jnl
Comput. Oper. Res.
Rafael Martí, Mauricio G. C. Resende, Celso C. Ribeiro
2012 J jnl
Ann. Oper. Res.
Fabrício N. Costa, Sebastián Urrutia, Celso C. Ribeiro
2012 J jnl
J. Glob. Optim.
Celso C. Ribeiro, Isabel Rosseti, Reinaldo Vallejos Campos
2012 J jnl
J. Heuristics
Celso C. Ribeiro, Mauricio G. C. Resende
2012 J jnl
Interfaces
Celso C. Ribeiro, Sebastián Urrutia
2012 J jnl
Int. Trans. Oper. Res.
Celso C. Ribeiro
2012 J jnl
Int. Trans. Oper. Res.
Celso C. Ribeiro, Irene Loiseau
2011 J jnl
J. Glob. Optim.
Thiago F. Noronha, Mauricio G. C. Resende, Celso C. Ribeiro
2011 J jnl
Int. Trans. Oper. Res.
Aletéia P. F. Araújo, Cristina Boeres, Vinod E. F. Rebello, Celso C. Ribeiro
2011 J jnl
J. Sched.
Allison C. B. Guedes, Celso C. Ribeiro
2011 J jnl
J. Heuristics
Daniel Aloise, Celso C. Ribeiro
2011 conf
LION
Celso C. Ribeiro, Isabel Rosseti, Reinaldo Castro Souza
2011 J jnl
Optim. Lett.
Luciana S. Pessoa, Mauricio G. C. Resende, Celso C. Ribeiro
2011 J jnl
Optim. Lett.
Mauricio G. C. Resende, Celso C. Ribeiro
2010 J jnl
Networks
Yuri Frota, Nelson Maculan, Thiago F. Noronha, Celso C. Ribeiro
2010 J jnl
J. Glob. Optim.
Abilio Lucena, Celso C. Ribeiro, Andréa C. Santos
2010 J jnl
Comput. Oper. Res.
Graham Kendall, Sigrid Knust, Celso C. Ribeiro, Sebastián Urrutia
2010 J jnl
Int. Trans. Oper. Res.
Thiago F. Noronha, Celso C. Ribeiro, Andréa C. Santos
2009 J jnl
Electron. Notes Discret. Math.
Laura Bahiense, Yuri Frota, Nelson Maculan, Thiago F. Noronha, Celso C. Ribeiro
2009 J jnl
Int. Trans. Oper. Res.
Celso C. Ribeiro, Dalessandro Soares Vianna
2009 ch.
Encyclopedia of Optimization
Mauricio G. C. Resende, Celso C. Ribeiro
2009 conf
CISched
Elbio Renato Torres Abib, Celso C. Ribeiro
2009 conf
SLS
Celso C. Ribeiro, Isabel Rosseti, Reinaldo Vallejos Campos
2009 J jnl
IEEE Trans. Wirel. Commun.
Renato E. N. Moraes, Celso C. Ribeiro, Christophe Duhamel
2009 J jnl
J. Sched.
Rafael A. Melo, Sebastián Urrutia, Celso C. Ribeiro
2008 J jnl
Eur. J. Oper. Res.
Celso C. Ribeiro, Daniel Aloise, Thiago F. Noronha, Caroline T. M. Rocha, Sebastián Urrutia
2008 J jnl
Int. Trans. Oper. Res.
Carlos José Pereira de Lucena, Thiago F. Noronha, Celso C. Ribeiro, Sebastián Urrutia
2008 J jnl
Eur. J. Oper. Res.
Celso C. Ribeiro, Daniel Aloise, Thiago F. Noronha, Caroline T. M. Rocha, Sebastián Urrutia
2008 J jnl
Electron. Notes Discret. Math.
Thiago F. Noronha, Andréa C. Santos, Celso C. Ribeiro
2008 conf
WEA
Thiago F. Noronha, Mauricio G. C. Resende, Celso C. Ribeiro
2007 conf
Hybrid Metaheuristics
Alexandre R. Duarte, Celso C. Ribeiro, Sebastián Urrutia
2007 conf
CISched
Sebastián Urrutia, Celso C. Ribeiro, Rafael A. Melo
2007 J jnl
Eur. J. Oper. Res.
Andres Diaz Legües, Jacques A. Ferland, Celso C. Ribeiro, Jorge R. Vera, Andrés Weintraub
2007 J jnl
Parallel Comput.
Celso C. Ribeiro, Isabel Rosseti
2007 conf
WEA
Celso C. Ribeiro, Rodrigo F. Toso
2007 ch.
Metaheuristics
Aletéia P. F. Araújo, Cristina Boeres, Vinod E. F. Rebello, Celso C. Ribeiro, Sebastián Urrutia
2007 J jnl
Eur. J. Oper. Res.
Celso C. Ribeiro, Sebastián Urrutia
2007 J jnl
Int. Trans. Oper. Res.
Celso C. Ribeiro
2007 J jnl
Comput. Commun.
Celso C. Ribeiro, Simone L. Martins, Isabel Rosseti
2007 J jnl
Optim. Lett.
Renata M. Aiex, Mauricio G. C. Resende, Celso C. Ribeiro
2007 J jnl
RITA
Dárlinton B. F. Carvalho, Carlos José Pereira de Lucena, Celso C. Ribeiro
2006 C conf
PATAT
Thiago F. Noronha, Celso C. Ribeiro, Guillermo Durán, Sebastian Souyris, Andrés Weintraub
2006 J jnl
Discret. Appl. Math.
Sebastián Urrutia, Celso C. Ribeiro
2006 ch.
Handbook of Optimization in Telecommunications
Simone L. Martins, Celso C. Ribeiro
2006 J jnl
Discret. Appl. Math.
Pablo E. Coll, Celso C. Ribeiro, Cid C. de Souza
2006 J jnl
Discret. Appl. Math.
Celso C. Ribeiro
2006 C conf
PATAT
Alexandre R. Duarte, Celso C. Ribeiro, Sebastián Urrutia, Edward Hermann Haeusler
2006 J jnl
Eur. J. Oper. Res.
Thiago F. Noronha, Celso C. Ribeiro
2006 C conf
PATAT
Celso C. Ribeiro, Sebastián Urrutia
2006 J jnl
Discret. Appl. Math.
Dario J. Aloise, Daniel Aloise, Caroline T. M. Rocha, Celso C. Ribeiro, José C. Ribeiro Filho, Luiz S. S. Moura
2005 J jnl
Int. Trans. Oper. Res.
Celso C. Ribeiro, Dalessandro Soares Vianna
2005 J jnl
Networks
Luciana S. Buriol, Mauricio G. C. Resende, Celso C. Ribeiro, Mikkel Thorup
2005 J jnl
Electron. Notes Discret. Math.
Eraldo L. R. Fernandes, Celso C. Ribeiro
2005 J jnl
Int. Trans. Oper. Res.
Celso C. Ribeiro, Sebastián Urrutia
2005 J jnl
ACM J. Exp. Algorithmics
Celso C. Ribeiro, Simone L. Martins
2005 conf
WEA
Eraldo L. R. Fernandes, Celso C. Ribeiro
2004 conf
WEA
Adriana C. F. Alvim, Celso C. Ribeiro
2004 J jnl
J. Heuristics
Adriana C. F. Alvim, Celso C. Ribeiro, Fred W. Glover, Dario J. Aloise
2004 conf
WEA
Maria C. Boeres, Celso C. Ribeiro, Isabelle Bloch
2004 conf
AACC
Simone L. Martins, Celso C. Ribeiro, Isabel Rosseti
2004 J jnl
Parallel Process. Lett.
Maira T. Medina, Celso C. Ribeiro, Luiz F. G. Soares
2004 ed.
WEA
Celso C. Ribeiro, Simone L. Martins
2004 J jnl
Electron. Notes Discret. Math.
Sebastián Urrutia, Celso C. Ribeiro
2004 conf
WEA
Andréa C. dos Santos, Abilio Lucena, Celso C. Ribeiro
2003 J jnl
Networks
Mauricio G. C. Resende, Celso C. Ribeiro
2003 conf
WOB
Celso C. Ribeiro, Dalessandro Soares Vianna
2003 J jnl
Parallel Comput.
Alexandre Plastino, Celso C. Ribeiro, Noemi de La Rocque Rodriguez
2003 ch.
Handbook of Metaheuristics
Mauricio G. C. Resende, Celso C. Ribeiro
2002 J jnl
INFORMS J. Comput.
Celso C. Ribeiro, Eduardo Uchoa, Renato Fonseca F. Werneck
2002 conf
Euro-Par
Celso C. Ribeiro, Isabel Rosseti
2002 J jnl
J. Heuristics
Alexandre A. Andreatta, Celso C. Ribeiro
2002 J jnl
Networks
Eduardo Uchoa, Marcus Poggi de Aragão, Celso C. Ribeiro
2002 J jnl
J. Heuristics
Renata M. Aiex, Mauricio G. C. Resende, Celso C. Ribeiro
2002 J jnl
Optim. Methods Softw.
Paola Festa, Panos M. Pardalos, Mauricio G. C. Resende, Celso C. Ribeiro
2002 J jnl
Discret. Appl. Math.
Celso C. Ribeiro, Maurício C. de Souza
2001 J jnl
Networks
S. A. Canuto, Mauricio G. C. Resende, Celso C. Ribeiro
2001 J jnl
J. Syst. Softw.
Marcus Fontoura, Carlos José Pereira de Lucena, Alexandre A. Andreatta, Sergio E. R. de Carvalho, Celso C. Ribeiro
2000 J jnl
J. Glob. Optim.
Simone L. Martins, Mauricio G. C. Resende, Celso C. Ribeiro, Panos M. Pardalos
2000 J jnl
Parallel Comput.
Stella C. S. Porto, Joao Paulo Kitajima, Celso C. Ribeiro
2000 J jnl
INFORMS J. Comput.
Marcelo Prais, Celso C. Ribeiro
2000 J jnl
Networks
Celso C. Ribeiro, Maurício C. de Souza
1999 J jnl
RAIRO Oper. Res.
Nelson Maculan, Stella C. S. Porto, Celso C. Ribeiro, Cid Carvalho de Souza
1999 conf
PARCO
Alexandre Plastino, Celso C. Ribeiro, Noemi de La Rocque Rodriguez
1999 J jnl
ACM Trans. Math. Softw.
Celso C. Ribeiro, Mauricio G. C. Resende
1998 conf
IRREGULAR
Simone L. Martins, Celso C. Ribeiro, Maurício C. de Souza
1998 conf
TOOLS (26)
Alexandre A. Andreatta, Sergio E. R. de Carvalho, Celso C. Ribeiro
1998 conf
IRREGULAR
Renata M. Aiex, Simone L. Martins, Celso C. Ribeiro, Noemi de La Rocque Rodriguez
1997 J jnl
Networks
Mauricio G. C. Resende, Celso C. Ribeiro
1997 conf
Euro-Par
Sérgio Lifschitz, Alexandre Plastino, Celso C. Ribeiro
1997 conf
Randomization Methods in Algorithm Design
Simone L. Martins, Panos M. Pardalos, Mauricio G. C. Resende, Celso C. Ribeiro
1997 J jnl
J. Heuristics
Celso C. Ribeiro, Cláudio D. Ribeiro, Rosana S. G. Lanzelotte
1996 J jnl
J. Heuristics
Stella C. S. Porto, Celso C. Ribeiro
1995 J jnl
Int. J. High Speed Comput.
Stella C. S. Porto, Celso C. Ribeiro
1994 J jnl
Oper. Res.
Celso C. Ribeiro, François Soumis
1994 J jnl
Ann. Oper. Res.
Cristina M. A. Leopoldino, Mario V. F. Pereira, Leontina M. V. Pinto, Celso C. Ribeiro
1994 J jnl
Ann. Oper. Res.
Alexandre A. Andreatta, Celso C. Ribeiro
1994 J jnl
Discret. Appl. Math.
Alain Hertz, Brigitte Jaumard, Celso C. Ribeiro
1994 J jnl
Ann. Oper. Res.
Celso C. Ribeiro, Nelson Maculan
1993 J jnl
Discret. Appl. Math.
C. Carvalho de Souza, Celso C. Ribeiro
1993 J jnl
Ann. Oper. Res.
Brigitte Jaumard, Marcelo Prais, Celso C. Ribeiro
1991 J jnl
Pattern Recognit.
Mikhail J. Atallah, Celso C. Ribeiro, Sérgio Lifschitz
1991 J jnl
Math. Program.
Pierre Hansen, Marcus Poggi de Aragão, Celso C. Ribeiro
1990 J jnl
Ann. Math. Artif. Intell.
Pierre Hansen, Marcus Poggi de Aragão, Celso C. Ribeiro
1989 J jnl
Pattern Recognit. Lett.
Pedro Cox, Henri Maître, Michel Minoux, Celso C. Ribeiro
1985 J jnl
Discret. Appl. Math.
Celso C. Ribeiro, Michel Minoux
1984 J jnl
Parallel Comput.
Celso C. Ribeiro
redb/extractors/elf_extractors/elf_sections.py
← Index redb/extractors/elf_extractors/elf_sections.py python
import inspect
import hashlib
import math
from collections import Counter
from datetime import datetime, timezone
from typing import Any, List, Dict

from elftools.elf.elffile import ELFFile
from elftools.common.exceptions import ELFError

from redb.extractors.enum import Tag
from redb.extractors.elf_extractor import ELFExtractor
from redb.models.dataclasses import ELFSection


class ELFSectionExtractor(ELFExtractor):

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

    def _is_empty_result(self, extracted_data) -> bool:
        """
        Override: Empty sections is an ERROR, not a valid empty case.
        A valid ELF file must have sections (at minimum a null section).
        """
        # Always return False - empty sections should be treated as an error
        return False

    def _calculate_entropy(self, data: bytes) -> float:
        """Calculate Shannon entropy of data."""
        if not data:
            return 0.0

        try:
            # Count frequency of each byte
            byte_counts = Counter(data)
            data_len = len(data)

            # Calculate entropy
            entropy = 0.0
            for count in byte_counts.values():
                if count > 0:
                    frequency = count / data_len
                    entropy -= frequency * math.log2(frequency)

            return entropy
        except Exception as e:
            self.log.error(f"Error calculating entropy: {e}")
            return 0.0

    def _map_section_type(self, sh_type_str: str) -> int:
        """Map section type string to enum value."""
        type_map = {
            'SHT_NULL': 0,
            'SHT_PROGBITS': 1,
            'SHT_SYMTAB': 2,
            'SHT_STRTAB': 3,
            'SHT_RELA': 4,
            'SHT_HASH': 5,
            'SHT_DYNAMIC': 6,
            'SHT_NOTE': 7,
            'SHT_NOBITS': 8,
            'SHT_REL': 9,
            'SHT_DYNSYM': 11
        }
        return type_map.get(sh_type_str, 0)

    def _decode_section_flags(self, flags: int) -> List[str]:
        """Decode section flags to human-readable strings."""
        flag_strings = []

        # Common ELF section flags
        if flags & 0x1:  # SHF_WRITE
            flag_strings.append('WRITE')
        if flags & 0x2:  # SHF_ALLOC
            flag_strings.append('ALLOC')
        if flags & 0x4:  # SHF_EXECINSTR
            flag_strings.append('EXECINSTR')
        if flags & 0x10:  # SHF_MERGE
            flag_strings.append('MERGE')
        if flags & 0x20:  # SHF_STRINGS
            flag_strings.append('STRINGS')
        if flags & 0x40:  # SHF_INFO_LINK
            flag_strings.append('INFO_LINK')
        if flags & 0x80:  # SHF_LINK_ORDER
            flag_strings.append('LINK_ORDER')
        if flags & 0x100:  # SHF_OS_NONCONFORMING
            flag_strings.append('OS_NONCONFORMING')
        if flags & 0x200:  # SHF_GROUP
            flag_strings.append('GROUP')
        if flags & 0x400:  # SHF_TLS
            flag_strings.append('TLS')

        return flag_strings if flag_strings else ['NONE']

    def _extract_section_data(self, section) -> Dict:
        """Extract data from a single section."""
        try:
            header = section.header

            # Get section name (handle empty names)
            section_name = section.name if section.name else f"<unnamed_{section.header.get('sh_name', 0)}>"

            # Get section type and map to enum
            sh_type_str = header.get('sh_type', 'SHT_NULL')
            section_type_enum = self._map_section_type(sh_type_str)
            section_type_str = sh_type_str.replace('SHT_', '') if sh_type_str.startswith('SHT_') else sh_type_str

            # Get section properties
            section_flags = header.get('sh_flags', 0)
            section_flags_str = self._decode_section_flags(section_flags)
            section_addr = header.get('sh_addr', 0)
            section_offset = header.get('sh_offset', 0)
            section_size = header.get('sh_size', 0)
            section_link = header.get('sh_link', 0)
            section_info = header.get('sh_info', 0)
            section_addralign = header.get('sh_addralign', 0)
            section_entsize = header.get('sh_entsize', 0)

            # Calculate entropy and hashes for section data
            section_entropy = 0.0
            section_sha256 = ""
            section_md5 = ""

            try:
                if section_size > 0 and section_type_str != 'NOBITS':
                    section_data = section.data()
                    if section_data:
                        # Calculate entropy
                        section_entropy = self._calculate_entropy(section_data)

                        # Calculate hashes
                        section_sha256 = hashlib.sha256(section_data).hexdigest()
                        section_md5 = hashlib.md5(section_data).hexdigest()
            except Exception as e:
                self.log.warning(f"Could not read section '{section_name}' data: {e}")
                section_entropy = 0.0
                section_sha256 = ""
                section_md5 = ""

            return ELFSection(
                section_name=section_name,
                section_type=section_type_enum,
                section_type_str=section_type_str,
                section_flags=section_flags,
                section_flags_str=section_flags_str,
                section_addr=section_addr,
                section_offset=section_offset,
                section_size=section_size,
                section_link=section_link,
                section_info=section_info,
                section_addralign=section_addralign,
                section_entsize=section_entsize,
                section_entropy=section_entropy,
                section_sha256=section_sha256,
                section_md5=section_md5
            )

        except Exception as e:
            self.log.error(f"Error extracting section data: {e}")
            return None

    def tag(self):
        return Tag.ELF_SECTIONS.value if hasattr(Tag, 'ELF_SECTIONS') else "elf_sections"

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

            def extract_data(elf):
                sections_data = []

                # Iterate through all sections with per-section error handling
                for section_index, section in enumerate(elf.iter_sections()):
                    try:
                        section_data = self._extract_section_data(section)
                        if section_data:
                            sections_data.append(section_data)
                        else:
                            self.log.warning(f"Failed to extract data for section {section_index}")
                    except Exception as e:
                        self.log.warning(f"Error processing section {section_index}: {e}")
                        # Continue processing other sections

                return sections_data

            if not self._is_elf_file():
                return None

            result = self._with_elf_file(extract_data)
            if result is None:
                return None

            self.elf_sections = result
            return self.elf_sections

        except Exception as e:
            self.log.error(f"Error extracting ELF sections {self.hash.sha256}: {e}")
            return None

    def prepare_export_data(self, exporter_type: str) -> Any:
        self.log.debug(inspect.currentframe().f_code.co_name)

        if exporter_type == "ElasticsearchExporter":
            return self.elf_sections
        elif exporter_type == "ClickHouseExporter":
            try:
                if not self.elf_sections:
                    return None

                # Prepare data arrays for all sections
                data = []
                current_time = datetime.now(timezone.utc)
                for section in self.elf_sections:
                    row = [
                        self.sha256,
                        self.md5,
                        self.sha1,
                        section.section_name,
                        section.section_type,
                        section.section_type_str,
                        section.section_flags,
                        section.section_flags_str,
                        section.section_addr,
                        section.section_offset,
                        section.section_size,
                        section.section_link,
                        section.section_info,
                        section.section_addralign,
                        section.section_entsize,
                        section.section_entropy,
                        section.section_sha256,
                        section.section_md5,
                        current_time
                    ]
                    data.append(row)

                column_names = [
                    'sha256', 'md5', 'sha1',
                    'section_name', 'section_type', 'section_type_str',
                    'section_flags', 'section_flags_str',
                    'section_addr', 'section_offset', 'section_size',
                    'section_link', 'section_info', 'section_addralign', 'section_entsize',
                    'section_entropy', 'section_sha256', 'section_md5',
                    'analysis_date'
                ]

                column_type_names = [
                    'FixedString(64)', 'FixedString(32)', 'FixedString(40)',
                    'LowCardinality(String)',
                    "Enum8('NULL'=0, 'PROGBITS'=1, 'SYMTAB'=2, 'STRTAB'=3, 'RELA'=4, 'HASH'=5, 'DYNAMIC'=6, 'NOTE'=7, 'NOBITS'=8, 'REL'=9, 'DYNSYM'=11)",
                    'LowCardinality(String)',
                    'UInt64',
                    'Array(LowCardinality(String))',
                    'UInt64', 'UInt64', 'UInt64',
                    'UInt32', 'UInt32', 'UInt64', 'UInt64',
                    'Float64',
                    'FixedString(64)', 'FixedString(32)',
                    'DateTime64(3, \'UTC\')'
                ]

                if not data:
                    return None

                return (data, column_names, column_type_names)

            except Exception as e:
                self.log.error(f"Error preparing export data: {e}")
                raise

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