Ragab A. El-Sehiemy

58 papers Journal 58
YearRankTypeTitle / Venue / Authors
2026 J jnl
Comput. Electr. Eng.
Mohamed Lahdeb, Ali Hennache, Bachir Bentouati, Mohamed Mostafa Ramadan Ahmed, Ragab A. El-Sehiemy, M. Elzalik
2025 J jnl
Neural Comput. Appl.
Nermeen Gamal Rezk, Ragab A. El-Sehiemy, Abdel-Fattah Attia, Heba El-Behery
2025 J jnl
J. Supercomput.
Takieddine Meriouma, Sid-Ahmed Bessedik, Rabah Djekidel, Ragab A. El-Sehiemy
2025 J jnl
Appl. Soft Comput.
Hasnaa M. El-Arwash, Almoataz Y. Abdelaziz, Ragab A. El-Sehiemy
2024 J jnl
IEEE Access
Ahmed M. Abed, Ragab A. El-Sehiemy, Bachir Bentouati, Hasnaa M. El-Arwash
2024 J jnl
Neural Comput. Appl.
Mohamed H. Hassan, Salah Kamel, Ali Selim, Abdullah M. Shaheen, Juan Yu, Ragab A. El-Sehiemy
2024 J jnl
Neural Comput. Appl.
Rizk Masoud Rizk-Allah, Ragab A. El-Sehiemy, Mohamed I. Abdelwanis
2024 J jnl
IEEE Access
Mohamed Mostafa Ramadan Ahmed, Sohrab Mirsaeidi, Mohsin Ali Koondhar, Nabil Karami, ElSayed M. Tag-ElDin, Nivin A. Ghamry, Ragab A. El-Sehiemy, Zuhair Muhammed Alaas, Ibrahim Mahariq, Adel M. Sharaf
2024 J jnl
J. Ambient Intell. Humaniz. Comput.
Mona Gamal Gafar, Ragab A. El-Sehiemy, Hany M. Hasanien, Amlak Abaza
2024 J jnl
Neural Comput. Appl.
Adel A. Abou El-Ela, Ragab A. El-Sehiemy, Abdullah M. Shaheen, Ayman S. Shalaby, Mohamed T. Mouwafi
2024 J jnl
Algorithms
Chiva Mayouf, Ahmed Salhi, Fanta Haidara, Fatima Zahra Aroua, Ragab A. El-Sehiemy, Djemai Naimi, Chouaib Aya, Cheikh Sidi Ethmane Kane
2023 J jnl
Neural Comput. Appl.
Rizk Masoud Rizk-Allah, Mohamed I. Abdelwanis, Ragab A. El-Sehiemy, Ahmed S. Abd-Elrazek
2023 J jnl
J. Supercomput.
Araby Mahdy, Abdullah Mohammed Shaheen, Ragab A. El-Sehiemy, Ahmed Rabie Ginidi
2023 J jnl
IEEE Syst. J.
Ahmed Samir Abbas, Adel A. Abou El-Ela, Ragab A. El-Sehiemy, Khalid K. Fetyan
2023 J jnl
Appl. Soft Comput.
Shahenda Sarhan, Ragab A. El-Sehiemy, Abdullah Mohammed Shaheen, Mona Gamal Gafar
2023 J jnl
Turkish J. Electr. Eng. Comput. Sci.
Abdullah Mohammed Shaheen, Ragab A. El-Sehiemy, Mohammed Kharrich, Salah Kamel
2022 J jnl
Knowl. Based Syst.
Abdullah Mohammed Shaheen, Abdallah M. Elsayed, Ahmed Rabie Ginidi, Ragab A. El-Sehiemy, Ehab E. Elattar
2022 J jnl
J. Ambient Intell. Humaniz. Comput.
Ragab A. El-Sehiemy
2022 J jnl
IEEE Access
Abdullah Mohammed Shaheen, Abdallah M. Elsayed, Ehab E. Elattar, Ragab A. El-Sehiemy, Ahmed Rabie Ginidi
2022 J jnl
IEEE Access
Ahmed S. Abd-Elrazek, Ragab A. El-Sehiemy, Hegazy Rezk, Rania M. Ghoniem, Polycarpos Falaras, Alaa A. Zaky
2022 J jnl
IEEE Syst. J.
Abdullah Mohammed Shaheen, Abdullah M. Elsayed, Ahmed Rabie Ginidi, Ragab A. El-Sehiemy, Ehab E. Elattar
2022 J jnl
IEEE Syst. J.
Abdullah Mohammed Shaheen, Abdallah M. Elsayed, Ragab A. El-Sehiemy
2022 J jnl
Intell. Autom. Soft Comput.
Sherif S. M. Ghoneim, Mosleh M. Al-Harthi, Ragab A. El-Sehiemy, Abdullah M. Shaheen
2021 J jnl
IEEE Access
Abdullah Mohammed Shaheen, Ahmed Rabie Ginidi, Ragab A. El-Sehiemy, Sherif S. M. Ghoneim
2021 J jnl
IEEE Access
Abdullah Mohammed Shaheen, Ragab A. El-Sehiemy, Ehab E. Elattar, Ahmed S. Abd-Elrazek
2021 J jnl
IEEE Syst. J.
Abdullah Mohammed Shaheen, Ragab A. El-Sehiemy
2021 J jnl
IEEE Access
Ahmed Rabie Ginidi, Abdallah M. Elsayed, Abdullah Mohammed Shaheen, Ehab E. Elattar, Ragab A. El-Sehiemy
2021 J jnl
IEEE Access
Abdallah M. Elsayed, Abdullah Mohammed Shaheen, Mosleh M. Al-Harthi, Sherif S. M. Ghoneim, Ragab A. El-Sehiemy
2021 J jnl
IEEE Access
Abdullah Mohammed Shaheen, Ehab E. Elattar, Ragab A. El-Sehiemy, Abdallah M. Elsayed
2021 J jnl
J. Ambient Intell. Humaniz. Comput.
Bachir Bentouati, Aboubakr Khelifi, Abdullah Mohammed Shaheen, Ragab A. El-Sehiemy
2021 J jnl
IEEE Access
Abdullah Mohammed Shaheen, Abdullah M. Elsayed, Ahmed Rabie Ginidi, Ehab E. Elattar, Ragab A. El-Sehiemy
2021 J jnl
Neural Comput. Appl.
Adel A. Abou El-Ela, Ragab A. El-Sehiemy, Abdullah Mohammed Shaheen, Abd El-Gelil Diab
2021 J jnl
Appl. Soft Comput.
Abdullah Mohammed Shaheen, Abdallah M. Elsayed, Ragab A. El-Sehiemy, Almoataz Y. Abdelaziz
2021 J jnl
IEEE Access
Abdullah Mohammed Shaheen, Ragab A. El-Sehiemy, Salah Kamel, Ehab E. Elattar, Abdallah M. Elsayed
2021 J jnl
IEEE Syst. J.
Adel A. Abou El-Ela, Ragab A. El-Sehiemy, Abdullah Mohammed Shaheen, Aya R. Ellien
2021 J jnl
IEEE Syst. J.
Abdullah Mohammed Shaheen, Ragab A. El-Sehiemy
2021 J jnl
IEEE Access
Ehab E. Elattar, Abdullah Mohammed Shaheen, Abdallah M. Elsayed, Ragab A. El-Sehiemy, Ahmed Rabie Ginidi
2021 J jnl
Neural Comput. Appl.
Ashok Valabhoju, Anamika Yadav, Mohammad Pazoki, Ragab A. El-Sehiemy
2020 J jnl
IEEE Access
Emad Ali Almabsout, Ragab A. El-Sehiemy, Osman Nuri Uçan, Oguz Bayat
2020 J jnl
IEEE Access
Abdullah Mohammed Shaheen, Ahmed Rabie Ginidi, Ragab A. El-Sehiemy, Sherif S. M. Ghoneim
2020 J jnl
IEEE Access
Ehab E. Elattar, Abdullah Mohammed Shaheen, Abdallah M. Elsayed, Ragab A. El-Sehiemy
2020 J jnl
IEEE Access
Mohamed I. Abdelwanis, Amlak Abaza, Ragab A. El-Sehiemy, Mohamed N. Ibrahim, Hegazy Rezk
2020 J jnl
IEEE Trans. Comput. Soc. Syst.
Abdel-Fattah Attia, Mohamed E. Abd Elaziz, Aboul Ella Hassanien, Ragab A. El-Sehiemy
2020 J jnl
Neural Comput. Appl.
Soheil Dolatabadi, Ragab A. El-Sehiemy, Saeid Ghassemzadeh
2019 J jnl
IEEE Access
Mona Gamal Gafar, Ragab A. El-Sehiemy, Hany M. Hasanien
2019 J jnl
Neural Comput. Appl.
Abdullah Mohammed Shaheen, Ragab A. El-Sehiemy, Sobhy M. Farrag
2019 J jnl
IEEE Access
Muhammed Badeaa Shafik, Hongkun Chen, Ghamgeen I. Rashed, Ragab A. El-Sehiemy
2019 J jnl
IEEE Access
Muhammed Badeaa Shafik, Hongkun Chen, Ghamgeen I. Rashed, Ragab A. El-Sehiemy, Mohamed R. Elkadeem, Shaorong Wang
2019 J jnl
Knowl. Based Syst.
Mostafa A. El-Hosseini, Ragab A. El-Sehiemy, Yasser I. Rashwan, X. Z. Gao
2019 J jnl
Neural Comput. Appl.
Salma Abd El-Sattar, Salah Kamel, Ragab A. El-Sehiemy, Francisco Jurado, Juan Yu
2018 J jnl
Appl. Soft Comput.
Rizk Masoud Rizk-Allah, Ragab A. El-Sehiemy, Gai-Ge Wang
2018 J jnl
IEEE Syst. J.
Abdullah Mohammed Shaheen, Ragab A. El-Sehiemy, Sobhy M. Farrag
2018 J jnl
IEEE Syst. J.
Abdullah Mohammed Shaheen, Ragab A. El-Sehiemy, Sobhy M. Farrag
2018 J jnl
IEEE Syst. J.
Adel A. Abou El-Ela, Ragab A. El-Sehiemy, Ahmed Samir Abbas
2017 J jnl
J. Supercomput.
Rizk Masoud Rizk-Allah, Ragab A. El-Sehiemy, Suash Deb, Gai-Ge Wang
2017 J jnl
Appl. Soft Comput.
Walaa S. Sakr, Ragab A. El-Sehiemy, Ahmed M. Azmy
2016 J jnl
Appl. Soft Comput.
H. R. E. H. Bouchekara, A. E. Chaib, Mohammad A. Abido, Ragab A. El-Sehiemy
2014 J jnl
Int. J. Bio Inspired Comput.
Ragab A. El-Sehiemy, Muhammad Shafiq, Ahmed M. Azmy
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