Jamilson Dantas

80 papers B 21C 8Journal 30Unranked 20
YearRankTypeTitle / Venue / Authors
2026 J jnl
J. Reliab. Intell. Environ.
Daliton da Silva, Dimas Cassimiro Nascimento Filho, Jean Araujo, Jamilson Dantas, Paulo Maciel
2026 J jnl
J. Internet Serv. Appl.
Luan Lins, Erick Nascimento, Jamilson Dantas, Jean Araujo, Paulo Maciel
2026 J jnl
IEEE Trans. Mob. Comput.
Erick Nascimento, Eduardo Tavares, Jamilson Dantas, Paulo Maciel
2025 B conf
SMC
Cayo de Oliveira, Rubens Matos, Jean Araujo, Jamilson Dantas
2025 conf
AINA (1)
Esau Bermudez, Jamilson Dantas, Paulo Romero Martins Maciel
2025 conf
SBMF
Raquel F. Trajano, Carlos Melo, Jamilson Dantas
2025 J jnl
CoRR
Jamilson Dantas, Paulo Silva, Lance Fiondella, Carlos Melo, Paulo Maciel
2025 J jnl
J. Supercomput.
Erick Nascimento, Luan Lins, Eduardo Tavares, Paulo Pereira, Jamilson Dantas, Sokol Kosta, Paulo Maciel
2025 J jnl
Int. J. Grid Util. Comput.
Carlos Melo, Jean Araujo, Jamilson Dantas, Paulo Pereira, Felipe Oliveira, Paulo Maciel
2025 J jnl
CoRR
Carlos Melo, Jamilson Dantas, Paulo Pereira, Paulo Maciel
2025 B conf
SMC
Gabriel Vanderlei de Oliveira, João Ferreira, Ermeson C. Andrade, Andson M. Balieiro, Gilmar Brito, Jamilson Dantas
2025 conf
AINA (1)
Esau Bermudez, Jamilson Dantas, Paulo Romero Martins Maciel
2025 B conf
SMC
Renata Dantas, Akin Dagba, Ioná Rameh, Jamilson Dantas, Paulo R. M. Maciel
2025 B conf
SMC
Esau Bermudez, Johanna Castellanos, Jamilson Dantas, Paulo R. M. Maciel
2025 B conf
SMC
Thiago Felipe da Silva Pinheiro, Marco Mialaret, Jamilson Dantas, Paulo R. M. Maciel
2025 B conf
SMC
Erick Nascimento, Jean Araujo, Eduardo Tavares, Jamilson Dantas, Paulo Romero Martins Maciel
2025 J jnl
J. Reliab. Intell. Environ.
Cleunio França, Eric Borba, Thiago Valentim Bezerra, Erick Nascimento, Daliton Silva, Jamilson Dantas, Eduardo Tavares
2025 C conf
WEBIST
Artur S. Farias, Rodrigo Rocha, Igor Medeiros Vanderlei, Jean Araujo, André Araújo, Jamilson Dantas
2025 J jnl
J. Reliab. Intell. Environ.
André Assis, Jamilson Dantas, Ermeson C. Andrade
2024 conf
SysCon
Erick Nascimento, Jamilson Dantas, Eduardo Tavares, Paulo Romero Martins Maciel
2024 conf
SysCon
Artur Montenegro, Erick Barros, Rubens Matos, Paulo Romero Martins Maciel, Jamilson Dantas
2024 J jnl
IEEE Trans. Ind. Informatics
Felipe Oliveira, Paulo Pereira, Jamilson Dantas, Jean Araujo, Paulo Maciel
2024 conf
SBESC
Gabriel Vanderlei de Oliveira, Andson M. Balieiro, Gilmar Brito, Jamilson Dantas
2024 conf
LADC
Erick Nascimento, Eduardo Antonio Guimarães Tavares, Jamilson Dantas, Paulo Romero Martins Maciel
2024 conf
SysCon
Thiago Felipe da Silva Pinheiro, Marco Mialaret, Paulo Pereira, Luan Lins, Daliton Silva, Jamilson Dantas, Paulo Romero Martins Maciel
2024 conf
SysCon
Luan Lins, Erick Nascimento, Jamilson Dantas, Jean Araujo, Paulo Romero Martins Maciel
2024 conf
LADC
Luan Lins, Erick Nascimento, Jamilson Dantas, Jean Araujo, Paulo Romero Martins Maciel
2023 J jnl
J. Supercomput.
Leonel Feitosa Correia, Jamilson Dantas, Francisco Airton Silva
2023 J jnl
Int. J. Grid Util. Comput.
Jamilson Dantas, Carlos Melo, Paulo Maciel, Rúbens de Souza Matos Júnior
2023 C conf
WETICE
Camila Dantas, Pablo Pessoa do Nascimento, João Ferreira, Paulo Maciel, Jamilson Dantas
2023 conf
SysCon
Arthur Sérvio, Felipe Oliveira, Jamilson Dantas, Daliton Silva, Danilo Clemente
2023 C conf
WETICE
Pedro Melo, Lucas Gama, Jamilson Dantas, David Beserra, Jean Araujo
2022 J jnl
Computing
Carlos Melo, Jean Araujo, Jamilson Dantas, Paulo Pereira, Paulo Maciel
2022 J jnl
J. Reliab. Intell. Environ.
Paulo Maciel, Jamilson Dantas, Carlos Melo, Paulo Pereira, Felipe Oliveira, Jean Araujo, Rúbens de Souza Matos Júnior
2022 J jnl
J. Supercomput.
Danilo Clemente, Paulo Pereira, Jamilson Dantas, Paulo Romero Martins Maciel
2022 J jnl
J. Supercomput.
Paulo Pereira, Carlos Melo, Jean Araujo, Jamilson Dantas, Vinícius Santos, Paulo Maciel
2022 J jnl
J. Supercomput.
Carlos Melo, Felipe Oliveira, Jamilson Dantas, Jean Araujo, Paulo Pereira, Ronierison Maciel, Paulo Maciel
2022 J jnl
Sensors
Iure Fé, Rúbens de Souza Matos Júnior, Jamilson Dantas, Carlos Melo, Tuan Anh Nguyen, Dugki Min, Eunmi Choi, Francisco Airton Silva, Paulo Romero Martins Maciel
2022 C conf
iiWAS
José Vieira, Rodrigo Rocha, Luis Filipe Alves Pereira, Igor Medeiros Vanderlei, Jean Araujo, Jamilson Dantas
2021 J jnl
J. Supercomput.
Carlos Melo, Jamilson Dantas, Paulo Pereira, Paulo R. M. Maciel
2021 conf
SysCon
Ronierison Maciel, Jean Araujo, Carlos Melo, Paulo Pereira, Jamilson Dantas, Júlio Mendonça, Paulo Maciel
2021 B conf
Intelligent Environments (Workshops)
Thiago Felipe da Silva Pinheiro, Danilo Oliveira, Rúbens de Souza Matos Júnior, Bruno Silva, Paulo Pereira, Carlos Melo, Felipe Oliveira, Eduardo Tavares, Jamilson Dantas, Paulo Romero Martins Maciel
2020 J jnl
J. Netw. Syst. Manag.
Rúbens de Souza Matos Júnior, Jamilson Dantas, Eltton Araujo, Paulo R. M. Maciel
2020 J jnl
Int. J. Comput. Sci. Eng.
Jamilson Dantas, Eltton Araujo, Paulo R. M. Maciel, Rúbens de Souza Matos Júnior, Jean Teixeira
2020 J jnl
Int. J. Grid Util. Comput.
Carlos Melo, Jamilson Dantas, Paulo R. M. Maciel, Danilo Mendonça Oliveira, Jean Araujo, Rúbens de Souza Matos Júnior, Iure Fé
2020 J jnl
J. Supercomput.
Paulo Pereira, Jean Araujo, Matheus Torquato, Jamilson Dantas, Carlos Melo, Paulo R. M. Maciel
2019 J jnl
Int. J. Web Grid Serv.
Danilo Oliveira, Jamilson Dantas, Nelson Souto Rosa, Paulo R. M. Maciel, Rúbens de Souza Matos Júnior, André Brinkmann
2019 J jnl
Int. J. Data Min. Model. Manag.
Renata Dantas, Jamilson Dantas, Gabriel Alves, Paulo Romero Martins Maciel
2019 conf
CloudNet
Carlos Melo, Jamilson Dantas, Ronierison Romero Martins Maciel, Paulo Pereira, Eder Quesado, Paulo R. M. Maciel
2019 B conf
SMC
Diogo Siqueira, Thiago Felipe da Silva Pinheiro, Jamilson Dantas, Paulo R. M. Maciel
2019 B conf
SMC
Eltton Araujo, Jamilson Dantas, Rúbens de Souza Matos Júnior, Paulo Pereira, Paulo R. M. Maciel
2019 J jnl
RITA
Carlos Melo, Jamilson Dantas, Ronierison Maciel, Paulo Silva, Paulo R. M. Maciel
2019 conf
SysCon
Renata Dantas, Jamilson Dantas, Carlos Melo, Danilo Oliveira, Paulo R. M. Maciel
2018 conf
SysCon
Renata Dantas, Jamilson Dantas, Carlos Melo, Paulo R. M. Maciel, Gabriel Alves
2018 conf
SysCon
Carlos Melo, Jamilson Dantas, Andre Oliveira, Danilo Oliveira, Iure Fe, Jean Araujo, Rúbens de Souza Matos Júnior, Paulo R. M. Maciel
2018 C conf
ISCC
Carlos Melo, Jamilson Dantas, Danilo Oliveira, Iure Fe, Rúbens de Souza Matos Júnior, Renata Dantas, Ronierison Maciel, Paulo R. M. Maciel
2018 B conf
SMC
Jamilson Dantas, Rúbens de Souza Matos Júnior, Carlos Melo, Jean Araujo, João Ferreira, Paulo R. M. Maciel
2018 B conf
SMC
Ronierison Maciel, Jean Araujo, Carlos Melo, Jamilson Dantas, Paulo R. M. Maciel
2018 conf
SysCon
Ronierison Maciel, Jean Araujo, Jamilson Dantas, Carlos Melo, Erico A. C. Guedes, Paulo R. M. Maciel
2018
Jamilson Dantas
2017 conf
VALUETOOLS
Danilo Oliveira, Rúbens de Souza Matos Júnior, Jamilson Dantas, João Ferreira, Bruno Silva, Gustavo Callou, Paulo R. M. Maciel, André Brinkmann
2017 C conf
PRDC
Carlos Melo, Rúbens de Souza Matos Júnior, Jamilson Dantas, Paulo R. M. Maciel
2017 C conf
PRDC
Paulo R. M. Maciel, Rúbens de Souza Matos Júnior, Bruno Silva, Jair Figueiredo, Danilo Oliveira, Iure Fe, Ronierison Maciel, Jamilson Dantas
2017 J jnl
Computing
Francisco Airton Silva, Paulo Romero Martins Maciel, Eder Santana, Rúbens de Souza Matos Júnior, Jamilson Dantas
2017 J jnl
J. Grid Comput.
Rúbens de Souza Matos Júnior, Jamilson Dantas, Jean Araujo, Kishor S. Trivedi, Paulo Romero Martins Maciel
2017 B conf
SMC
Iure Fe, Rúbens de Souza Matos Júnior, Jamilson Dantas, Carlos Melo, Paulo Romero Martins Maciel
2017 B conf
SMC
Carlos Melo, Jamilson Dantas, Iure Fe, Andre Oliveira, Paulo Romero Martins Maciel
2016 J jnl
Qual. Reliab. Eng. Int.
Igor Costa, Jean Araujo, Jamilson Dantas, Eliomar Campos, Francisco Airton Silva, Paulo Romero Martins Maciel
2016 B conf
SMC
Carlos Melo, Jamilson Dantas, Jean Araujo, Paulo Romero Martins Maciel, Rodrigo Branchini, Luiz Kawakami
2016 conf
DSN Workshops
Jamilson Dantas, Rúbens de Souza Matos Júnior, Jean Araujo, Danilo Oliveira, Andre Oliveira, Paulo Romero Martins Maciel
2015 B conf
SMC
João Ferreira, Jamilson Dantas, Jean Araujo, Danilo Mendonca, Paulo Romero Martins Maciel, Gustavo Callou
2015 B conf
SMC
Renata Dantas, Jamilson Dantas, Paulo R. M. Maciel, Gabriel Alves
2015 B conf
SMC
Maria Clara Bezerra, Rosangela Melo, Jamilson Dantas, Paulo Romero Martins Maciel
2015 J jnl
Computing
Jamilson Dantas, Rúbens de Souza Matos Júnior, Jean Araujo, Paulo Romero Martins Maciel
2015 conf
DSN Workshops
Rosangela Melo, Maria Clara Bezerra, Jamilson Dantas, Rúbens de Souza Matos Júnior, Ivanildo José de Melo Filho, Paulo Romero Martins Maciel
2014 B conf
SMC
Maria Clara Bezerra, Rosangela Melo, Jamilson Dantas, Paulo Romero Martins Maciel, Francisco Vieira
2014 C conf
IPCCC
Rosangela Melo, Maria Clara Bezerra, Jamilson Dantas, Rúbens de Souza Matos Júnior, Ivanildo José de Melo Filho, Paulo Romero Martins Maciel
2014 B conf
CNSM
Rosangela Melo, Maria Clara Bezerra, Jamilson Dantas, Rúbens de Souza Matos Júnior, Ivanildo José de Melo Filho, Paulo Romero Martins Maciel
2013 B conf
SMC
João Ferreira, Gustavo Rau de Almeida Callou, Jamilson Dantas, Rafael Souza, Paulo Romero Martins Maciel
2012 B conf
SMC
Jamilson Dantas, Rúbens de Souza Matos Júnior, Jean Araujo, Paulo Romero Martins Maciel
redb/extractors/elf_extractors/elf_imports.py
← Index redb/extractors/elf_extractors/elf_imports.py python
import inspect
from datetime import datetime, timezone
from typing import Any, List, Set

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 ELFImport


class ELFImportExtractor(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_imports = None
        self.elastic_index = self.index_prefix + "-elf_imports"
        self.log.debug(inspect.currentframe().f_code.co_name)

    def _get_import_libraries(self, elf) -> List[str]:
        """Extract imported libraries from dynamic section."""
        libraries = []

        try:
            # Get the dynamic section
            dynamic_section = elf.get_section_by_name('.dynamic')
            if not dynamic_section:
                return libraries

            # Extract DT_NEEDED entries (required libraries)
            for tag in dynamic_section.iter_tags():
                if tag.entry.d_tag == 'DT_NEEDED':
                    libraries.append(tag.needed)

        except Exception as e:
            self.log.error(f"Error extracting import libraries: {e}")

        return libraries

    def _get_imported_functions_from_symbols(self, elf) -> Set[str]:
        """Extract imported functions from dynamic symbol table."""
        imported_functions = set()

        try:
            # Get the dynamic symbol table
            dynsym_section = elf.get_section_by_name('.dynsym')
            if not dynsym_section or not hasattr(dynsym_section, 'iter_symbols'):
                return imported_functions

            # Look for undefined symbols (imports)
            for symbol in dynsym_section.iter_symbols():
                # Check if symbol is undefined (imported)
                if (symbol.entry.get('st_shndx', 0) == 'SHN_UNDEF' and
                    symbol.name and
                    symbol.entry.get('st_info', {}).get('bind') in ['STB_GLOBAL', 'STB_WEAK']):
                    imported_functions.add(symbol.name)

        except Exception as e:
            self.log.error(f"Error extracting imported functions from symbols: {e}")

        return imported_functions

    def _get_imported_functions_from_relocations(self, elf) -> Set[str]:
        """Extract imported functions from relocation sections."""
        imported_functions = set()

        try:
            # Look through relocation sections
            for section in elf.iter_sections():
                if hasattr(section, 'iter_relocations'):
                    try:
                        for relocation in section.iter_relocations():
                            # Get symbol associated with relocation
                            if hasattr(relocation, 'symbol') and relocation.symbol:
                                symbol_name = relocation.symbol.name
                                if symbol_name:
                                    imported_functions.add(symbol_name)
                    except Exception as e:
                        self.log.debug(f"Could not process relocations in section {section.name}: {e}")

        except Exception as e:
            self.log.error(f"Error extracting imported functions from relocations: {e}")

        return imported_functions

    def _get_plt_functions(self, elf) -> Set[str]:
        """Extract functions from PLT (Procedure Linkage Table) sections."""
        plt_functions = set()

        try:
            # Look for PLT-related sections
            plt_sections = ['.plt', '.plt.got', '.plt.sec']

            for section_name in plt_sections:
                section = elf.get_section_by_name(section_name)
                if section:
                    # PLT functions are typically associated with relocations
                    # We'll get them from the relocation analysis
                    pass

        except Exception as e:
            self.log.error(f"Error extracting PLT functions: {e}")

        return plt_functions

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

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

            def extract_data(elf):
                # Extract import libraries
                import_libraries = self._get_import_libraries(elf)

                # Extract imported functions from multiple sources
                imported_functions = set()

                # From dynamic symbols
                symbol_imports = self._get_imported_functions_from_symbols(elf)
                imported_functions.update(symbol_imports)

                # From relocations
                relocation_imports = self._get_imported_functions_from_relocations(elf)
                imported_functions.update(relocation_imports)

                # From PLT
                plt_imports = self._get_plt_functions(elf)
                imported_functions.update(plt_imports)

                # Convert to sorted lists for consistent output
                import_libraries_list = sorted(list(set(import_libraries)))
                import_functions_list = sorted(list(imported_functions))

                # Return ELFImport dataclass
                return ELFImport(
                    elf_imports_total=len(import_functions_list),
                    elf_import_libraries=import_libraries_list,
                    elf_import_functions=import_functions_list,
                )

            if not self._is_elf_file():
                return None

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

            self.elf_imports = result
            return self.elf_imports

        except Exception as e:
            self.log.error(f"Error extracting ELF imports {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_imports
        elif exporter_type == "ClickHouseExporter":
            try:
                if not self.elf_imports:
                    return None

                # Prepare data array
                data = [[
                    self.sha256,
                    self.md5,
                    self.sha1,
                    self.elf_imports.elf_imports_total,
                    self.elf_imports.elf_import_libraries,
                    self.elf_imports.elf_import_functions,
                    datetime.now(timezone.utc)
                ]]

                column_names = [
                    'sha256', 'md5', 'sha1',
                    'elf_imports_total',
                    'elf_import_libraries',
                    'elf_import_functions',
                    'analysis_date'
                ]

                column_type_names = [
                    'FixedString(64)', 'FixedString(32)', 'FixedString(40)',
                    'UInt32',
                    'Array(LowCardinality(String))',
                    'Array(LowCardinality(String))',
                    '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_imports"