Nasim Ullah

51 papers Journal 51
YearRankTypeTitle / Venue / Authors
2025 J jnl
IEEE Access
Imran Hussain, Hafiz Ashiq Hussain, Nasim Ullah, Stanislav Misák
2025 J jnl
IEEE Access
Jahan Zaib Bhatti, Guo-Ping Liu, Shafqat Ali, Nasim Ullah, Ivo Pergl, Lukas Prokop, Vojtech Blazek
2025 J jnl
IEEE Access
Aqsa Islam, Nasim Ullah, Vojtech Blazek, Lukas Prokop, Hafeez Anwar
2025 J jnl
IEEE Access
Imran Hussain, Hafiz Ashiq Hussain, Nasim Ullah, Stanislav Misák
2024 J jnl
IEEE Access
Imran Hussain, Hafiz Ashiq Hussain, Nasim Ullah, Stanislav Misák
2024 J jnl
IEEE Access
Muhammad Mohsin Rafiq, Nasim Ullah, Lukás Prokop, Stanislav Misák, Vojtech Blazek, Muhammad Ishfaq
2024 J jnl
IEEE Access
Muhammad Mohsin Rafiq, Nasim Ullah, Lukás Prokop, Stanislav Misák
2024 J jnl
IEEE Access
Peng Wang, Xiaogao Xing, Waqar Younis, Nasim Ullah, Lukás Prokop, Stanislav Misák, Zubair Yamin
2023 J jnl
IEEE Access
Tila Muhammad, Adnan Umar Khan, Yousra Abid, Muhammad Hilal Khan, Nasim Ullah, Vojtech Blazek, Lukás Prokop, Stanislav Misák
2023 J jnl
ISPRS Int. J. Geo Inf.
Shabnam Mateen, Narissara Nuthammachot, Kuaanan Techato, Nasim Ullah
2023 J jnl
Remote. Sens.
Shahid Hassan, Xiangrong Wang, Saima Ishtiaq, Nasim Ullah, Alsharef Mohammad, Abdulfattah Noorwali
2023 J jnl
ACM Trans. Embed. Comput. Syst.
Muhammad Awais Khan, Ali Zahir, Syed Ayaz Ali Shah, Pedro Reviriego, Anees Ullah, Nasim Ullah, Adam Khan, Hazrat Ali
2022 J jnl
IEEE Access
Muhammad Anique Aslam, Syed Abdul Rahman Kashif, Ghulam Abbas, Nasim Ullah, Lukás Prokop, Vojtech Blazek, Stanislav Misák
2022 J jnl
Int. J. Model. Simul. Sci. Comput.
Nasim Ullah, Al-Sharef Mohammad
2022 J jnl
IEEE Access
Adeel Zaidi, Muhammad Kazim, Rui Weng, Shafqat Ali, Muhammad Taskeen Raza, Ghulam Abbas, Nasim Ullah, Al-Sharef Mohammad, Ahmad Aziz Alahmadi
2022 J jnl
IEEE Access
Irfan Sami, Shafaat Ullah, Sareer Ul Amin, Ahmed Al-Durra, Nasim Ullah, Jong-Suk Ro
2022 J jnl
IEEE Access
Muhammad Osama Saad, Abasin Ulasyar, Waleed Ali, Haris Sheh Zad, Nasim Ullah, Vojtech Blazek, Lukás Prokop, Stanislav Misák
2022 J jnl
IEEE Access
Muhammad Waleed Tahir, Ghulam Abbas, Muhammad Arsalan Ilyas, Nasim Ullah, S. M. Muyeen
2022 J jnl
Sensors
Saima Zafar, Usman Ayub, Hend I. Alkhammash, Nasim Ullah
2022 J jnl
Sensors
Saima Zafar, Syed Faseeh Ul Hassan, Al-Sharef Mohammad, Ahmad Aziz Alahmadi, Nasim Ullah
2022 J jnl
IEEE Access
Muhammad Kazim, Adeel Zaidi, Shafqat Ali, Muhammad Taskeen Raza, Ghulam Abbas, Nasim Ullah, Ahmad Aziz Alahmadi
2022 J jnl
IEEE Access
Muhammad Asim Shoaib, Abdul Qayyum Khan, Ghulam Mustafa, Owais Khan, Nasim Ullah, Muhammad Abid, Muhammad Arif, Sufi Tabassum Gul, Lukás Prokop, Vojtech Blazek, Stanislav Misák
2022 J jnl
Sensors
Saima Ishtiaq, Xiangrong Wang, Shahid Hassan, Alsharef Mohammad, Ahmad Aziz Alahmadi, Nasim Ullah
2021 J jnl
Sensors
Yasir Mehmood, Jawad Aslam, Nasim Ullah, Md. Shahariar Chowdhury, Kuaanan Techato, Ali Nasser Alzaed
2021 J jnl
IEEE Access
Naveed Ashraf, Ghulam Abbas, Nasim Ullah, Hend Ibraheem Alkhammash, Muhammad Zubair
2021 J jnl
IEEE Access
Nasim Ullah, Irfan Sami, Md. Shahariar Chowdhury, Kuaanan Techato, Hend Ibraheem Alkhammash
2021 J jnl
IEEE Access
Shafaat Ullah, Laiq Khan, Irfan Sami, Nasim Ullah
2021 J jnl
IEEE Access
Muhammad Asim Abbasi, Abdul Qayyum Khan, Ghulam Mustafa, Muhammad Abid, Aadil Sarwar Khan, Nasim Ullah
2021 J jnl
IEEE Access
Ahmad Aziz Alahmadi, Youcef Belkhier, Nasim Ullah, Habti Abeida, Mohamed S. Soliman, Yahya Salameh Hassan Khraisat, Yasser Mohammed Alharbi
2021 J jnl
IEEE Access
Youcef Belkhier, Abdelyazid Achour, Nasim Ullah, Rabindra N. Shaw, Zaheer Farooq, Anees Ullah, Ali Nasser Alzaed
2021 J jnl
Int. J. Model. Simul. Sci. Comput.
Hend Ibraheem Alkhammash, Sattam Al Otaibi, Nasim Ullah
2021 J jnl
IEEE Access
Nasim Ullah, Yasir Mehmood, Jawad Aslam, Amjad Ali, Jamshed Iqbal
2020 J jnl
Math. Found. Comput.
Nasim Ullah, Ahmad Aziz Alahmadi
2020 J jnl
CoRR
Shah Fahad, Nasim Ullah, Ali Jafer Mahdi, Asier Ibeas, Arman Goudarzi
2020 J jnl
IEEE Access
Nasim Ullah, Faisal Nisar, Ahmad Aziz Alahmadi
2020 J jnl
IEEE Access
Irfan Sami, Nasim Ullah, S. M. Muyeen, Kuaanan Techato, Md. Shahariar Chowdhury, Jong-Suk Ro
2020 J jnl
IEEE Access
Nasim Ullah, Zaheer Farooq, Irfan Sami, Md. Shahariar Chowdhury, Kuaanan Techato, Hend Ibraheem Alkhammash
2020 J jnl
IEEE Access
Irfan Sami, Shafaat Ullah, Abdul Basit, Nasim Ullah, Jong-Suk Ro
2020 J jnl
IEEE Access
Yasser Mohammed Alharbi, Ahmad Aziz Alahmadi, Nasim Ullah, Habti Abeida, Mohamed S. Soliman, Yahya Salameh Hassan Khraisat
2020 J jnl
Period. Polytech. Electr. Eng. Comput. Sci.
Nasim Ullah, Ahmad Aziz-Al Ahmadi
2019 J jnl
Int. J. Control
Wakeel Khan, Yan Lin, Sarmad Ullah Khan, Nasim Ullah
2019 J jnl
IEEE Access
Zaheer Farooq, Taimur Zaman, Muhammad Amir Khan, Nasim Ullah, S. M. Muyeen, Asier Ibeas
2019 J jnl
IEEE Access
Nasim Ullah, Ahmad Aziz-Al Ahmadi
2019 J jnl
IEEE Access
Ammar Ahmad, Nasim Ullah, Nisar Ahmed, Asier Ibeas, Ghulam Mehdi, Jorge A. Herrera, Anwar Ali
2018 J jnl
IEEE Access
Wakeel Khan, Yan Lin, Nasim Ullah, Asier Ibeas, Jorge A. Herrera
2018 J jnl
Appl. Math. Comput.
Wakeel Khan, Yan Lin, Sarmad Ullah Khan, Nasim Ullah
2017 J jnl
IEEE Access
Nasim Ullah, Muhammad Asghar Ali, Asier Ibeas, Jorge A. Herrera
2017 J jnl
IEEE Access
Nasim Ullah, Anees Ullah, Asier Ibeas, Jorge A. Herrera
2017 J jnl
Biomed. Signal Process. Control.
Sayyar Ahmad, Nasim Ullah, Nisar Ahmed, Muhammad Ilyas, Waqas Khan
2017 J jnl
Biomed. Signal Process. Control.
Nasim Ullah, Asier Ibeas, M. Shafi, M. Ishfaq, Mumtaz Ali
2016 J jnl
J. Syst. Control. Eng.
Zhangbao Xu, Dawei Ma, Jianyong Yao, Nasim Ullah
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