Kamal El-Sankary

84 papers B 1C 9Journal 48Unranked 26
YearRankTypeTitle / Venue / Authors
2026 conf
LASCAS
Ximing Fu, Yushi Zhou, Pierre Leduc, Kamal El-Sankary
2025 J jnl
IEEE Trans. Very Large Scale Integr. Syst.
Ming Yan, Jaime Cardenas Chavez, Kamal El-Sankary, Li Chen, Xiaotong Lu
2025 C conf
VLSI-SoC
Johnatan Felipe Silva Garcia, Dalton Martini Colombo, Kamal El-Sankary, Mahsa Zareie
2025 J jnl
IEEE Trans. Very Large Scale Integr. Syst.
Mahsa Zareie, Kamal El-Sankary, Dalton Martini Colombo, Ezz I. El-Masry
2025 conf
ICECS
Pedro Sartori Locatelli, Mahsa Zareie, Dalton Martini Colombo, Michael S. Freund, Kamal El-Sankary
2025 conf
ICECS
Ahmed Al-Qallaf, Ali Ridha Ali, Kamal El-Sankary
2025 C conf
VLSI-SoC
Johnatan Felipe Silva Garcia, Dalton Martini Colombo, Kamal El-Sankary, Mahsa Zareie
2025 conf
ICECS
Ming Yan, Kamal El-Sankary, Li Chen
2025 J jnl
IEEE Access
Pedro Sartori Locatelli, Salma Ait Fares, Dalton Martini Colombo, Kamal El-Sankary, Michael S. Freund
2025 J jnl
IEEE Trans. Commun.
Reza Hadavian, Xiaoting Huang, Dmitri V. Truhachev, Kamal El-Sankary, Hamid Ebrahimzad, Hossein Najafi, Yang Ge, Abolfazl Zokaei
2025 J jnl
IEEE Access
Ming Yan, Jaime Cardenas Chavez, Adriana Noguera Cundar, Kamal El-Sankary, Li Chen
2024 conf
NewCAS
Pierre Leduc, Ximing Fu, Yushi Zhou, Kamal El-Sankary
2024 J jnl
IEEE Trans. Very Large Scale Integr. Syst.
Mahsa Zareie, Kamal El-Sankary, Ezz I. El-Masry, Ximing Fu
2024 J jnl
IEEE Trans. Circuits Syst. II Express Briefs
Yang Ge, Dmitri V. Truhachev, Abolfazl Zokaei, Xiaotong Lu, Xiaoting Huang, Kamal El-Sankary
2023 C conf
ISCAS
Ximing Fu, Yushi Zhou, Pierre Leduc, Kamal El-Sankary
2023 J jnl
IEEE Trans. Very Large Scale Integr. Syst.
Yang Ge, Tejinder Singh Sandhu, Dmitri V. Truhachev, Kamal El-Sankary
2023 J jnl
IEEE Trans. Circuits Syst. II Express Briefs
Yadong Yin, Zehui Zhang, Weiming Xiao, Ximing Fu, Kamal El-Sankary, Sio-Hang Pun
2023 J jnl
IEEE Trans. Biomed. Circuits Syst.
Karama M. AL-Tamimi, Gregory Begin, Hamed Hanafi Alamdari, Tobias Witter, Kamal El-Sankary
2023 B conf
GLOBECOM
Reza Hadavian, Dmitri V. Truhachev, Kamal El-Sankary, Hamid Ebrahimzad, Hossein Najafi
2023 J jnl
CoRR
Reza Hadavian, Xiaoting Huang, Dmitri V. Truhachev, Kamal El-Sankary, Hamid Ebrahimzad, Hossein Najafi
2023 conf
CCECE
Victor Gao, Issam Hammad, Kamal El-Sankary, Jason Gu
2023 J jnl
CoRR
Victor Gao, Issam Hammad, Kamal El-Sankary, Jason Gu
2023 J jnl
IEEE Trans. Biomed. Eng.
Meagan Sinclair, Hamed Hanafi Alamdari, Julia Paffile, Kamal El-Sankary, Scott C. Lowe, Stephen Driscoll, Sageev Oore, Heather Tomson, Gregory Begin, Guillermo Aristi, Michael Schmidt, David C. Roach, Thomas Penzel, Ingo Fietze, Sanjay R. Patel, Reena Mehra, Debra Morrison
2023 J jnl
IEEE Trans. Very Large Scale Integr. Syst.
Pedro Sartori Locatelli, Dalton Martini Colombo, Kamal El-Sankary
2022 J jnl
IEEE Access
Ximing Fu, Kamal El-Sankary
2022 J jnl
IEEE Trans. Circuits Syst. II Express Briefs
Ximing Fu, Kamal El-Sankary, Yang Ge, Yadong Yin, Dmitri V. Truhachev
2022 J jnl
IEEE Trans. Circuits Syst. II Express Briefs
Ming Yan, Dalton Martini Colombo, Michael S. Freund, Kamal El-Sankary
2022 conf
CCECE
Ximing Fu, Yushi Zhou, Kamal El-Sankary
2022 J jnl
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst.
Ahmed Al-Qallaf, Kamal El-Sankary
2022 J jnl
IEEE Trans. Biomed. Eng.
Hamed Hanafi Alamdari, Luke Hacquebard, Stephen Driscoll, Kamal El-Sankary, David C. Roach, Robin LeBlanc, Scott C. Lowe, Sageev Oore, Thomas Penzel, Ingo Fietze, Michael Schmidt, Debra Morrison
2022 J jnl
IEEE Access
Ximing Fu, Dalton Martini Colombo, Yadong Yin, Kamal El-Sankary
2022 J jnl
IEEE Trans. Very Large Scale Integr. Syst.
Abolfazl Zokaei, Dmitri V. Truhachev, Kamal El-Sankary
2022 conf
NEWCAS
Shihao Wang, Karama M. AL-Tamimi, Issam Hammad, Kamal El-Sankary
2021 C conf
ISCAS
Ximing Fu, Kamal El-Sankary, Yadong Yin
2021 C conf
ISCAS
Yadong Yin, Kamal El-Sankary, Zhizhang Chen, Ximing Fu
2021 J jnl
IEEE Access
Issam Hammad, Ling Li, Kamal El-Sankary, W. Martin Snelgrove
2021 J jnl
IEEE Trans. Circuits Syst. I Regul. Pap.
Dmitri V. Truhachev, Kamal El-Sankary, Alireza Karami, Abolfazl Zokaei, Shizhong Li
2020 conf
NEWCAS
Ximing Fu, Kamal El-Sankary, Yadong Yin
2020 J jnl
IEEE Access
Yadong Yin, Kamal El-Sankary, Zhizhang Chen, Yueming Gao, Mang I Vai, Sio-Hang Pun
2020 J jnl
IEEE Trans. Very Large Scale Integr. Syst.
Shizhong Li, Kamal El-Sankary, Alireza Karami, Dmitri V. Truhachev
2020 J jnl
CoRR
Issam Hammad, Kamal El-Sankary, Jason Gu
2020 conf
NEWCAS
Yang Ge, Ximing Fu, Yadong Yin, Kamal El-Sankary
2020 conf
NEWCAS
Reza Bostani, Javad Yavand Hasani, Kamal El-Sankary
2020 C conf
ISCAS
Issam Hammad, Kamal El-Sankary
2019 conf
MIXDES
Abolfazl Zokaei, Kamal El-Sankary, Dmitry Trukhachev, Amir Amirabadi
2019 conf
ROBIO
Issam Hammad, Kamal El-Sankary, Jason Gu
2019 J jnl
CoRR
Issam Hammad, Kamal El-Sankary, Jason Gu
2019 conf
MIXDES
Abolfazl Zokaei, Kamal El-Sankary, Dmitry Trukhachev, Amir Amirabadi
2019 J jnl
IEEE Trans. Circuits Syst. II Express Briefs
Ximing Fu, Kamal El-Sankary
2019 conf
MWSCAS
Ximing Fu, Kamal El-Sankary, Jianjun Zhou
2019 conf
MWSCAS
Ximing Fu, Kamal El-Sankary
2019 conf
ROBIO
Issam Hammad, Kamal El-Sankary, Jason Gu
2019 J jnl
IEEE Trans. Circuits Syst. Video Technol.
Karthik Thiyagarajan, Rongxing Lu, Kamal El-Sankary, Hui Zhu
2019 J jnl
Sensors
Issam Hammad, Kamal El-Sankary
2019 J jnl
SoftwareX
Issam Hammad, Kamal El-Sankary, Holly Hornibrook
2019 J jnl
IEEE Trans. Very Large Scale Integr. Syst.
Tejinder Singh Sandhu, Kamal El-Sankary
2019 J jnl
IEEE Trans. Biomed. Eng.
Hamed Hanafi Alamdari, Kamal El-Sankary, Geoffrey N. Maksym
2019 J jnl
IEEE Trans. Circuits Syst. II Express Briefs
Karama M. AL-Tamimi, Kamal El-Sankary, Youcef Fouzar
2018 J jnl
IEEE Trans. Very Large Scale Integr. Syst.
Tejinder Singh Sandhu, Kamal El-Sankary
2018 J jnl
IEEE Access
Issam Hammad, Kamal El-Sankary
2017 J jnl
IEEE Trans. Very Large Scale Integr. Syst.
Karama M. AL-Tamimi, Kamal El-Sankary
2016 J jnl
IEEE Trans. Very Large Scale Integr. Syst.
Tejinder Singh Sandhu, Kamal El-Sankary
2015 conf
CCECE
Hamidreza Nateghi, Kamal El-Sankary
2015 J jnl
IEEE Trans. Circuits Syst. II Express Briefs
Kamal El-Sankary, Tetsuya Asai, Masato Motomura, Tadahiro Kuroda
2015 J jnl
IEEE Trans. Circuits Syst. I Regul. Pap.
Haoran Yu, Kamal El-Sankary, Ezz I. El-Masry
2015 J jnl
IET Circuits Devices Syst.
Haoran Yu, Kamal El-Sankary, Ezz I. El-Masry
2014 conf
APCCAS
Deyasini Majumdar, Mithun Ceekala, Kamal El-Sankary, Christian Schlegel
2014 conf
CCECE
Haoran Yu, Kamal El-Sankary, Ezz I. El-Masry
2012 conf
CCECE
Haoran Yu, Kamal El-Sankary, Ezz I. El-Masry
2010 J jnl
IEEE Trans. Circuits Syst. II Express Briefs
Tejinder Singh Sandhu, Kamal El-Sankary, Ezz I. El-Masry
2010 C conf
ISCAS
Mahsa Ebrahimian, Kamal El-Sankary, Ezz I. El-Masry
2010 J jnl
IEEE Embed. Syst. Lett.
Issam Hammad, Kamal El-Sankary, Ezz I. El-Masry
2009 conf
ICECS
Ulkarsh Shah, Kamal El-Sankary, Ezz I. El-Masry
2009 J jnl
IEEE Trans. Circuits Syst. II Express Briefs
Kamal El-Sankary, Hamed Hanafi Alamdari, Ezz I. El-Masry
2009 C conf
ISCAS
Ahmad-Hossein Adl, Kamal El-Sankary, Ezz I. El-Masry
2007 C conf
ISCAS
Robert Chebli, Mohamad Sawan, Yvon Savaria, Kamal El-Sankary
2006 conf
CICC
Kamal El-Sankary, Mohamad Sawan
2006 J jnl
IEEE Trans. Circuits Syst. II Express Briefs
Kamal El-Sankary, Mohamad Sawan
2006 J jnl
Microelectron. J.
Kamal El-Sankary, Mohamad Sawan
2004 J jnl
IEEE Trans. Circuits Syst. II Express Briefs
Kamal El-Sankary, Mohamad Sawan
2004 conf
ISCAS (1)
Kamal El-Sankary, Mohamad Sawan
2004 J jnl
J. Circuits Syst. Comput.
Kamal El-Sankary, Ali Assi, Mohamad Sawan
2003 conf
ISCAS (1)
Kamal El-Sankary, Ali Assi, Mohamad Sawan
2002 conf
DCV
Kamal El-Sankary, Ali Assi, Mohamad Sawan
tests/unit/test_decompile_strings.py
← Index tests/unit/test_decompile_strings.py python
"""Unit tests for bninja/analysis/strings.py — StringAnalysis."""
import pytest
import math
from unittest.mock import MagicMock


# StringAnalysis has no binaryninja imports, just collections and math
from redb.extractors.decompiler.bninja.analysis.strings import StringAnalysis


# ============================================================================
# Helper mocks
# ============================================================================

class MockStringEntry:
    """Mock for a Binary Ninja string reference."""
    def __init__(self, value, raw=None, start=0, length=0, type_name="Utf8String"):
        self.value = value
        self.raw = raw if raw is not None else (value.encode("utf-8") if isinstance(value, str) else value)
        self.start = start
        self.length = length if length else len(self.raw)
        self.type = MagicMock()
        self.type.name = type_name


class MockBinaryView:
    """Mock binary view with a strings list."""
    def __init__(self, strings=None):
        self.strings = strings or []


# ============================================================================
# 6a. StringAnalysis
# ============================================================================


class TestStringAnalysisEntropy:
    def setup_method(self):
        self.sa = StringAnalysis(bv=MockBinaryView(), functions=[])

    def test_entropy_empty_string(self):
        assert self.sa.entropy("") == 0.0

    def test_entropy_single_char(self):
        assert self.sa.entropy("aaaa") == 0.0

    def test_entropy_uniform_distribution(self):
        # "abcd" -> 4 unique chars, each p=1/4, entropy = log2(4) = 2.0
        result = self.sa.entropy("abcd")
        assert result == pytest.approx(2.0)

    def test_entropy_binary_string(self):
        # "ab" -> 2 unique chars, each p=1/2, entropy = log2(2) = 1.0
        result = self.sa.entropy("ab")
        assert result == pytest.approx(1.0)


class TestStringAnalysisAnalyze:
    def test_analyze_deduplication(self):
        """Duplicate (string, encoding) pairs -> only first kept."""
        entries = [
            MockStringEntry("hello", start=100, type_name="Utf8String"),
            MockStringEntry("hello", start=200, type_name="Utf8String"),
        ]
        bv = MockBinaryView(strings=entries)
        sa = StringAnalysis(bv=bv, functions=[])
        result = sa.analyze()
        assert len(result) == 1
        assert result[0]["string_offset"] == 100

    def test_analyze_sorted_by_address(self):
        """First occurrence (lowest offset) is the one kept."""
        entries = [
            MockStringEntry("world", start=500, type_name="Utf8String"),
            MockStringEntry("world", start=100, type_name="Utf8String"),
        ]
        bv = MockBinaryView(strings=entries)
        sa = StringAnalysis(bv=bv, functions=[])
        result = sa.analyze()
        assert len(result) == 1
        # The analyze() sorts by start, so 100 comes first
        assert result[0]["string_offset"] == 100

    def test_analyze_empty_bv(self):
        bv = MockBinaryView(strings=[])
        sa = StringAnalysis(bv=bv, functions=[])
        result = sa.analyze()
        assert result == []

    def test_analyze_output_schema(self):
        entries = [MockStringEntry("test_string", start=0, type_name="Utf8String")]
        bv = MockBinaryView(strings=entries)
        sa = StringAnalysis(bv=bv, functions=[])
        result = sa.analyze()
        assert len(result) == 1
        r = result[0]
        required_keys = [
            "string",
            "string_raw",
            "string_encoding",
            "string_offset",
            "string_length",
            "string_raw_length",
            "string_entropy",
        ]
        for key in required_keys:
            assert key in r, f"Missing key: {key}"