Vicente Luque Centeno

20 papers B 3C 1Journal 4Unranked 11
YearRankTypeTitle / Venue / Authors
2011 J jnl
Int. J. Artif. Intell. Tools
Norberto Fernández García, Jesús Arias-Fisteus, Damaris Fuentes, Luis Sánchez, Vicente Luque Centeno
2008 J jnl
Int. J. Comput. Appl. Technol.
José M. Blázquez del Toro, Jesús Arias-Fisteus, Vicente Luque Centeno, Luis Sánchez Fernández
2007 conf
AWIC
Norberto Fernández García, José M. Blázquez del Toro, Luis Sánchez, Vicente Luque Centeno
2007 conf
WISE Workshops
Vicente Luque Centeno, Carlos Delgado Kloos, José M. Blázquez del Toro, Martin Gaedke
2006 ch.
Advances in Web Intelligence and Data Mining
Norberto Fernández García, José M. Blázquez del Toro, Luis Sánchez Fernández, Vicente Luque Centeno
2006 J jnl
J. Web Eng.
Vicente Luque Centeno, Carlos Delgado Kloos, Martin Gaedke, Martin Nussbaumer
2005 conf
SemAnnot@ISWC
Norberto Fernández García, José M. Blázquez del Toro, Luis Sánchez Fernández, Vicente Luque Centeno
2005 B conf
ICWE
Vicente Luque Centeno, Carlos Delgado Kloos, Martin Gaedke, Martin Nussbaumer
2005 conf
WWW (Special interest tracks and posters)
Vicente Luque Centeno, Carlos Delgado Kloos, Martin Gaedke, Martin Nussbaumer
2005 conf
WWV
Vicente Luque Centeno, Carlos Delgado Kloos, Jesús Arias-Fisteus, Luis Álvarez Álvarez
2005 conf
WWV
Vicente Luque Centeno, Carlos Delgado Kloos, Jesús Arias-Fisteus, Luis Álvarez Álvarez
2005 conf
W4A
Vicente Luque Centeno, Carlos Delgado Kloos, Martin Gaedke, Martin Nussbaumer
2004 conf
AWIC
Vicente Luque Centeno, Carlos Delgado Kloos, Luis Sánchez Fernández, Norberto Fernández García
2004 B conf
ICWE
Vicente Luque Centeno, Carlos Delgado Kloos, Luis Sánchez Fernández, Norberto Fernández García
2004 J jnl
Int. J. Web Eng. Technol.
Vicente Luque Centeno, Carlos Delgado Kloos, Luis Sánchez Fernández, Norberto Fernández García
2003 conf
AWIC
Vicente Luque Centeno, Carlos Delgado Kloos, Peter T. Breuer, Luis Sánchez Fernández, Ma. Eugenia Gonzalo Cabellos, Juan Antonio Herráiz Pérez
2003 B conf
ICWE
Vicente Luque Centeno, Luis Sánchez Fernández, Carlos Delgado Kloos, Peter T. Breuer, Fernando Paniagua Martín
2003 C conf
ISCC
Vicente Luque Centeno, Peter T. Breuer, Luis Sánchez Fernández, Carlos Delgado Kloos, Juan Antonio Herráiz Pérez
2002 conf
RISSEF
Peter T. Breuer, Carlos Delgado Kloos, Vicente Luque Centeno, Luis Sánchez Fernández
1999 conf
ELPUB
M. Carmen Fernández Panadero, Andrés Marín López, Carlos Delgado Kloos, Carlos García-Rubio, Vicente Luque Centeno, Luis Sánchez Fernández, Tony Hernández
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())