Valerio Tramutoli

52 papers C 14Journal 31Unranked 7
YearRankTypeTitle / Venue / Authors
2025 conf
JURSE
Mohammad Kazemi Garajeh, Valeria Satriano, Christian Geiß, Hannes Taubenböck, Annibale Guariglia, Parivash Paridad, Raffaele Santangelo, Valerio Tramutoli
2024 J jnl
Remote. Sens.
Mohammad Kazemi Garajeh, Rojin Akbari, Sepide Aghaei Chaleshtori, Mohammad Shenavaei Abbasi, Valerio Tramutoli, Samsung Lim, Amin Sadeqi
2024 J jnl
Remote. Sens.
Valeria Satriano, Emanuele Ciancia, Nicola Pergola, Valerio Tramutoli
2024 C conf
IGARSS
Mohammad Kazemi Garajeh, Annibale Guariglia, Parivash Paridad, Raffaele Santangelo, Valeria Satriano, Valerio Tramutoli
2024 J jnl
Remote. Sens.
Mohammad Kazemi Garajeh, Rojin Akbari, Sepide Aghaei Chaleshtori, Mohammad Shenavaei Abbasi, Valerio Tramutoli, Samsung Lim, Amin Sadeqi
2023 J jnl
Remote. Sens.
Valeria Satriano, Emanuele Ciancia, Carolina Filizzola, Nicola Genzano, Teodosio Lacava, Valerio Tramutoli
2023 C conf
IGARSS
Francesco Di Paola, Domenico Cimini, Maria Pia De Natale, Donatello Gallucci, Edoardo Geraldi, Sabrina Gentile, Nicola Genzano, Salvatore Larosa, Saverio T. Nilo, Elisabetta Ricciardelli, Filomena Romano, Valerio Tramutoli, Mariassunta Viggiano
2022 J jnl
Remote. Sens.
Francesco Marchese, Carolina Filizzola, Teodosio Lacava, Alfredo Falconieri, Mariapia Faruolo, Nicola Genzano, Giuseppe Mazzeo, Carla Pietrapertosa, Nicola Pergola, Valerio Tramutoli, Marco Neri
2022 J jnl
Remote. Sens.
Carolina Filizzola, Angelo Corrado, Nicola Genzano, Mariano Lisi, Nicola Pergola, Roberto Colonna, Valerio Tramutoli
2021 J jnl
Int. J. Appl. Earth Obs. Geoinformation
Sophia Peleli, Maria Kouli, Francesco Marchese, Teodosio Lacava, Filippos Vallianatos, Valerio Tramutoli
2021 J jnl
Remote. Sens.
Francesco Marchese, Carolina Filizzola, Teodosio Lacava, Alfredo Falconieri, Mariapia Faruolo, Nicola Genzano, Giuseppe Mazzeo, Carla Pietrapertosa, Nicola Pergola, Valerio Tramutoli, Marco Neri
2021 J jnl
Remote. Sens.
Emanuele Ciancia, Teodosio Lacava, Nicola Pergola, Vincenzo Vellucci, David Antoine, Valeria Satriano, Valerio Tramutoli
2020 J jnl
Remote. Sens.
Emanuele Ciancia, Alessandra Campanelli, Teodosio Lacava, Angelo Palombo, Simone Pascucci, Nicola Pergola, Stefano Pignatti, Valeria Satriano, Valerio Tramutoli
2020 J jnl
Remote. Sens.
Mariapia Faruolo, Teodosio Lacava, Nicola Pergola, Valerio Tramutoli
2020 J jnl
Remote. Sens.
Alfredo Falconieri, Nikolaos Papagiannopoulos, Francesco Marchese, Carolina Filizzola, Serena Trippetta, Nicola Pergola, Gelsomina Pappalardo, Valerio Tramutoli, Lucia Mona
2019 J jnl
Remote. Sens.
Valeria Satriano, Emanuele Ciancia, Teodosio Lacava, Nicola Pergola, Valerio Tramutoli
2019 J jnl
Sensors
Francesco Marchese, Alfredo Falconieri, Carolina Filizzola, Nicola Pergola, Valerio Tramutoli
2019 J jnl
Remote. Sens.
Teodosio Lacava, Emanuele Ciancia, Mariapia Faruolo, Nicola Pergola, Valeria Satriano, Valerio Tramutoli
2018 J jnl
Remote. Sens.
Teodosio Lacava, Matthieu Kervyn, Mariangela Liuzzi, Francesco Marchese, Nicola Pergola, Valerio Tramutoli
2018 J jnl
Sensors
Alfredo Falconieri, Michael C. Cooke, Carolina Filizzola, Francesco Marchese, Nicola Pergola, Valerio Tramutoli
2018 J jnl
Remote. Sens.
Teodosio Lacava, Emanuele Ciancia, Carmine Di Polito, Alice Madonia, Simone Pascucci, Nicola Pergola, Viviana Piermattei, Valeria Satriano, Valerio Tramutoli
2018 J jnl
Remote. Sens.
Francesco Marchese, Alfredo Falconieri, Nicola Pergola, Valerio Tramutoli
2018 J jnl
Sensors
Mariapia Faruolo, Teodosio Lacava, Nicola Pergola, Valerio Tramutoli
2018 J jnl
Remote. Sens.
Francesco Marchese, Marco Neri, Alfredo Falconieri, Teodosio Lacava, Giuseppe Mazzeo, Nicola Pergola, Valerio Tramutoli
2017 J jnl
Remote. Sens.
Teodosio Lacava, Emanuele Ciancia, Irina Coviello, Carmine Di Polito, Caterina Livia Sara Grimaldi, Nicola Pergola, Valeria Satriano, Marouane Temimi, Jun Zhao, Valerio Tramutoli
2017 J jnl
Remote. Sens.
Francesco Marchese, Filomena Sannazzaro, Alfredo Falconieri, Carolina Filizzola, Nicola Pergola, Valerio Tramutoli
2017 J jnl
IEEE J. Sel. Top. Appl. Earth Obs. Remote. Sens.
Francesco Marchese, Giuseppe Mazzeo, Carolina Filizzola, Irina Coviello, Alfredo Falconieri, Teodosio Lacava, Rossana Paciello, Nicola Pergola, Valerio Tramutoli
2016 J jnl
Environ. Model. Softw.
Rossana Paciello, Irina Coviello, P. B. Powell, Angelo Donvito, Carolina Filizzola, Nicola Genzano, Mariano Lisi, Nicola Pergola, G. Sileo, Valerio Tramutoli
2016 J jnl
Remote. Sens.
Carmine Di Polito, Emanuele Ciancia, Irina Coviello, David Doxaran, Teodosio Lacava, Nicola Pergola, Valeria Satriano, Valerio Tramutoli
2014 J jnl
IEEE J. Sel. Top. Appl. Earth Obs. Remote. Sens.
Teodosio Lacava, Francesco Marchese, Gianluca Arcomano, Irina Coviello, Alfredo Falconieri, Mariapia Faruolo, Nicola Pergola, Valerio Tramutoli
2013 J jnl
IEEE Trans. Geosci. Remote. Sens.
Mariapia Faruolo, Irina Coviello, Teodosio Lacava, Nicola Pergola, Valerio Tramutoli
2013 J jnl
IEEE Trans. Geosci. Remote. Sens.
Teodosio Lacava, Irina Coviello, Mariapia Faruolo, Giuseppe Mazzeo, Nicola Pergola, Valerio Tramutoli
2012 J jnl
IEEE Trans. Geosci. Remote. Sens.
Teodosio Lacava, Patrick Matgen, Luca Brocca, Marco Bittelli, Nicola Pergola, Tommaso Moramarco, Valerio Tramutoli
2012 C conf
IGARSS
Marouane Temimi, Teodosio Lacava, Irina Coviello, Mariapia Faruolo, Reza Khanbilvardi, Nicola Pergola, Valerio Tramutoli, Donna Wang
2012 C conf
IGARSS
Teodosio Lacava, Irina Coviello, Mariapia Faruolo, Giuseppe Mazzeo, Nicola Pergola, Valerio Tramutoli
2012 C conf
IGARSS
Teodosio Lacava, Luca Brocca, Mariapia Faruolo, Patrick Matgen, Tommaso Moramarco, Nicola Pergola, Valerio Tramutoli
2012 C conf
IGARSS
Valerio Tramutoli, Sedat Inan, Norbert Jakowski, Sergey Pulinets, Alexey Romanov, Carolina Filizzola, Irk Shagimuratov, Nicola Pergola, Nicola Genzano, Carmine Serio, Mariano Lisi, Rosita Corrado, Caterina Livia Sara Grimaldi, Mariapia Faruolo, Rosa Maria Petracca Altieri, Semih Ergintav, Ziyadin Çakir, Erhan Alparslan, Selime Gurol, Mohammed Mainul Hoque, Klaus-Dieter Missling, Volker Wilken, Claudia Borries, Yuri Kalilnin, Konstantin Tsybulia, E. Ginzburg, Anatoly Pokhunkov, Liubov Pustivalova, Alexander Romanov, Igor V. Cherny, Sergei Trusov, Anna Adjalova, Denis Ermolaev, Sergey Bobrovsky, Rossana Paciello, Irina Coviello, Alfredo Falconieri, Irina Zakharenkova, Yuri Cherniak, Alexander Radievsky, Vincenzo Lapenna, Marianna Balasco, Sabatino Piscitelli, Teodosio Lacava, Giuseppe Mazzeo
2012 C conf
IGARSS
Mariapia Faruolo, Emanuele Ciancia, Irina Coviello, Teodosio Lacava, Nicola Pergola, Valerio Tramutoli
2010 C conf
IGARSS
Teodosio Lacava, Irina Coviello, Nicola Pergola, Valerio Tramutoli
2010 C conf
IGARSS
Valerio Tramutoli, Carolina Filizzola, Francesco Marchese, Giuseppe Mazzeo, Rossana Paciello, Nicola Pergola, Carla Pietrapertosa, Carla Sannazzaro
2010 C conf
IGARSS
Nicola Genzano, Rosita Corrado, Irina Coviello, Caterina Livia Sara Grimaldi, Carolina Filizzola, Teodosio Lacava, Mariano Lisi, Francesco Marchese, Giuseppe Mazzeo, Rossana Paciello, Nicola Pergola, Valerio Tramutoli
2010 J jnl
Remote. Sens.
Francesco Marchese, Maurizio Ciampa, Carolina Filizzola, Teodosio Lacava, Giuseppe Mazzeo, Nicola Pergola, Valerio Tramutoli
2010 C conf
IGARSS
Mariapia Faruolo, Irina Coviello, Teodosio Lacava, Nicola Pergola, Valerio Tramutoli
2010 C conf
IGARSS
Teodosio Lacava, Irina Coviello, Giuseppe Mazzeo, Nicola Pergola, Valerio Tramutoli
2010 C conf
IGARSS
Francesco Marchese, Carolina Filizzola, Giuseppe Mazzeo, Rossana Paciello, Nicola Pergola, Valerio Tramutoli
2010 C conf
IGARSS
Caterina Livia Sara Grimaldi, Daniele Casciello, Irina Coviello, Teodosio Lacava, Nicola Pergola, Valerio Tramutoli
2009 conf
IGARSS (3)
Teodosio Lacava, Giovanni Calice, Irina Coviello, Giuseppe Mazzeo, Nicola Pergola, Valerio Tramutoli
2009 conf
IGARSS (4)
Valerio Tramutoli, Carolina Filizzola, Rossana Paciello, Nicola Pergola, Carla Pietrapertosa, Giuseppe Mazzeo
2009 conf
IGARSS (4)
Caterina Livia Sara Grimaldi, Irina Coviello, Teodosio Lacava, Nicola Pergola, Valerio Tramutoli
2009 conf
IGARSS (4)
Mariapia Faruolo, Irina Coviello, Teodosio Lacava, Nicola Pergola, Valerio Tramutoli
2009 conf
IGARSS (3)
Carolina Aliano, Rosita Corrado, Carolina Filizzola, Nicola Genzano, Vito Lanorte, Giuseppe Mazzeo, Nicola Pergola, Valerio Tramutoli
2009 conf
IGARSS (2)
Francesco Marchese, Carolina Filizzola, Giuseppe Mazzeo, Rossana Paciello, Nicola Pergola, Valerio Tramutoli
redb/extractors/decompiler/bninja/similarity/minhasher.py
← Index redb/extractors/decompiler/bninja/similarity/minhasher.py python
import logging
import random
from enum import Enum

from ..analysis.medium_level_normalization import MediumLevelNormalization

try:
    from .minhashcustom import MinHashCustom
    from ..analysis.low_level_normalization import LowLevelNormalization
except ImportError:
    # Fallback to absolute imports (for multiprocessing spawned processes)
    from redb.extractors.decompiler.bninja.similarity.minhashcustom import MinHashCustom
    from redb.extractors.decompiler.bninja.analysis.low_level_normalization import LowLevelNormalization

## Values for this configuration were extracted from https://github.com/danielplohmann/mcrit/blob/main/mcrit/config/MinHashConfig.py#L10
# Length in number of Shingles of which a minhash consists
# this value represents the length of sha256sum hash truncated
MINHASH_SIGNATURE_LENGTH: int = 64
# Number of bits per signature element (1-32 bits)
MINHASH_SIGNATURE_BITS: int = 8


class TokenKind(Enum):
    LLIL = "llil"
    TYPED_LLIL = "typed_llil"
    MLIL = "mlil"
    TYPED_MLIL = "typed_mlil"


class MinHasher:
    # stick to the default method
    MINHASH_STRATEGY_HASH_ALL = 1

    def __init__(self, seed, il_function, kind: TokenKind = TokenKind.LLIL):
        self._minhash_seeds = []
        self.il_func = il_function
        self.kind = kind
        self._minhash_permutation = []
        self._signature_segments = []
        self._initMinhashing(seed)

    def _initMinhashing(self, MINHASH_SEED=None):
        random.seed(MINHASH_SEED)
        # init sequence of seeds
        self._minhash_seeds = [
            random.randint(0, MinHashCustom.getHashMax()) for _ in range(MINHASH_SIGNATURE_LENGTH)
        ]

    def make_ngrams(self, tokens, n=3):
        """Take the ngrams of the IL we try to pass into the functions"""
        return [tuple(tokens[i:i+n]) for i in range(len(tokens) - n + 1)]

    def _extract_tokens(self):
        """Extract the IL tokens from the IL function, picking the right
        normalizer (LLIL/MLIL) and the right normalization mode
        (skeleton/typed) based on self.kind."""
        if self.kind in (TokenKind.LLIL, TokenKind.TYPED_LLIL):
            normalizer = LowLevelNormalization()
        elif self.kind in (TokenKind.MLIL, TokenKind.TYPED_MLIL):
            normalizer = MediumLevelNormalization()
        else:
            raise ValueError(f"Unsupported token kind: {self.kind}")

        # typed variants include operand type info, skeleton variants don't
        if self.kind in (TokenKind.TYPED_LLIL, TokenKind.TYPED_MLIL):
            normalize = normalizer.normalize_instr_with_operands
        else:
            normalize = normalizer.normalize_instruction_all_levels

        instructions = []
        for basic_block in self.il_func.basic_blocks:
            for il in basic_block:
                instructions.append(normalize(il))

        return instructions

    def calculateMinHash(self):
        """Calculate hash function every time, then take minimum shingle per shingler"""
        minhash_result = MinHashCustom(minhash_bits=MINHASH_SIGNATURE_BITS)
        minhash_signature = []

        tokens = self._extract_tokens()
        shingles = self.make_ngrams(tokens, n=3)

        # Functions with fewer than 3 IL instructions can't produce n-grams
        # Return empty minhash for such small functions (thunks, stubs, etc.)
        # Triggered by 39d8ad95b0323c37bd3134ab93ac4af44c66a1a8443a41c1ac02cec19bb2816a
        if not shingles:
            return []

        # Generate the MinHash
        for seed in self._minhash_seeds:
            hashed_shingles = [
                self.shingle_hash(shingle, seed) for shingle in shingles
            ]
            min_value = min(hashed_shingles)

            if MINHASH_SIGNATURE_BITS < 32:
                min_value %= (2 ** MINHASH_SIGNATURE_BITS)

            minhash_signature.append(min_value)

        minhash_result.setMinHash(minhash_signature)
        return minhash_result.getMinHashInt()

    def shingle_hash(self, shingle, hash_seed=0):
        """Produce a single 32bit UINT hash for a given shingle"""
        return MinHashCustom.hashData(shingle, hash_seed)