Raed Salah Algharabat

14 papers Journal 11Unranked 3
YearRankTypeTitle / Venue / Authors
2025 J jnl
J. Theor. Appl. Electron. Commer. Res.
Mohamad Fouad Shorbaji, Ali Abdallah Alalwan, Raed Salah Algharabat
2024 J jnl
Inf. Technol. People
Rajasshrie Pillai, Yamini Ghanghorkar, Brijesh Sivathanu, Raed Salah Algharabat, Nripendra P. Rana
2023 J jnl
Inf. Syst. Frontiers
Abdulla H. Fetais, Raed Salah Algharabat, Abdullah Aljafari, Nripendra P. Rana
2021 J jnl
Inf. Syst. Frontiers
Raed Salah Algharabat, Nripendra P. Rana
2021 J jnl
Online Inf. Rev.
Mohammad Said Najjar, Laila Dahabiyeh, Raed Salah Algharabat
2020 J jnl
J. Enterp. Inf. Manag.
Ali Abdallah Alalwan, Raed Salah Algharabat, Abdullah Mohammed Baabdullah, Nripendra P. Rana, Zainah Qasem, Yogesh K. Dwivedi
2020 J jnl
Comput. Hum. Behav.
Zaid Mohammad Obeidat, Raed Salah Algharabat, Ali Abdallah Alalwan, Sarah Hong Xiao, Yogesh K. Dwivedi, Nripendra P. Rana
2018 conf
TDIT
Zainah Qasem, Raed Salah Algharabat, Ali Abdallah Alalwan
2018 J jnl
Int. J. Technol. Diffusion
Ali Tarhini, Ali Abdallah Alalwan, Nabeel A. Y. Al-Qirim, Raed Salah Algharabat, Ra'ed Masa'deh
2018 conf
TDIT
Abdullah M. Baabdullah, Nripendra P. Rana, Ali Abdallah Alalwan, Raed Salah Algharabat, Hatice Kizgin, Ghazi A. Al-Weshah
2017 J jnl
Kybernetes
Raed Salah Algharabat
2017 J jnl
Telematics Informatics
Ali Abdallah Alalwan, Nripendra P. Rana, Yogesh Kumar Dwivedi, Raed Salah Algharabat
2016 conf
I3E
Ali Abdallah Alalwan, Nripendra P. Rana, Raed Salah Algharabat, Ali Tarhini
2014 J jnl
Int. J. Electron. Bus.
Raed Salah Algharabat, Tamather Shatnawi
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())