Carmelo Cuenca

16 papers Misc 1Journal 6Unranked 9
YearRankTypeTitle / Venue / Authors
2020 J jnl
Medical Biol. Eng. Comput.
Pablo G. Tahoces, Daniel Santana-Cedrés, Luis Álvarez, Miguel Alemán-Flores, Agustín Trujillo, Carmelo Cuenca, José M. Carreira
2019 J jnl
Int. J. Comput. Assist. Radiol. Surg.
Pablo G. Tahoces, Luis Álvarez, Esther González, Carmelo Cuenca, Agustín Trujillo, Daniel Santana-Cedrés, Julio Esclarín, Luis Gómez, Luis Mazorra, Miguel Alemán-Flores, José M. Carreira
2018 J jnl
J. Math. Imaging Vis.
Luis Álvarez, Esther González, Carmelo Cuenca, Agustín Trujillo-Pino, Pablo G. Tahoces, José M. Carreira
2018 J jnl
J. Real Time Image Process.
Carmelo Cuenca, Esther González, Agustín Trujillo, Julio Esclarín, Luis Mazorra, Luis Álvarez, Juan Antonio Martínez-Mera, Pablo G. Tahoces, José M. Carreira
2018 J jnl
SIAM J. Imaging Sci.
Luis Álvarez, Carmelo Cuenca, Jesús Ildefonso Díaz, Esther González
2017 conf
CVII-STENT/LABELS@MICCAI
Luis Álvarez, Esther González, Julio Esclarín, Luis Gómez, Miguel Alemán-Flores, Agustín Trujillo, Carmelo Cuenca, Luis Mazorra, Pablo G. Tahoces, José M. Carreira
2017 conf
MICCAI (2)
Luis Álvarez, Agustín Trujillo-Pino, Carmelo Cuenca, Esther González, Julio Esclarín, Luis Gómez, Luis Mazorra, Miguel Alemán-Flores, Pablo G. Tahoces, José M. Carreira-Villamor
2016 J jnl
J. Math. Imaging Vis.
Luis Álvarez, Carmelo Cuenca, Julio Esclarín, Luis Mazorra, Jean-Michel Morel
2009 conf
IVIC
Roman Dudek, Carmelo Cuenca, Francisca Quintana
2009 conf
EUROCAST
Roman Dudek, Carmelo Cuenca, Francisca Quintana
2009 conf
IPCV
Roman Dudek, Francisca Quintana, Carmelo Cuenca
2007 conf
EUROCAST
Roman Dudek, Carmelo Cuenca, Francisca Quintana
2007 conf
EUROCAST
Roman Dudek, Carmelo Cuenca, Francisca Quintana
2003 conf
EUROCAST
Luis Álvarez, Karina Baños, Carmelo Cuenca, Julio Esclarín, Javier Sánchez Pérez
2003 Misc conf
IbPRIA
Luis Álvarez, Carmelo Cuenca, Javier Sánchez Pérez
2003 conf
Scale-Space
Luis Álvarez-León, Carmelo Cuenca, Javier Sánchez Pérez
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())