Makan Pourzandi

121 papers A* 6A 3B 16C 14Misc 1Journal 42Unranked 36
YearRankTypeTitle / Venue / Authors
2025 conf
CNS
Osama Iskandarani, Boubakr Nour, Makan Pourzandi, Mourad Debbabi, Chadi Assi
2025 J jnl
CoRR
Faissal Ahmadou, Sepehr Ghaffarzadegan, Boubakr Nour, Makan Pourzandi, Mourad Debbabi, Chadi Assi
2025 J jnl
IEEE Netw. Lett.
Abdussamad Syed, Boubakr Nour, Makan Pourzandi, Chadi Assi, Mourad Debbabi
2025 J jnl
IEEE Trans. Dependable Secur. Comput.
Alaa Oqaily, Mohammad Ekramul Kabir, Lingyu Wang, Yosr Jarraya, Suryadipta Majumdar, Makan Pourzandi, Mourad Debbabi, Sudershan Lakshmanan Thirunavukkarasu, Mengyuan Zhang
2025 J jnl
Comput. Secur.
Nathalie Wehbe, Hyame Assem Alameddine, Makan Pourzandi, Chadi Assi
2025 conf
NoF
Faissal Ahmadou, Sepehr Ghaffarzadegan, Boubakr Nour, Makan Pourzandi, Mourad Debbabi, Chadi Assi
2025 J jnl
IEEE Trans. Inf. Forensics Secur.
Ricardo Misael Ayala Molina, Hyame Assem Alameddine, Makan Pourzandi, Chadi Assi
2025 J jnl
CoRR
Ricardo Misael Ayala Molina, Hyame Assem Alameddine, Makan Pourzandi, Chadi Assi
2025 J jnl
IEEE Trans. Dependable Secur. Comput.
Hugo Kermabon-Bobinnec, Sima Bagheri, Mahmood Gholipourchoubeh, Suryadipta Majumdar, Yosr Jarraya, Lingyu Wang, Makan Pourzandi
2025 J jnl
IEEE Secur. Priv.
Zineb Meriem Ferdjouni, Boubakr Nour, Makan Pourzandi, Mourad Debbabi
2025 J jnl
IEEE Trans. Netw. Serv. Manag.
Boubakr Nour, Makan Pourzandi, Mourad Debbabi
2024 J jnl
IEEE Trans. Inf. Forensics Secur.
Sima Bagheri, Hugo Kermabon-Bobinnec, Mohammad Ekramul Kabir, Suryadipta Majumdar, Lingyu Wang, Yosr Jarraya, Boubakr Nour, Makan Pourzandi
2024 J jnl
IEEE Trans. Netw. Serv. Manag.
Boubakr Nour, Makan Pourzandi, Rushaan Kamran Qureshi, Mourad Debbabi
2024 conf
CODASPY
Mahmood Gholipourchoubeh, Hugo Kermabon-Bobinnec, Suryadipta Majumdar, Yosr Jarraya, Lingyu Wang, Boubakr Nour, Makan Pourzandi
2024 J jnl
IEEE Trans. Dependable Secur. Comput.
Sudershan Lakshmanan Thirunavukkarasu, Mengyuan Zhang, Suryadipta Majumdar, Yosr Jarraya, Makan Pourzandi, Lingyu Wang
2024 A* conf
USENIX Security Symposium
Momen Oqaily, Hinddeep Purohit, Yosr Jarraya, Lingyu Wang, Boubakr Nour, Makan Pourzandi, Mourad Debbabi
2024 conf
DSC
Boubakr Nour, Makan Pourzandi, Jesus Alatorre, Jan Willekens, Mourad Debbabi
2024 B conf
IFIP Networking
Ricardo Misael Ayala Molina, Nathalie Wehbe, Hyarne Assem Alameddine, Makan Pourzandi, Chadi Assi
2024 J jnl
IEEE Internet Things Mag.
Boubakr Nour, Sonika Ujjwal, Leyli Karaçay, Zakaria Laaroussi, Utku Gülen, Emrah Tomur, Makan Pourzandi
2024 C conf
CloudCom
Ming Lei, Taous A. Madi, Matthew Nitschke, Lianying Zhao, Makan Pourzandi
2024 A* conf
NDSS
Hugo Kermabon-Bobinnec, Yosr Jarraya, Lingyu Wang, Suryadipta Majumdar, Makan Pourzandi
2024 J jnl
IEEE Trans. Dependable Secur. Comput.
Momen Oqaily, Mohammad Ekramul Kabir, Suryadipta Majumdar, Yosr Jarraya, Mengyuan Zhang, Makan Pourzandi, Lingyu Wang, Mourad Debbabi
2023 B conf
IFIP Networking
Nathalie Wehbe, Hyame Assem Alameddine, Makan Pourzandi, Chadi Assi
2023 J jnl
IEEE Commun. Mag.
Nathalie Wehbe, Hyame Assem Alameddine, Makan Pourzandi, Elias Bou-Harb, Chadi Assi
2023 J jnl
IEEE Commun. Surv. Tutorials
Boubakr Nour, Makan Pourzandi, Mourad Debbabi
2023 conf
CODASPY
Momen Oqaily, Suryadipta Majumdar, Lingyu Wang, Mohammad Ekramul Kabir, Yosr Jarraya, A. S. M. Asadujjaman, Makan Pourzandi, Mourad Debbabi
2023 conf
FPS (2)
Boubakr Nour, Makan Pourzandi, Rushaan Kamran Qureshi, Mourad Debbabi
2023 conf
ESORICS (2)
Md. Nazmul Hoq, Jia Wei Yao, Suryadipta Majumdar, Luis Suárez, Lingyu Wang, Amine Boukhtouta, Makan Pourzandi, Mourad Debbabi
2023 conf
ICC
Sima Bagheri, Hugo Kermabon-Bobinnec, Suryadipta Majumdar, Yosr Jarraya, Lingyu Wang, Makan Pourzandi
2022 C conf
CloudCom
A. S. M. Asadujjaman, Mohammad Ekramul Kabir, Hinddeep Purohit, Suryadipta Majumdar, Lingyu Wang, Yosr Jarraya, Makan Pourzandi
2022 C conf
CloudCom
Ming Lei, Lianying Zhao, Makan Pourzandi, Fereydoun Farrahi Moghaddam
2022 conf
FNWF
Amine Boukhtouta, Taous Madi, Makan Pourzandi, Hyame Assem Alameddine
2022 J jnl
CoRR
Meisam Mohammady, Han Wang, Lingyu Wang, Mengyuan Zhang, Yosr Jarraya, Suryadipta Majumdar, Makan Pourzandi, Mourad Debbabi, Yuan Hong
2022 conf
ESORICS (3)
Alaa Oqaily, Yosr Jarraya, Lingyu Wang, Makan Pourzandi, Suryadipta Majumdar
2022 J jnl
IEEE Trans. Dependable Secur. Comput.
Suryadipta Majumdar, Gagandeep Singh Chawla, Amir Alimohammadifar, Taous Madi, Yosr Jarraya, Makan Pourzandi, Lingyu Wang, Mourad Debbabi
2022 conf
CODASPY
Hugo Kermabon-Bobinnec, Mahmood Gholipourchoubeh, Sima Bagheri, Suryadipta Majumdar, Yosr Jarraya, Makan Pourzandi, Lingyu Wang
2022 A* conf
NDSS
Azadeh Tabiban, Heyang Zhao, Yosr Jarraya, Makan Pourzandi, Mengyuan Zhang, Lingyu Wang
2022 conf
NordSec
Azadeh Tabiban, Heyang Zhao, Yosr Jarraya, Makan Pourzandi, Lingyu Wang
2021 J jnl
ACM Trans. Priv. Secur.
Meisam Mohammady, Momen Oqaily, Lingyu Wang, Yuan Hong, Habib Louafi, Makan Pourzandi, Mourad Debbabi
2021 conf
CNS
A. S. M. Asadujjaman, Momen Oqaily, Yosr Jarraya, Suryadipta Majumdar, Makan Pourzandi, Lingyu Wang, Mourad Debbabi
2021 conf
ESORICS (1)
Taous Madi, Hyame Assem Alameddine, Makan Pourzandi, Amine Boukhtouta, Moataz Shoukry Samir, Chadi Assi
2021 ed.
ICDF2C
Sanjay Goel, Pavel Gladyshev, Daryl Johnson, Makan Pourzandi, Suryadipta Majumdar
2021 A conf
ACSAC
Mohammad Mahdi Ghorbani, Fereydoun Farrahi Moghaddam, Mengyuan Zhang, Makan Pourzandi, Kim Khoa Nguyen, Mohamed Cheriet
2021 J jnl
Comput. Networks
Taous Madi, Hyame Assem Alameddine, Makan Pourzandi, Amine Boukhtouta
2021 J jnl
IEEE Trans. Dependable Secur. Comput.
Momen Oqaily, Yosr Jarraya, Meisam Mohammady, Suryadipta Majumdar, Makan Pourzandi, Lingyu Wang, Mourad Debbabi
2021 conf
ICC
Lianying Zhao, Muhammad Shafayat Oshman, Mengyuan Zhang, Fereydoun Farrahi Moghaddam, Shubham Chander, Makan Pourzandi
2021 J jnl
IEEE Trans. Dependable Secur. Comput.
Gagandeep Singh Chawla, Mengyuan Zhang, Suryadipta Majumdar, Yosr Jarraya, Makan Pourzandi, Lingyu Wang, Mourad Debbabi
2020 conf
CNS
Azadeh Tabiban, Yosr Jarraya, Mengyuan Zhang, Makan Pourzandi, Lingyu Wang, Mourad Debbabi
2020 C conf
CloudCom
Mohammad Mahdi Ghorbani, Fereydoun Farrahi Moghaddam, Mengyuan Zhang, Makan Pourzandi, Kim Khoa Nguyen, Mohamed Cheriet
2020 C conf
CloudCom
Alaa Oqaily, Sudershan Lakshmanan Thirunavukkarasu, Yosr Jarraya, Suryadipta Majumdar, Mengyuan Zhang, Makan Pourzandi, Lingyu Wang, Mourad Debbabi
2020 J jnl
CoRR
Meisam Mohammady, Shangyu Xie, Yuan Hong, Mengyuan Zhang, Lingyu Wang, Makan Pourzandi, Mourad Debbabi
2020 A* conf
CCS
Meisam Mohammady, Shangyu Xie, Yuan Hong, Mengyuan Zhang, Lingyu Wang, Makan Pourzandi, Mourad Debbabi
2019 book
Suryadipta Majumdar, Taous Madi, Yushun Wang, Azadeh Tabiban, Momen Oqaily, Amir Alimohammadifar, Yosr Jarraya, Makan Pourzandi, Lingyu Wang, Mourad Debbabi
2019 J jnl
IEEE Trans. Serv. Comput.
Alireza Shameli-Sendi, Yosr Jarraya, Makan Pourzandi, Mohamed Cheriet
2019 J jnl
ACM Trans. Priv. Secur.
Taous Madi, Yosr Jarraya, Amir Alimohammadifar, Suryadipta Majumdar, Yushun Wang, Makan Pourzandi, Lingyu Wang, Mourad Debbabi
2019 J jnl
J. Comput. Secur.
Suryadipta Majumdar, Azadeh Tabiban, Yosr Jarraya, Momen Oqaily, Amir Alimohammadifar, Makan Pourzandi, Lingyu Wang, Mourad Debbabi
2019 C conf
CloudCom
Sudershan Lakshmanan Thirunavukkarasu, Mengyuan Zhang, Alaa Oqaily, Gagandeep Singh Chawla, Lingyu Wang, Makan Pourzandi, Mourad Debbabi
2019 conf
DSC
Suryadipta Majumdar, Azadeh Tabiban, Meisam Mohammady, Alaa Oqaily, Yosr Jarraya, Makan Pourzandi, Lingyu Wang, Mourad Debbabi
2019 conf
ESORICS (2)
Suryadipta Majumdar, Azadeh Tabiban, Meisam Mohammady, Alaa Oqaily, Yosr Jarraya, Makan Pourzandi, Lingyu Wang, Mourad Debbabi
2019 conf
ESORICS (1)
Momen Oqaily, Yosr Jarraya, Mengyuan Zhang, Lingyu Wang, Makan Pourzandi, Mourad Debbabi
2018 B conf
NetSoft
Elaheh Jalalpour, Milad Ghaznavi, Daniel Migault, Stere Preda, Makan Pourzandi, Raouf Boutaba
2018 J jnl
Comput. Electr. Eng.
Daniel Migault, Marcos A. Simplício Jr., Bruno M. Barros, Makan Pourzandi, Thiago R. M. Almeida, Ewerton R. Andrade, Tereza Cristina M. B. Carvalho
2018 conf
FPS
Suryadipta Majumdar, Taous Madi, Yosr Jarraya, Makan Pourzandi, Lingyu Wang, Mourad Debbabi
2018 B conf
NetSoft
Thiago R. M. Almeida, Bruno M. Barros, Ewerton R. Andrade, Marcos A. Simplício Jr., Daniel Migault, Makan Pourzandi
2018 B conf
NetSoft
Elaheh Jalalpour, Milad Ghaznavi, Daniel Migault, Stere Preda, Makan Pourzandi, Raouf Boutaba
2018 B conf
DBSec
Amine Boukhtouta, Makan Pourzandi, Richard Brunner, Stéphane Dault
2018 A* conf
CCS
Meisam Mohammady, Lingyu Wang, Yuan Hong, Habib Louafi, Makan Pourzandi, Mourad Debbabi
2018 J jnl
CoRR
Meisam Mohammady, Lingyu Wang, Yuan Hong, Habib Louafi, Makan Pourzandi, Mourad Debbabi
2018 C conf
CloudCom
Taous Madi, Mengyuan Zhang, Yosr Jarraya, Amir Alimohammadifar, Makan Pourzandi, Lingyu Wang, Mourad Debbabi
2018 conf
ESORICS (2)
Amir Alimohammadifar, Suryadipta Majumdar, Taous Madi, Yosr Jarraya, Makan Pourzandi, Lingyu Wang, Mourad Debbabi
2018 J jnl
IEEE Trans. Inf. Forensics Secur.
Suryadipta Majumdar, Taous Madi, Yushun Wang, Yosr Jarraya, Makan Pourzandi, Lingyu Wang, Mourad Debbabi
2017 A conf
ICDCS
Daniel Migault, Marcos A. Simplício Jr., Bruno M. Barros, Makan Pourzandi, Thiago R. M. Almeida, Ewerton R. Andrade, Tereza Cristina M. B. Carvalho
2017 conf
ESORICS (2)
Suryadipta Majumdar, Yosr Jarraya, Momen Oqaily, Amir Alimohammadifar, Makan Pourzandi, Lingyu Wang, Mourad Debbabi
2017 J jnl
Trans. Large Scale Data Knowl. Centered Syst.
Feras Aljumah, Makan Pourzandi, Mourad Debbabi
2017 J jnl
CoRR
Sunil Kumar Sathyanarayan, Makan Pourzandi, Katayoun Aliyari
2017 A* conf
NDSS
Yushun Wang, Taous Madi, Suryadipta Majumdar, Yosr Jarraya, Amir Alimohammadifar, Makan Pourzandi, Lingyu Wang, Mourad Debbabi
2016 J jnl
Innov. Syst. Softw. Eng.
Djedjiga Mouheb, Dima Alhadidi, Mariam Nouh, Mourad Debbabi, Lingyu Wang, Makan Pourzandi
2016 conf
CODASPY
Taous Madi, Suryadipta Majumdar, Yushun Wang, Yosr Jarraya, Makan Pourzandi, Lingyu Wang
2016 conf
ESORICS (1)
Suryadipta Majumdar, Yosr Jarraya, Taous Madi, Amir Alimohammadifar, Makan Pourzandi, Lingyu Wang, Mourad Debbabi
2015 book
Djedjiga Mouheb, Mourad Debbabi, Makan Pourzandi, Lingyu Wang, Mariam Nouh, Raha Ziarati, Dima Alhadidi, Chamseddine Talhi, Vitor Lima
2015 B conf
CLOUD
Yosr Jarraya, Alireza Shameli-Sendi, Makan Pourzandi, Mohamed Cheriet
2015 B conf
IM
Alireza Shameli-Sendi, Yosr Jarraya, Mohamed Fekih Ahmed, Makan Pourzandi, Chamseddine Talhi, Mohamed Cheriet
2015 C conf
CloudCom
Suryadipta Majumdar, Taous Madi, Yushun Wang, Yosr Jarraya, Makan Pourzandi, Lingyu Wang, Mourad Debbabi
2015 J jnl
J. Netw. Comput. Appl.
Alireza Shameli-Sendi, Makan Pourzandi, Mohamed Fekih Ahmed, Mohamed Cheriet
2015 J jnl
Comput. Networks
Yosr Jarraya, Arash Eghtesadi, Sahba Sadri, Mourad Debbabi, Makan Pourzandi
2014 B conf
IC2E
Mohamed Fekih Ahmed, Chamseddine Talhi, Makan Pourzandi, Mohamed Cheriet
2014 B conf
IC2E
Arash Eghtesadi, Yosr Jarraya, Mourad Debbabi, Makan Pourzandi
2013 J jnl
Secur. Commun. Networks
Elias Bou-Harb, Makan Pourzandi, Mourad Debbabi, Chadi Assi
2013 J jnl
IEEE Commun. Mag.
Elias Bou-Harb, Claude Fachkha, Makan Pourzandi, Mourad Debbabi, Chadi Assi
2013 C conf
HIS
Feras Aljumah, Raymond Hei Man Leung, Makan Pourzandi, Mourad Debbabi
2012 J jnl
J. Cloud Comput.
Nelson M. Gonzalez, Charles Miers, Fernando F. Redígolo, Marcos A. Simplício Jr., Tereza Cristina M. B. Carvalho, Mats Näslund, Makan Pourzandi
2012 conf
CTS
Yosr Jarraya, Arash Eghtesadi, Mourad Debbabi, Ying Zhang, Makan Pourzandi
2012 C conf
SSS
Yosr Jarraya, Arash Eghtesadi, Mourad Debbabi, Ying Zhang, Makan Pourzandi
2012 conf
CCECE
Swagata Das, Makan Pourzandi, Mourad Debbabi
2012 A conf
ICDCS
Ying Zhang, Makan Pourzandi
2011 C conf
CloudCom
Nelson M. Gonzalez, Charles Miers, Fernando F. Redígolo, Tereza Cristina M. B. Carvalho, Marcos A. Simplício Jr., Mats Näslund, Makan Pourzandi
2011 C conf
CLOSER
Nelson M. Gonzalez, Charles Miers, Fernando F. Redígolo, Marcos A. Simplício Jr., Tereza Cristina M. B. Carvalho, Mats Näslund, Makan Pourzandi
2010 conf
FACS
Djedjiga Mouheb, Dima Alhadidi, Mariam Nouh, Mourad Debbabi, Lingyu Wang, Makan Pourzandi
2010 conf
CASCON
Mariam Nouh, Raha Ziarati, Djedjiga Mouheb, Dima Alhadidi, Mourad Debbabi, Lingyu Wang, Makan Pourzandi
2010 conf
SERA (selected papers)
Djedjiga Mouheb, Chamseddine Talhi, Mariam Nouh, Vitor Lima, Mourad Debbabi, Lingyu Wang, Makan Pourzandi
2010 conf
SERA (selected papers)
Samir Ouchani, Otmane Aït Mohamed, Mourad Debbabi, Makan Pourzandi
2009 C conf
SoMeT
Djedjiga Mouheb, Chamseddine Talhi, Azzam Mourad, Vitor Lima, Mourad Debbabi, Lingyu Wang, Makan Pourzandi
2009 conf
SSV
Vitor Lima, Chamseddine Talhi, Djedjiga Mouheb, Mourad Debbabi, Lingyu Wang, Makan Pourzandi
2009 B conf
AINA
Marcos A. Simplício Jr., Vlad Coroama, Yeda Regina Venturini, Tereza Cristina M. B. Carvalho, Mats Näslund, Makan Pourzandi
2009 J jnl
J. Object Technol.
Chamseddine Talhi, Djedjiga Mouheb, Vitor Lima, Mourad Debbabi, Lingyu Wang, Makan Pourzandi
2009 conf
AOM@AOSD
Djedjiga Mouheb, Chamseddine Talhi, Vitor Lima, Mourad Debbabi, Lingyu Wang, Makan Pourzandi
2008 B conf
LCN
Segla Kpodjedo, Samuel Pierre, Makan Pourzandi
2008 conf
Med-Hoc-Net
Yeda Regina Venturini, Vlad Coroama, Tereza Cristina M. B. Carvalho, Mats Näslund, Makan Pourzandi
2006 B conf
IWCMC
Reinaldo Matushima, Yeda Regina Venturini, Rony R. M. Sakuragui, Tereza Cristina M. B. Carvalho, Wilson Vicente Ruggiero, Mats Näslund, Makan Pourzandi
2006 conf
ISAS
Peter Badovinatz, Santosh Balakrishnan, Makan Pourzandi, Manfred Reitenspieß, Chad Tindel
2006 B conf
CCGRID
Arpan Darivemula, Chokchai Leangsuksun, Anand Tikotekar, Makan Pourzandi
2005 B conf
CCGRID
Makan Pourzandi, David Gordon, William Yurcik, Gregory A. Koenig
2005 B conf
CCGRID
Chokchai Leangsuksun, Anand Tikotekar, Makan Pourzandi, Ibrahim Haddad
2005 J jnl
IEEE Secur. Priv.
Axelle Apvrille, Makan Pourzandi
2005 J jnl
CoRR
Michel R. Dagenais, Karim Yaghmour, Charles Levert, Makan Pourzandi
2004 conf
LISA
Axelle Apvrille, David Gordon, Serge E. Hallyn, Makan Pourzandi, Vincent Roy
2004 J jnl
CoRR
Marc Chatel, Michel R. Dagenais, Charles Levert, Makan Pourzandi
2004 J jnl
Comput. Secur.
Axelle Apvrille, Makan Pourzandi
2003 Misc conf
PDPTA
Makan Pourzandi, Axelle Apvrille, E. Gingras, A. Medenou, David Gordon
2002 C conf
CLUSTER
Makan Pourzandi, Ibrahim Haddad, Charles Levert, Miroslaw Zakrzewski, Michel R. Dagenais
1996 conf
Euro-Par, Vol. II
V. Demian, Frederic Desprez, Hélène Paugam-Moisy, Makan Pourzandi
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"