Osama M. Bushnaq

17 papers B 3Journal 10Unranked 4
YearRankTypeTitle / Venue / Authors
2025 J jnl
CoRR
Reshma Prasad, Maxime Elkael, Gabriele Gemmi, Osama M. Bushnaq, Debashisha Mishra, Prasanna Raut, Jennifer Simonjan, Michele Polese, Tommaso Melodia
2025 conf
VTC2025-Spring
Osama M. Bushnaq, Z. Dharma, Adham Sakhnini, H. Gupta, Jennifer Simonjan, Enrico Natalizio, Ian F. Akyildiz
2024 B conf
WCNC
Osama M. Bushnaq, Enrico Natalizio, Ian F. Akyildiz
2023 J jnl
IEEE Trans. Wirel. Commun.
Igor V. Zhilin, Osama M. Bushnaq, Giulia De Masi, Enrico Natalizio, Ian F. Akyildiz
2022 J jnl
IEEE Access
Osama M. Bushnaq, Igor V. Zhilin, Giulia De Masi, Enrico Natalizio, Ian F. Akyildiz
2022 B conf
GLOBECOM
Osama M. Bushnaq, Igor V. Zhilin, Giulia De Masi, Enrico Natalizio, Ian F. Akyildiz
2021 conf
WUWNet
Igor V. Zhilin, Osama M. Bushnaq, Giulia De Masi, Enrico Natalizio, Ian F. Akyildiz
2021 J jnl
IEEE Trans. Wirel. Commun.
Osama M. Bushnaq, Mustafa A. Kishk, Abdulkadir Celik, Mohamed-Slim Alouini, Tareq Y. Al-Naffouri
2021 J jnl
IEEE Internet Things J.
Osama M. Bushnaq, Anas Chaaban, Tareq Y. Al-Naffouri
2020 J jnl
CoRR
Osama M. Bushnaq, Mustafa A. Kishk, Abdulkadir Çelik, Mohamed-Slim Alouini, Tareq Y. Al-Naffouri
2020 J jnl
Digit. Signal Process.
Osama M. Bushnaq, Anas Chaaban, Sundeep Prabhakar Chepuri, Geert Leus, Tareq Y. Al-Naffouri
2020 J jnl
CoRR
Osama M. Bushnaq, Anas Chaaban, Tareq Y. Al-Naffouri
2019 J jnl
IEEE Trans. Wirel. Commun.
Osama M. Bushnaq, Abdulkadir Celik, Hesham ElSawy, Mohamed-Slim Alouini, Tareq Y. Al-Naffouri
2018 B conf
GLOBECOM
Osama M. Bushnaq, Abdulkadir Celik, Hesham ElSawy, Mohamed-Slim Alouini, Tareq Y. Al-Naffouri
2018 J jnl
CoRR
Osama M. Bushnaq, Abdulkadir Celik, Hesham ElSawy, Mohamed-Slim Alouini, Tareq Y. Al-Naffouri
2017 conf
SPAWC
Osama M. Bushnaq, Anas Chaaban, Tareq Y. Al-Naffouri
2017 conf
EUSIPCO
Osama M. Bushnaq, Tareq Y. Al-Naffouri, Sundeep Prabhakar Chepuri, Geert Leus
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())