Veronika Ludwig

11 papers Journal 7Unranked 4
YearRankTypeTitle / Venue / Authors
2022 J jnl
J. Imaging
Bernhard Akstaller, Stephan Schreiner, Lisa Dietrich, Constantin Rauch, Max Schuster, Veronika Ludwig, Christina Hofmann-Randall, Thilo Michel, Gisela Anton, Stefan Funk
2021 J jnl
J. Imaging
Stephan Schreiner, Bernhard Akstaller, Lisa Dietrich, Pascal Meyer, Paul Neumayer, Max Schuster, Andreas Wolf, Bernhard Zielbauer, Veronika Ludwig, Thilo Michel, Gisela Anton, Stefan Funk
2020 J jnl
J. Imaging
Maria Seifert, Mareike Weule, Silvia Cipiccia, Silja Flenner, Johannes Hagemann, Veronika Ludwig, Thilo Michel, Paul Neumayer, Max Schuster, Andreas Wolf, Gisela Anton, Stefan Funk, Bernhard Akstaller
2019 conf
Bildverarbeitung für die Medizin
Lina Felsner, Martin Berger, Sebastian Kaeppler, Johannes Bopp, Veronika Ludwig, Thomas Weber, Georg Pelzer, Thilo Michel, Andreas K. Maier, Gisela Anton, Christian Riess
2019 conf
Bildverarbeitung für die Medizin
Lina Felsner, Shiyang Hu, Veronika Ludwig, Gisela Anton, Andreas K. Maier, Christian Riess
2019 J jnl
Int. J. Comput. Assist. Radiol. Surg.
Johannes Bopp, Veronika Ludwig, Maria Seifert, Georg Pelzer, Andreas K. Maier, Gisela Anton, Christian Riess
2018 J jnl
CoRR
Shiyang Hu, Lina Felsner, Andreas K. Maier, Veronika Ludwig, Gisela Anton, Christian Riess
2018 J jnl
J. Imaging
Maria Seifert, Michael Gallersdörfer, Veronika Ludwig, Max Schuster, Florian Horn, Georg Pelzer, Jens Rieger, Thilo Michel, Gisela Anton
2018 J jnl
J. Imaging
Veronika Ludwig, Maria Seifert, Tracy Niepold, Georg Pelzer, Jens Rieger, Julia Ziegler, Thilo Michel, Gisela Anton
2018 conf
MICCAI (1)
Lina Felsner, Martin Berger, Sebastian Kaeppler, Johannes Bopp, Veronika Ludwig, Thomas Weber, Georg Pelzer, Thilo Michel, Andreas K. Maier, Gisela Anton, Christian Riess
2018 conf
Bildverarbeitung für die Medizin
Johannes Bopp, Michael Gallersdörfer, Veronika Ludwig, Maria Seifert, Andreas K. Maier, Gisela Anton, Christian Riess
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())