Chandra Bortolotto

12 papers Journal 10Unranked 2
YearRankTypeTitle / Venue / Authors
2025 J jnl
CoRR
Mahshid Shiri, Chandra Bortolotto, Alessandro Bruno, Alessio Consonni, Daniela Maria Grasso, Leonardo Brizzi, Daniele Loiacono, Lorenzo Preda
2025 J jnl
BMC Medical Informatics Decis. Mak.
Ermanno Cordelli, Paolo Soda, Sara Citter, Elia Schiavon, Christian Salvatore, Deborah Fazzini, Greta Clementi, Michaela Cellina, Andrea Cozzi, Chandra Bortolotto, Lorenzo Preda, Luisa Francini, Matteo Tortora, Isabella Castiglioni, Sergio Papa, Diego Sona, Marco Alì
2025 J jnl
BMC Medical Informatics Decis. Mak.
Laura Bergomi, Giovanna Nicora, Marta Anna Orlowska, Chiara Podrecca, Riccardo Bellazzi, Caterina Fregosi, Francesco Salinaro, Marco Bonzano, Giuseppe Crescenzi, Francesco Speciale, Santi Di Pietro, Valentina Zuccaro, Erika Asperges, Paolo Sacchi, Pietro Valsecchi, Elisabetta Pagani, Michele Catalano, Chandra Bortolotto, Lorenzo Preda, Enea Parimbelli
2024 J jnl
J. Imaging
Giovanna Nicora, Michele Catalano, Chandra Bortolotto, Marina Francesca Achilli, Gaia Messana, Antonio Lo Tito, Alessio Consonni, Sara Cutti, Federico Comotto, Giulia Maria Stella, Angelo Corsico, Stefano Perlini, Riccardo Bellazzi, Raffaele Bruno, Lorenzo Preda
2024 conf
MeMeA
Michela Ferrari, Mario Urtis, Lorenzo Giuliani, Alice Lionetti, Chandra Bortolotto, Francesco Prati, Lorenzo Preda, Eloisa Arbustini, Giovanni Magenes
2024 J jnl
BMC Medical Informatics Decis. Mak.
Ermanno Cordelli, Paolo Soda, Sara Citter, Elia Schiavon, Christian Salvatore, Deborah Fazzini, Greta Clementi, Michaela Cellina, Andrea Cozzi, Chandra Bortolotto, Lorenzo Preda, Luisa Francini, Matteo Tortora, Isabella Castiglioni, Sergio Papa, Diego Sona, Marco Alì
2024 J jnl
CoRR
Laura Bergomi, Tommaso Mario Buonocore, Paolo Antonazzo, Lorenzo Alberghi, Riccardo Bellazzi, Lorenzo Preda, Chandra Bortolotto, Enea Parimbelli
2024 J jnl
Artif. Intell. Medicine
Laura Bergomi, Tommaso Mario Buonocore, Paolo Antonazzo, Lorenzo Alberghi, Riccardo Bellazzi, Lorenzo Preda, Chandra Bortolotto, Enea Parimbelli
2021 J jnl
Medical Image Anal.
Paolo Soda, Natascha Claudia D'Amico, Jacopo Tessadori, Giovanni Valbusa, Valerio Guarrasi, Chandra Bortolotto, Muhammad Usman Akbar, Rosa Sicilia, Ermanno Cordelli, Deborah Fazzini, Michaela Cellina, Giancarlo Oliva, Giovanni Callea, Silvia Panella, Maurizio Cariati, Diletta Cozzi, Vittorio Miele, Elvira Stellato, Gianpaolo Carrafiello, Giulia Castorani, Annalisa Simeone, Lorenzo Preda, Giulio Iannello, Alessio Del Bue, Fabio Tedoldi, Marco Alì, Diego Sona, Sergio Papa
2021 conf
SMARTERCARE@AI*IA
Giovanna Nicora, Antonio Lo Tito, Antonella Donatelli, Giovanni Callea, Carla Biasibetti, Maria Vittoria Galli, Federico Comotto, Chandra Bortolotto, Stefano Perlini, Lorenzo Preda, Riccardo Bellazzi
2020 J jnl
CoRR
Paolo Soda, Natascha Claudia D'Amico, Jacopo Tessadori, Giovanni Valbusa, Valerio Guarrasi, Chandra Bortolotto, Muhammad Usman Akbar, Rosa Sicilia, Ermanno Cordelli, Deborah Fazzini, Michaela Cellina, Giancarlo Oliva, Giovanni Callea, Silvia Panella, Maurizio Cariati, Diletta Cozzi, Vittorio Miele, Elvira Stellato, Gianpaolo Carrafiello, Giulia Castorani, Annalisa Simeone, Lorenzo Preda, Giulio Iannello, Alessio Del Bue, Fabio Tedoldi, Marco Alì, Diego Sona, Sergio Papa
2016 J jnl
J. Digit. Imaging
Chandra Bortolotto, Esmeralda Eshja, Caterina Peroni, Matteo A. Orlandi, Nicola Bizzotto, Paolo Poggi
redb/extractors/decompiler/bninja/analysis/strings.py
← Index redb/extractors/decompiler/bninja/analysis/strings.py python
from collections import Counter
import math

class StringAnalysis:
    def __init__(self, bv, functions):
        self.bv = bv
        self.functions = functions

    def entropy(self, s: str) -> float:
        """Compute Shannon entropy of a string."""
        if not s:
            return 0.0
        freq = Counter(s)
        length = len(s)
        return -sum((count / length) * math.log2(count / length) for count in freq.values())

    def analyze(self):
        """
        Extract unique strings from the binary.

        Deduplicates by (string, encoding) within the same binary, keeping the
        first occurrence (lowest offset). Cross-binary deduplication and
        aggregation is handled by ClickHouse materialized views.
        """
        strings = {}

        # Sort strings by their starting address
        sorted_entries = sorted(self.bv.strings, key=lambda e: e.start)

        for entry in sorted_entries:
            # Key is the string and its encoding
            key = (entry.value, entry.type.name)

            # Skip if this string (value + encoding) was already added.
            # Because entries are sorted by address, the first one is always kept.
            if key in strings:
                continue

            # Store only the first occurrence with schema-matching field names
            # entry.length is the raw byte length, len(entry.value) is decoded string length
            string_entry = {
                "string": entry.value,
                "string_raw": entry.raw,
                "string_encoding": entry.type.name,
                "string_offset": entry.start,
                "string_length": len(entry.value),
                "string_raw_length": entry.length,
                "string_entropy": self.entropy(entry.value),
            }

            strings[key] = string_entry

        # Return as list for export compatibility
        return list(strings.values())