Jaelson Brelaz de Castro

35 papers A 1C 1Misc 2Journal 2Unranked 26
YearRankTypeTitle / Venue / Authors
2023 conf
WER
Luiza Lira, Maria Lencastre, João Henrique Pimentel, Jaelson Brelaz de Castro, Mônica Bandeira
2015 Misc conf
SAC
Jéssyka Vilela, Jaelson Brelaz de Castro, João Pimentel, Monique Soares, Paulo Cavalcanti, Márcia Lucena
2015 conf
SBCARS
Jéssyka Vilela, Bruno Figueiredo, Jaelson Brelaz de Castro, Monique Soares, Enyo José Tavares Gonçalves
2015 conf
SBCARS
Gabriela Guedes, Carla T. L. L. Silva, Monique Soares, Jaelson Brelaz de Castro
2012 A conf
ER
Robson do Nascimento Fidalgo, Elvis Maranhão De Souza, Sergio España, Jaelson Brelaz de Castro, Oscar Pastor
2011 ed.
iStar
Jaelson Brelaz de Castro, Xavier Franch, John Mylopoulos, Eric S. K. Yu
2011 Misc conf
SAC
Ricardo Argenton Ramos, Jaelson Brelaz de Castro, João Araújo, Fernanda M. R. Alencar
2010 ed.
iStar
Jaelson Brelaz de Castro, Xavier Franch, John Mylopoulos, Eric S. K. Yu
2008 conf
CIbSE
Genésio Gomes da Cruz Neto, Alex Sandro Gomes, Jaelson Brelaz de Castro
2008 conf
CIbSE
Ricardo Argenton Ramos, Jaelson Brelaz de Castro, João Araújo, Ana Moreira, Fernanda M. R. Alencar, Rosângela Dellosso Penteado
2008 conf
ICEIS (3-1)
Fernanda M. R. Alencar, Carla T. L. L. Silva, Márcia Lucena, Jaelson Brelaz de Castro, Emanuel Santos, Ricardo Argenton Ramos
2008 ed.
iStar
Jaelson Brelaz de Castro, Xavier Franch, Anna Perini, Eric S. K. Yu
2008 C conf
SEKE
Carla T. L. L. Silva, Fernanda M. R. Alencar, João Araújo, Ana Moreira, Jaelson Brelaz de Castro
2008 conf
iStar
Fernanda M. R. Alencar, Jaelson Brelaz de Castro, Cleviton Monteiro, Ricardo Argenton Ramos, Emanuel Santos
2007 conf
CIbSE
Victor Francisco Araya Santander, André Abe Vicente, Fabio G. Köerich, Jaelson Brelaz de Castro
2007 conf
CIbSE
Victor Francisco Araya Santander, Dorisvaldo Rodrigues da Silva, André Abe Vicente, Jaelson Brelaz de Castro
2007 conf
WER
Ricardo Argenton Ramos, Fernanda M. R. Alencar, João Araújo, Ana Moreira, Jaelson Brelaz de Castro, Rosângela Dellosso Penteado
2006 conf
WER
Carina Frota Alves, Silvia Pereira, Jaelson Brelaz de Castro
2006 conf
AOIS
Fernanda M. R. Alencar, Jaelson Brelaz de Castro, Ana Moreira, João Araújo, Carla T. L. L. Silva, Ricardo Argenton Ramos, John Mylopoulos
2006 conf
JISBD
Carla T. L. L. Silva, João Araújo, Ana Moreira, Jaelson Brelaz de Castro, Fernanda M. R. Alencar, Ricardo Argenton Ramos
2006 conf
CAiSE Forum
Carla T. L. L. Silva, Jaelson Brelaz de Castro, João Araújo, Ana Moreira, Fernanda M. R. Alencar, Ricardo Argenton Ramos
2005 conf
WER
Ricardo Argenton Ramos, Jaelson Brelaz de Castro
2005 conf
CAiSE Short Paper Proceedings
Lúcia R. D. Bastos, Jaelson Brelaz de Castro
2004 conf
WER
Lúcia R. D. Bastos, Jaelson Brelaz de Castro
2004 conf
WER
Genésio Gomes da Cruz Neto, Alex Sandro Gomes, Jaelson Brelaz de Castro
2004 J jnl
ACM SIGSOFT Softw. Eng. Notes
Ricardo Choren, Alessandro Garcia, Carlos José Pereira de Lucena, Martin L. Griss, David Chenho Kung, Naftaly H. Minsky, Alexander B. Romanovsky, Jaelson Brelaz de Castro, Rogério de Lemos, Danny Weyns
2004 conf
SELMAS
Lúcia R. D. Bastos, Jaelson Brelaz de Castro
2003 conf
SBES
Geórgia Maria C. de Sousa, Ismênia G. L. da Silva, Jaelson Brelaz de Castro
2003 conf
STRAW
Carla T. L. L. Silva, Jaelson Brelaz de Castro, John Mylopoulos
2003 conf
STRAW
Lúcia R. D. Bastos, Jaelson Brelaz de Castro, John Mylopoulos
2003 conf
WER
Lúcia R. D. Bastos, Jaelson Brelaz de Castro
2003 J jnl
ACM SIGSOFT Softw. Eng. Notes
Alessandro Garcia, José Alberto R. P. Sardinha, Carlos José Pereira de Lucena, Jaelson Brelaz de Castro, Julio César Sampaio do Prado Leite, Ruy Luiz Milidiú, Alexander B. Romanovsky, Martin L. Griss, Rogério de Lemos, Anna Perini
2002 conf
SBES
Fábio Rilston Silva Paim, Ana Elizabete Souza de Carvalho, Jaelson Brelaz de Castro
2000 conf
WER
Márcia Santos, Maria Lencastre, Jaelson Brelaz de Castro, Décio Fonseca
1993 conf
SBES
Renato Silva Cabral, Sandra de Albuquerque Jansen, Patrícia Porto Carreiro, Jaelson Brelaz de Castro
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"