M. Saifur Rahman

20 papers A* 1Journal 16Unranked 3
YearRankTypeTitle / Venue / Authors
2026 conf
EACL (Findings)
Asif Azad, Mohammad Sadat Hossain, MD Sadik Hossain Shanto, M. Saifur Rahman, Md. Rizwan Parvez
2025 J jnl
CoRR
Riad Ahmed Anonto, Sardar Md. Saffat Zabin, M. Saifur Rahman
2025 conf
AIiH (1)
Asif Azad, Md. Saiful Islam, Mohammed E. Hoque, M. Saifur Rahman
2025 J jnl
CoRR
MD Sadik Hossain Shanto, Mahir Labib Dihan, Souvik Ghosh, Riad Ahmed Anonto, Hafijul Hoque Chowdhury, Abir Muhtasim, Rakib Ahsan, Md Tanvir Hassan, Md Roqunuzzaman Sojib, Sheikh Azizul Hakim, M. Saifur Rahman
2025 J jnl
Briefings Bioinform.
Abrar Rahman Abir, Md Toki Tahmid, Rafiqul Islam Rayan, M. Saifur Rahman
2025 A* conf
EMNLP
Asif Shahriar, Rifat Shahriyar, M. Saifur Rahman
2025 J jnl
CoRR
Asif Shahriar, Rifat Shahriyar, M. Saifur Rahman
2025 J jnl
Briefings Bioinform.
Abrar Rahman Abir, Md Toki Tahmid, M. Saifur Rahman
2025 J jnl
CoRR
Joydeb Kumar Sana, Mohammad M. Masud, M. Sohel Rahman, M. Saifur Rahman
2025 J jnl
Eng. Appl. Artif. Intell.
Joydeb Kumar Sana, M. Sohel Rahman, M. Saifur Rahman
2025 J jnl
CoRR
Asif Azad, Mohammad Sadat Hossain, MD Sadik Hossain Shanto, M. Saifur Rahman, Md. Rizwan Parvez
2024 J jnl
Trans. Mach. Learn. Res.
Zarif Ikram, Dianbo Liu, M. Saifur Rahman
2024 J jnl
BMC Bioinform.
Sheikh Hasib Ahmed, Dibyendu Brinto Bose, Rafi Khandoker, M. Saifur Rahman
2023 J jnl
CoRR
Md. Zarif Ul Alam, Md. Saiful Islam, Ehsan Hoque, M. Saifur Rahman
2023 J jnl
Briefings Bioinform.
Shehab Sarar Ahmed, Zaara Tasnim Rifat, M. Saifur Rahman, M. Sohel Rahman
2021 J jnl
J. Inf. Knowl. Manag.
M. R. H. Khan, M. A. Hoque, M. Saifur Rahman
2021 conf
MedInfo
Sheikh Saifur Rahman Jony, Rifat Shahriyar, M. Saifur Rahman, M. Sohel Rahman, Tanvir Alam
2021 J jnl
J. Circuits Syst. Comput.
M. R. H. Khan, M. A. Hoque, Md. Taslim Reza, M. Saifur Rahman
2012 J jnl
Appl. Math. Comput.
Md. Alal Hosen, M. Saifur Rahman, M. Shamsul Alam, M. Ruhul Amin
2011 J jnl
J. Frankl. Inst.
M. Shamsul Alam, Kamalesh Chandra Roy, M. Saifur Rahman, Md. Mossaraf Hossain
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())