Victor Elijah Adeyemo

11 papers C 1Journal 7Unranked 3
YearRankTypeTitle / Venue / Authors
2025 J jnl
Int. J. Data Sci. Anal.
Victor Elijah Adeyemo, Anna Palczewska, Ben Jones, Dan Weaving
2023 J jnl
CoRR
Victor Elijah Adeyemo, Anna Palczewska, Ben Jones, Dan Weaving
2021 J jnl
Comput. Intell. Neurosci.
Abdullateef Oluwagbemiga Balogun, Shuib Basri, Saipunidzam Mahamad, Luiz Fernando Capretz, Abdullahi Abubakar Imam, Malek Ahmad Theeb Almomani, Victor Elijah Adeyemo, Ganesh M. Kumar
2021 J jnl
Entropy
Abdullateef Oluwagbemiga Balogun, Shuib Basri, Luiz Fernando Capretz, Saipunidzam Mahamad, Abdullahi Abubakar Imam, Malek Ahmad Theeb Almomani, Victor Elijah Adeyemo, Ganesh M. Kumar
2021 C conf
ICMLA
Victor Elijah Adeyemo, Anna Palczewska, Ben Jones
2021 conf
ICCSA (9)
Abdullateef Oluwagbemiga Balogun, Noah Oluwatobi Akande, Fatimah E. Usman-Hamza, Victor Elijah Adeyemo, Modinat A. Mabayoje, Ahmed O. Ameen
2021 J jnl
Symmetry
Abdullateef Oluwagbemiga Balogun, Shuib Basri, Luiz Fernando Capretz, Saipunidzam Mahamad, Abdullahi Abubakar Imam, Malek Ahmad Theeb Almomani, Victor Elijah Adeyemo, Ammar K. Alazzawi, Amos Orenyi Bajeh, Ganesh M. Kumar
2020 J jnl
IEEE Access
Yazan A. Alsariera, Victor Elijah Adeyemo, Abdullateef Oluwagbemiga Balogun, Ammar K. Alazzawi
2020 conf
ACeS
Victor Elijah Adeyemo, Abdullateef Oluwagbemiga Balogun, Hammed Adeleye Mojeed, Noah Oluwatobi Akande, Kayode S. Adewole
2020 J jnl
Symmetry
Abdullateef Oluwagbemiga Balogun, Shuib Basri, Saipunidzam Mahamad, Said Jadid Abdulkadir, Malek Ahmad Theeb Almomani, Victor Elijah Adeyemo, Qasem Al-Tashi, Hammed Adeleye Mojeed, Abdullahi Abubakar Imam, Amos Orenyi Bajeh
2020 conf
ICCSA (6)
Abdullateef Oluwagbemiga Balogun, Fatimah B. Lafenwa-Balogun, Hammed Adeleye Mojeed, Victor Elijah Adeyemo, Noah Oluwatobi Akande, Abimbola Ganiyat Akintola, Amos Orenyi Bajeh, Fatimah E. Usman-Hamza
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())