Ibrahim M. Elfadel

74 papers A* 6A 12C 8Misc 2Journal 34Unranked 12
YearRankTypeTitle / Venue / Authors
2025 J jnl
IEEE Access
Nour Faris Ali, Hasan Al-Nashash, Ibrahim M. Elfadel, Mohamed Atef
2025 J jnl
Frontiers Digit. Health
Allam Jaya Prakash, Abdelkader Nasreddine Belkacem, Ibrahim M. Elfadel, Herbert F. Jelinek, Mohamed Atef
2025 J jnl
CoRR
Saeed AlMarri, Kristof Juhasz, Mathieu Ravaut, Gautier Marti, Hamdan Al Ahbabi, Ibrahim M. Elfadel
2025 J jnl
CoRR
Saeed AlMarri, Mathieu Ravaut, Kristof Juhasz, Gautier Marti, Hamdan Al Ahbabi, Ibrahim M. Elfadel
2025 J jnl
Comput. Biol. Medicine
Noor Faris Ali, Ibrahim M. Elfadel, Mohamed Atef
2025 J jnl
CoRR
Hamdan Al Ahbabi, Gautier Marti, Saeed AlMarri, Ibrahim M. Elfadel
2024 J jnl
IEEE Access
Noor Faris Ali, Nabil Albastaki, Abdelkader Nasreddine Belkacem, Ibrahim M. Elfadel, Mohamed Atef
2024 conf
VLSI-SoC (Selected Papers)
Esrat Khan, Shahzad Muzaffar, Lamees M. Al Qassem, Ibrahim M. Elfadel
2024 J jnl
IEEE Trans. Netw. Serv. Manag.
Lamees M. Al Qassem, Thanos Stouraitis, Ernesto Damiani, Ibrahim M. Elfadel
2024 C conf
ISCAS
Asim Arif, Adedayo Adegbile, Qiraat Khan, Hamda Memon, Ibrahim M. Elfadel
2024 C conf
VLSI-SoC
Esrat Khan, Shahzad Muzaffar, Lamees M. Al Qassem, Ibrahim M. Elfadel
2024 J jnl
IEEE Trans. Very Large Scale Integr. Syst.
Mizan Abraha Gebremicheal, Ibrahim M. Elfadel
2023 conf
VLSI-SoC (Selected Papers)
Rupesh Raj Karn, Mizan Abraha Gebremichael, Kashif Nawaz, Ibrahim M. Elfadel
2022 J jnl
IEEE Trans. Serv. Comput.
Lamees M. Al Qassem, Thanos Stouraitis, Ernesto Damiani, Ibrahim M. Elfadel
2022 J jnl
IEEE Geosci. Remote. Sens. Lett.
Ahmad Obeid, Ibrahim M. Elfadel, Naoufel Werghi
2021 C conf
ISCAS
Shahzad Muzaffar, Ibrahim M. Elfadel
2021 C conf
ISCAS
Ibrahim M. Elfadel
2021 J jnl
IEEE Trans. Parallel Distributed Syst.
Rupesh Raj Karn, Prabhakar Kudva, Hai Huang, Sahil Suneja, Ibrahim M. Elfadel
2021 J jnl
IEEE Trans. Biomed. Circuits Syst.
Hector A. Gonzalez, Richard George, Shahzad Muzaffar, Javier Acevedo, Sebastian Höppner, Christian Mayr, Jerald Yoo, Frank H. P. Fitzek, Ibrahim M. Elfadel
2021 J jnl
IEEE Access
Rupesh Raj Karn, Prabhakar Kudva, Ibrahim M. Elfadel
2021 J jnl
IEEE Access
Shahzad Muzaffar, Owais Talaat Waheed, Zeyar Aung, Ibrahim M. Elfadel
2021 J jnl
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst.
Ibrahim M. Elfadel
2020 J jnl
IEEE Access
Hector A. Gonzalez, Shahzad Muzaffar, Jerald Yoo, Ibrahim M. Elfadel
2019 J jnl
IEEE Trans. Very Large Scale Integr. Syst.
Shahzad Muzaffar, Ibrahim M. Elfadel
2019 J jnl
IEEE Trans. Circuits Syst. II Express Briefs
Ahmed Elian, Ibrahim M. Elfadel, Ayman Shabra
2019 C conf
ICCC
Rupesh Raj Karn, Prabhakar Kudva, Ibrahim M. Elfadel
2017 C conf
VLSI-SoC
Shahzad Muzaffar, Ibrahim M. Elfadel
2016 conf
EMBC
Ahmed Elian, Nisrein Sada, Ibrahim M. Elfadel, Mohammed Saeed, Ayman Shabra
2016 C conf
VLSI-SoC
Shahzad Muzaffar, Numan Saeed, Ibrahim M. Elfadel
2015 conf
ASP-DAC
Mohammed Shemsu Nesro, Lizhong Sun, Ibrahim M. Elfadel
2015 conf
ICCSPA
Rupesh Raj Karn, Ibrahim M. Elfadel
2015 conf
ICCSPA
Owais Talaat Waheed, Ayman Shabra, Ibrahim M. Elfadel
2015 A conf
DATE
Li Yu, Sharad Saxena, Christopher Hess, Ibrahim M. Elfadel, Dimitri A. Antoniadis, Duane S. Boning
2015 C conf
VLSI-SoC
Shahzad Muzaffar, Ibrahim M. Elfadel
2014 J jnl
CoRR
Zheng Zhang, Tarek A. El-Moselhy, Ibrahim M. Elfadel, Luca Daniel
2014 J jnl
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst.
Zheng Zhang, Tarek A. El-Moselhy, Ibrahim M. Elfadel, Luca Daniel
2014 J jnl
CoRR
Zheng Zhang, Tarek A. El-Moselhy, Paolo Maffezzoni, Ibrahim M. Elfadel, Luca Daniel
2014 A conf
DATE
Li Yu, Sharad Saxena, Christopher Hess, Ibrahim M. Elfadel, Dimitri A. Antoniadis, Duane S. Boning
2014 J jnl
CoRR
Zheng Zhang, Tarek A. El-Moselhy, Ibrahim M. Elfadel, Luca Daniel
2014 J jnl
CoRR
Zheng Zhang, Xiu Yang, Giovanni Marucci, Paolo Maffezzoni, Ibrahim M. Elfadel, George E. Karniadakis, Luca Daniel
2014 J jnl
CoRR
Zheng Zhang, Ibrahim M. Elfadel, Luca Daniel
2013 conf
ICECS
Mohammed Shemsu Nesro, Ibrahim M. Elfadel
2013 conf
ASP-DAC
Li Yu, Omar Mysore, Lan Wei, Luca Daniel, Dimitri A. Antoniadis, Ibrahim M. Elfadel, Duane S. Boning
2013 A conf
DATE
Ibrahim M. Elfadel, Radu Marculescu, David Atienza
2013 J jnl
IEEE Trans. Circuits Syst. II Express Briefs
Zheng Zhang, Tarek A. El-Moselhy, Paolo Maffezzoni, Ibrahim M. Elfadel, Luca Daniel
2013 A conf
DATE
Li Yu, Lan Wei, Dimitri A. Antoniadis, Ibrahim M. Elfadel, Duane S. Boning
2013 J jnl
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst.
Zheng Zhang, Tarek A. El-Moselhy, Ibrahim M. Elfadel, Luca Daniel
2013 A conf
ICCAD
Zheng Zhang, Ibrahim M. Elfadel, Luca Daniel
2013 conf
ICECS
Temesghen Tekeste, Ayman Shabra, Duane S. Boning, Ibrahim M. Elfadel
2011 A conf
ICCAD
Zheng Zhang, Ibrahim M. Elfadel, Luca Daniel
2009 A conf
ICCAD
Tarek A. El-Moselhy, Ibrahim M. Elfadel, Luca Daniel
2009 A* conf
DAC
Tarek A. El-Moselhy, Ibrahim M. Elfadel, Bill Dewey
2009 J jnl
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst.
Ibrahim M. Elfadel
2009 conf
ICC
Thomas Mittelholzer, Michele Franceschini, Luis Alfonso Lastras-Montaño, Ibrahim M. Elfadel, Mayank Sharma
2008 A conf
ICCAD
Tarek A. El-Moselhy, Ibrahim M. Elfadel, Luca Daniel
2008 A* conf
DAC
Tarek A. El-Moselhy, Ibrahim M. Elfadel, David Widiger
2004 A conf
DATE
Ibrahim M. Elfadel, Alina Deutsch, Gerard V. Kopcsay, Bradley Rubin, Howard H. Smith
1999 A* conf
DAC
Andrew R. Conn, Ibrahim M. Elfadel, W. W. Molzen, P. R. O'Brien, Philip N. Strenski, Chandramouli Visweswariah, C. B. Whan
1998 A conf
ICCAD
Phillip J. Restle, Joel R. Phillips, Ibrahim M. Elfadel
1997 A conf
ICCAD
Ibrahim M. Elfadel, David D. Ling
1997 A* conf
DAC
Ibrahim M. Elfadel, David D. Ling
1996 A conf
ICCAD
Luís Miguel Silveira, Mattan Kamon, Ibrahim M. Elfadel, Jacob White
1996 Misc conf
ICASSP
Ibrahim M. Elfadel, Luís Miguel Silveira, Jacob K. White
1995 J jnl
Neural Comput.
Ibrahim M. Elfadel
1995 Misc conf
ICASSP
Ibrahim M. Elfadel
1995 J jnl
Neural Comput.
John L. Wyatt Jr., Ibrahim M. Elfadel
1994 A* conf
DAC
Luís Miguel Silveira, Ibrahim M. Elfadel, Jacob White, Moni Chilukuri, Kenneth S. Kundert
1994 conf
ICASSP (5)
Ibrahim M. Elfadel
1994 J jnl
IEEE Trans. Pattern Anal. Mach. Intell.
Ibrahim M. Elfadel, Rosalind W. Picard
1993 J jnl
J. Math. Imaging Vis.
Ibrahim M. Elfadel, Alan L. Yuille
1993 conf
NIPS
Ibrahim M. Elfadel, John L. Wyatt Jr.
1992 J jnl
J. Math. Imaging Vis.
Rosalind W. Picard, Ibrahim M. Elfadel
1991 A* conf
CVPR
Rosalind W. Picard, Ibrahim M. Elfadel, Alex Pentland
1991 J jnl
J. VLSI Signal Process.
Andrew Lumsdaine, John L. Wyatt Jr., Ibrahim M. Elfadel
redb/extractors/decompiler/bninja/analysis/scores.py
← Index redb/extractors/decompiler/bninja/analysis/scores.py python
from collections import deque
from binaryninja import highlevelil
from binaryninja.enums import HighLevelILOperation


class ObfuscationScores:
    def __init__(self, hlil_function):
        self.function = hlil_function
        self._basic_blocks = list(hlil_function.basic_blocks) if hlil_function and hlil_function.basic_blocks else []
        self._block_count = len(self._basic_blocks)

    def flattened_score(self):
        """
        A heuristic for detecting control flow flattening from Tim Blazytko.
        Source: https://www.synthesis.to/2021/03/03/flattening_detection.html
        """
        if self._block_count == 0:
            return 0.0

        max_flattening_ratio = 0.0

        for basic_block in self._basic_blocks:
            dominated = get_dominated_by(basic_block)
            if not any(edge.source in dominated for edge in basic_block.incoming_edges):
                continue
            ratio = len(dominated) / self._block_count
            if ratio > max_flattening_ratio:
                max_flattening_ratio = ratio

        return max_flattening_ratio

    def MBA_score(self):
        """
        Score for MBA is obtained by the number of instructions that have at least one arithmetic operation and
        one logic operation DIVIDED by the number of instructions.
        """
        total = 0
        mba_count = 0

        for ins in self.function.instructions:
            total += 1
            if uses_mba(ins):
                mba_count += 1

        if total == 0:
            return 0.0

        return mba_count / total

def get_dominated_by(dominator):
    """
    Get the dominators that are dominated by the given dominator.
    (To recall the theory, a basic block B is called dominator for A if every path from START
    to A must include B)
    """
    result = set()
    worklist = deque([dominator])

    while worklist:
        block = worklist.popleft()
        if block in result:
            continue
        result.add(block)
        worklist.extend(block.dominator_tree_children)

    return result

_ARITHMETIC_OPS = frozenset({
    HighLevelILOperation.HLIL_ADD,
    HighLevelILOperation.HLIL_NEG,
    HighLevelILOperation.HLIL_SUB,
    HighLevelILOperation.HLIL_MUL,
    HighLevelILOperation.HLIL_DIVS,
    HighLevelILOperation.HLIL_MODS,
})

_LOGIC_OPS = frozenset({
    HighLevelILOperation.HLIL_NOT,
    HighLevelILOperation.HLIL_AND,
    HighLevelILOperation.HLIL_OR,
    HighLevelILOperation.HLIL_XOR,
    HighLevelILOperation.HLIL_LSR,
    HighLevelILOperation.HLIL_LSL,
})

_MBA_OPS = _ARITHMETIC_OPS | _LOGIC_OPS

def uses_mba(hlil_instruction):
    uses_logic = False
    uses_arithmetic = False
    stack = [hlil_instruction]

    while stack:
        instruction = stack.pop()

        if not isinstance(instruction, highlevelil.HighLevelILInstruction):
            continue

        op = instruction.operation

        if op not in _MBA_OPS:
            for operand in instruction.operands:
                if isinstance(operand, highlevelil.HighLevelILInstruction):
                    stack.append(operand)
            continue

        if op in _ARITHMETIC_OPS:
            uses_arithmetic = True
        else:
            uses_logic = True

        if uses_logic and uses_arithmetic:
            return True

        for operand in instruction.operands:
            if isinstance(operand, highlevelil.HighLevelILInstruction):
                stack.append(operand)

    return False