Manish Kushwaha

21 papers A 1B 2C 3Journal 5Unranked 8
YearRankTypeTitle / Venue / Authors
2022 J jnl
Distributed Comput.
Da-Jung Cho, Matthias Függer, Corbin Hopper, Manish Kushwaha, Thomas Nowak, Quentin Soubeyran
2021 J jnl
CoRR
Victoria Andaur, Janna Burman, Matthias Függer, Manish Kushwaha, Bilal Manssouri, Thomas Nowak, Joel Rybicki
2020 A conf
DISC
Da-Jung Cho, Matthias Függer, Corbin Hopper, Manish Kushwaha, Thomas Nowak, Quentin Soubeyran
2020 J jnl
CoRR
Da-Jung Cho, Matthias Függer, Corbin Hopper, Manish Kushwaha, Thomas Nowak, Quentin Soubeyran
2013 J jnl
J. Intell. Robotic Syst.
Isaac Amundson, Manish Kushwaha, Xenofon D. Koutsoukos
2013 J jnl
J. Sens. Actuator Networks
Manish Kushwaha, Xenofon D. Koutsoukos
2010 conf
ICDSC
Manish Kushwaha, Xenofon D. Koutsoukos
2010 C conf
FUSION
Manish Kushwaha, Xenofon D. Koutsoukos
2010
Manish Kushwaha
2010 ch.
Handbook of Ambient Intelligence and Smart Environments
Manish Kushwaha, Songhwai Oh, Isaac Amundson, Xenofon D. Koutsoukos, Ákos Lédeczi
2009 C conf
FUSION
Manish Kushwaha, Xenofon D. Koutsoukos, Péter Völgyesi, Ákos Lédeczi
2009 conf
MELT
Isaac Amundson, Manish Kushwaha, Xenofon D. Koutsoukos
2008 conf
ICDSC
Marci Meingast, Manish Kushwaha, Songhwai Oh, Xenofon D. Koutsoukos, Ákos Lédeczi, Shankar Sastry
2008 B conf
ICCCN
Manish Kushwaha, Isaac Amundson, Péter Völgyesi, Parvez Ahammad, Gyula Simon, Xenofon D. Koutsoukos, Ákos Lédeczi, Shankar Sastry
2008 conf
MFI
Manish Kushwaha, Songhwai Oh, Isaac Amundson, Xenofon D. Koutsoukos, Ákos Lédeczi
2008 conf
ACSCC
Manish Kushwaha, Songhwai Oh, Isaac Amundson, Xenofon D. Koutsoukos, Ákos Lédeczi
2007 conf
COMSWARE
Manish Kushwaha, Isaac Amundson, Xenofon D. Koutsoukos, Sandeep Neema, Janos Sztipanovits
2006 C conf
BROADNETS
Isaac Amundson, Manish Kushwaha, Xenofon D. Koutsoukos, Sandeep Neema, Janos Sztipanovits
2006 conf
Monterey Workshop
Xenofon D. Koutsoukos, Manish Kushwaha, Isaac Amundson, Sandeep Neema, Janos Sztipanovits
2005 B conf
MASS
Manish Kushwaha, Károly Molnár, János Sallai, Péter Völgyesi, Miklós Maróti, Ákos Lédeczi
2004 conf
WISES
Ákos Lédeczi, Manish Kushwaha, Sujata Mujumdar, Vijayaraghavan Kalyanapasupathy, Branislav Kusy
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())