Igor Melatti

70 papers A* 2B 5C 11Misc 1Journal 32Unranked 18
YearRankTypeTitle / Venue / Authors
2025 J jnl
CoRR
Giuseppe Della Penna, Igor Melatti
2023 J jnl
CoRR
Toni Mancini, Igor Melatti, Enrico Tronci
2023 J jnl
IEEE Trans. Software Eng.
Toni Mancini, Igor Melatti, Enrico Tronci
2022 J jnl
IEEE Trans. Ind. Electron.
Igor Melatti, Federico Mari, Toni Mancini, Milan Prodanovic, Enrico Tronci
2022 J jnl
IEEE Trans. Software Eng.
Toni Mancini, Igor Melatti, Enrico Tronci
2021 J jnl
Appl. Artif. Intell.
Federico Mari, Annalisa Massini, Igor Melatti, Enrico Tronci
2021 J jnl
CoRR
Igor Melatti, Federico Mari, Toni Mancini, Milan Prodanovic, Enrico Tronci
2021 J jnl
CoRR
Toni Mancini, Igor Melatti, Enrico Tronci
2021 J jnl
CoRR
Qian Matteo Chen, Alberto Finzi, Toni Mancini, Igor Melatti, Enrico Tronci
2021 J jnl
J. Log. Algebraic Methods Program.
Toni Mancini, Federico Mari, Annalisa Massini, Igor Melatti, Enrico Tronci
2021 J jnl
CoRR
Toni Mancini, Federico Mari, Igor Melatti, Ivano Salvo, Enrico Tronci, Jorn Klaas Gruber, Barry P. Hayes, Milan Prodanovic, Lars Elmegaard
2021 J jnl
Inf.
Igor Melatti, Federico Mari, Ivano Salvo, Enrico Tronci
2020 conf
OVERLAY
Igor Melatti, Vadim Alimguzhin, Federico Mari, Milan Prodanovic, Barry P. Hayes
2020 J jnl
Fundam. Informaticae
Qian Matteo Chen, Alberto Finzi, Toni Mancini, Igor Melatti, Enrico Tronci
2020 conf
OVERLAY
Qian Matteo Chen, Toni Mancini, Igor Melatti, Enrico Tronci, Alberto Finzi
2019 conf
OVERLAY@AI*IA
Vadim Alimguzhin, Federico Mari, Igor Melatti
2018 C conf
ISMIS
Toni Mancini, Federico Mari, Igor Melatti, Ivano Salvo, Enrico Tronci
2018 conf
RCRA@FLoC
Toni Mancini, Federico Mari, Annalisa Massini, Igor Melatti, Ivano Salvo, Stefano Sinisi, Enrico Tronci, Rainald Ehrig, Susanna Röblitz, Brigitte Leeners
2018 conf
SmartGridComm
Toni Mancini, Federico Mari, Igor Melatti, Ivano Salvo, Enrico Tronci, Jorn Klaas Gruber, Barry P. Hayes, Milan Prodanovic, Lars Elmegaard
2017 J jnl
IEEE Trans. Autom. Control.
Vadim Alimguzhin, Federico Mari, Igor Melatti, Ivano Salvo, Enrico Tronci
2017 J jnl
Inf. Process. Lett.
Toni Mancini, Federico Mari, Annalisa Massini, Igor Melatti, Ivano Salvo, Enrico Tronci
2017 J jnl
IEEE Trans. Smart Grid
Barry Patrick Hayes, Igor Melatti, Toni Mancini, Milan Prodanovic, Enrico Tronci
2016 J jnl
Microprocess. Microsystems
Toni Mancini, Federico Mari, Annalisa Massini, Igor Melatti, Enrico Tronci
2016 J jnl
Fundam. Informaticae
Toni Mancini, Federico Mari, Annalisa Massini, Igor Melatti, Enrico Tronci
2015 C conf
DSD
Vadim Alimguzhin, Federico Mari, Igor Melatti, Enrico Tronci, Emad Samuel Malki Ebeid, Søren Aagaard Mikkelsen, Rune Hylsberg Jacobsen, Jorn Klaas Gruber, Barry P. Hayes, Francisco Huerta, Milan Prodanovic
2015 conf
IWBBIO (2)
Toni Mancini, Enrico Tronci, Ivano Salvo, Federico Mari, Annalisa Massini, Igor Melatti
2015 conf
GandALF
Toni Mancini, Federico Mari, Annalisa Massini, Igor Melatti, Enrico Tronci
2015 C conf
PDP
Toni Mancini, Federico Mari, Annalisa Massini, Igor Melatti, Enrico Tronci
2015 C conf
DSD
Toni Mancini, Federico Mari, Igor Melatti, Ivano Salvo, Enrico Tronci, Jorn Klaas Gruber, Barry Patrick Hayes, Milan Prodanovic, Lars Elmegaard
2014 C conf
DSD
Toni Mancini, Federico Mari, Annalisa Massini, Igor Melatti, Enrico Tronci
2014 conf
SmartGridComm
Toni Mancini, Federico Mari, Igor Melatti, Ivano Salvo, Enrico Tronci, Jorn Klaas Gruber, Barry P. Hayes, Milan Prodanovic, Lars Elmegaard
2014 J jnl
ACM Trans. Softw. Eng. Methodol.
Federico Mari, Igor Melatti, Ivano Salvo, Enrico Tronci
2014 B conf
FMCAD
Enrico Tronci, Toni Mancini, Ivano Salvo, Stefano Sinisi, Federico Mari, Igor Melatti, Annalisa Massini, Francesco Davì, Thomas Dierkes, Rainald Ehrig, Susanna Röblitz, Brigitte Leeners, Tillmann H. C. Kruger, Marcel Egli, Fabian Ille
2014 C conf
PDP
Toni Mancini, Federico Mari, Annalisa Massini, Igor Melatti, Enrico Tronci
2013 conf
SPIN
Vadim Alimguzhin, Federico Mari, Igor Melatti, Ivano Salvo, Enrico Tronci
2013 J jnl
Mob. Inf. Syst.
Federico Mari, Igor Melatti, Enrico Tronci, Alberto Finzi
2013 J jnl
Eur. J. Control
Giuseppe Della Penna, Benedetto Intrigila, Daniele Magazzeni, Igor Melatti, Enrico Tronci
2013 conf
SPIN
Vadim Alimguzhin, Federico Mari, Igor Melatti, Ivano Salvo, Enrico Tronci
2013 A* conf
CAV
Toni Mancini, Federico Mari, Annalisa Massini, Igor Melatti, Fabio Merli, Enrico Tronci
2012 J jnl
CoRR
Vadim Alimguzhin, Federico Mari, Igor Melatti, Ivano Salvo, Enrico Tronci
2012 J jnl
CoRR
Vadim Alimguzhin, Federico Mari, Igor Melatti, Ivano Salvo, Enrico Tronci
2012 conf
CDC
Vadim Alimguzhin, Federico Mari, Igor Melatti, Ivano Salvo, Enrico Tronci
2012 J jnl
CoRR
Vadim Alimguzhin, Federico Mari, Igor Melatti, Ivano Salvo, Enrico Tronci
2012 Misc conf
EMSOFT
Vadim Alimguzhin, Federico Mari, Igor Melatti, Ivano Salvo, Enrico Tronci
2012 C conf
ICTAC
Federico Mari, Igor Melatti, Ivano Salvo, Enrico Tronci
2011 J jnl
CoRR
Federico Mari, Igor Melatti, Ivano Salvo, Enrico Tronci
2011 J jnl
CoRR
Federico Mari, Igor Melatti, Ivano Salvo, Enrico Tronci
2011 J jnl
CoRR
Federico Mari, Igor Melatti, Ivano Salvo, Enrico Tronci
2010 A* conf
CAV
Federico Mari, Igor Melatti, Ivano Salvo, Enrico Tronci
2009 C conf
SSS
Federico Mari, Igor Melatti, Ivano Salvo, Enrico Tronci, Lorenzo Alvisi, Allen Clement, Harry C. Li
2009 J jnl
Int. J. Softw. Tools Technol. Transf.
Igor Melatti, Robert Palmer, Geoffrey Sawaya, Yu Yang, Robert M. Kirby, Ganesh Gopalakrishnan
2009 C conf
CRiSIS
Andrea Bobbio, Ester Ciancamerla, Saverio Di Blasi, Alessandro Iacomini, Federico Mari, Igor Melatti, Michele Minichino, Alessandro Scarlatti, Enrico Tronci, Roberta Terruggia, Emilio Zendri
2008 B conf
FMCAD
Federico Mari, Igor Melatti, Ivano Salvo, Enrico Tronci, Lorenzo Alvisi, Allen Clement, Harry C. Li
2007 J jnl
Comput. Methods Programs Biomed.
Benedetto Intrigila, Igor Melatti, Alberto Tofani, Guido Macchiarelli
2007 C conf
APSEC
Fernando Brizzolari, Igor Melatti, Enrico Tronci, Giuseppe Della Penna
2006 C conf
FDL
Giuseppe Della Penna, Alberto Tofani, Marcello Pecorari, Orazio Raparelli, Benedetto Intrigila, Igor Melatti, Enrico Tronci
2006 conf
ICINCO-ICSO
Giuseppe Della Penna, Daniele Magazzeni, Alberto Tofani, Benedetto Intrigila, Igor Melatti, Enrico Tronci
2006 J jnl
Int. J. Softw. Tools Technol. Transf.
Giuseppe Della Penna, Benedetto Intrigila, Igor Melatti, Enrico Tronci, Marisa Venturini Zilli
2006 J jnl
Data Knowl. Eng.
Giuseppe Della Penna, Antinisca Di Marco, Benedetto Intrigila, Igor Melatti, Alfonso Pierantonio
2006 conf
SPIN
Igor Melatti, Robert Palmer, Geoffrey Sawaya, Yu Yang, Robert M. Kirby, Ganesh Gopalakrishnan
2005 conf
CIMCA/IAWTIC
Benedetto Intrigila, Daniele Magazzeni, Igor Melatti, Enrico Tronci
2005
Igor Melatti
2005 B conf
ATVA
Giuseppe Della Penna, Igor Melatti, Benedetto Intrigila, Enrico Tronci
2004 B conf
FMCAD
Giuseppe Della Penna, Benedetto Intrigila, Igor Melatti, Enrico Tronci, Marisa Venturini Zilli
2004 J jnl
Int. J. Softw. Tools Technol. Transf.
Giuseppe Della Penna, Benedetto Intrigila, Igor Melatti, Enrico Tronci, Marisa Venturini Zilli
2003 conf
HSCC
Giuseppe Della Penna, Benedetto Intrigila, Igor Melatti, Michele Minichino, Ester Ciancamerla, Andrea Parisse, Enrico Tronci, Marisa Venturini Zilli
2003 conf
CHARME
Giuseppe Della Penna, Benedetto Intrigila, Igor Melatti, Enrico Tronci, Marisa Venturini Zilli
2003 conf
ICTCS
Giuseppe Della Penna, Benedetto Intrigila, Igor Melatti, Enrico Tronci, Marisa Venturini Zilli
2003 conf
CHARME
Giuseppe Della Penna, Benedetto Intrigila, Igor Melatti, Enrico Tronci, Marisa Venturini Zilli
2003 B conf
FASE
Giuseppe Della Penna, Antinisca Di Marco, Benedetto Intrigila, Igor Melatti, Alfonso Pierantonio
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"