Mahmoud Masoud

35 papers Journal 29Unranked 6
YearRankTypeTitle / Venue / Authors
2026 J jnl
IEEE Access
Alala BaHamid, Mahmoud Masoud, Azhar Mohd Ibrahim, Tanveer Saleh
2025 J jnl
IEEE Access
Mahmoud Masoud, Omar Ashraf Ibrahim, Mohammed Elhenawy
2025 J jnl
Ann. Oper. Res.
Shi Qiang Liu, Erhan Kozan, Mahmoud Masoud, Debiao Li, Kai Luo
2025 conf
ITSC
Long Wang, Mahmoud Masoud, Mohammed Elhenawy, Sebastien Glaser
2025 J jnl
IEEE Trans. Syst. Man Cybern. Syst.
Waqar Ahmed Khan, Sai-Ho Chung, Shi Qiang Liu, Mahmoud Masoud, Xin Wen
2025 J jnl
J. Intell. Manuf.
Waqar Ahmed Khan, Mahmoud Masoud, Abdelrahman E. E. Eltoukhy, Mehran Ullah
2024 J jnl
Expert Syst. Appl.
Qiang Zhang, Shi Qiang Liu, Andrea D'Ariano, Sai-Ho Chung, Mahmoud Masoud, Xiangong Li
2024 J jnl
CoRR
Mahmoud Masoud, Ahmed Abdelhay, Mohammed Elhenawy
2024 J jnl
Mach. Learn. Knowl. Extr.
Md. Mostafizur Rahman Komol, Mohammed Elhenawy, Jack Pinnow, Mahmoud Masoud, Andry Rakotonirainy, Sebastien Glaser, Merle Wood, David Alderson
2023 J jnl
IEEE Access
Mahmoud Masoud
2023 J jnl
IEEE Trans. Intell. Transp. Syst.
Md. Mostafizur Rahman Komol, Mohammed Elhenawy, Mahmoud Masoud, Andry Rakotonirainy, Sebastien Glaser, Merle Wood, David Alderson
2023 J jnl
Comput. Ind. Eng.
Lanyan Zeng, Shi Qiang Liu, Erhan Kozan, Robert L. Burdett, Mahmoud Masoud, Sai-Ho Chung
2022 J jnl
IEEE Access
Md. Mostafizur Rahman Komol, Jack Pinnow, Mohammed Elhenawy, Shamsunnahar Yasmin, Mahmoud Masoud, Sebastien Glaser, Andry Rakotonirainy
2022 J jnl
J. Comb. Optim.
Qiang Zhang, Shi Qiang Liu, Mahmoud Masoud
2021 J jnl
Sensors
Mohammed Elhenawy, Md. Mostafizur Rahman Komol, Mahmoud Masoud, Shi Qiang Liu, Huthaifa I. Ashqar, Mohammed Hamad Almannaa, Hesham A. Rakha, Andry Rakotonirainy
2021 J jnl
J. Intell. Fuzzy Syst.
Zeinul Abdeen M. Silmi Juman, Mahmoud Masoud, Mohammed Elhenawy, Hanif Bhuiyan, Md. Mostafizur Rahman Komol, Olga Battaïa
2021 J jnl
IEEE Access
Md. Mostafizur Rahman Komol, Mohammed Elhenawy, Mahmoud Masoud, Sebastien Glaser, Andry Rakotonirainy, Merle Wood, David Alderson
2021 J jnl
CoRR
Ahmed Stohy, Heba-Tullah Abdelhakam, Sayed Ali, Mohammed Elhenawy, Abdallah A. Hassan, Mahmoud Masoud, Sebastien Glaser, Andry Rakotonirainy
2021 J jnl
IEEE Access
Wahid Ghazi Allihaibi, Mahmoud Masoud, Mohammed Elhenawy, Shi Qiang Liu, John Burke, Azharul Karim
2020 J jnl
CoRR
Mohammed Hamad Almannaa, Huthaifa I. Ashqar, Mohammed Elhenawy, Mahmoud Masoud, Andry Rakotonirainy, Hesham Rakha
2020 J jnl
IEEE Access
Mohammed Elhenawy, Mahmoud Masoud, Sebastien Glaser, Andry Rakotonirainy
2020 conf
ITSC
Mahmoud Masoud, Erhan Kozan, Shi Qiang Liu, Mohammed Elhenawy, Paul Corry, Robert L. Burdett, Andrea D'Ariano
2020 J jnl
CoRR
Md. Mostafizur Rahman Komol, Mohammed Elhenawy, Shamsunnahar Yasmin, Mahmoud Masoud, Andry Rakotonirainy
2020 J jnl
Remote. Sens.
Mohammed Elhenawy, Huthaifa I. Ashqar, Mahmoud Masoud, Mohammed H. Almannaa, Andry Rakotonirainy, Hesham A. Rakha
2020 J jnl
CoRR
Mohammed Elhenawy, Md. Mostafizur Rahman Komol, Huthaifa I. Ashqar, Mohammed Hamad Almannaa, Mahmoud Masoud, Hesham A. Rakha, Andry Rakotonirainy
2020 J jnl
CoRR
Huthaifa I. Ashqar, Mohammed Elhenawy, Mahmoud Masoud, Andry Rakotonirainy, Hesham A. Rakha
2019 conf
ITSC
Mohammed H. Almannaa, Mohammed Elhenawy, Mahmoud Masoud, Hesham A. Rakha
2019 conf
MENACOMM
Mohammed M. Bait-Suwailam, Haitham Alajmi, Mahmoud Masoud
2019 J jnl
IEEE Access
Mahmoud Masoud, Mohammed Elhenawy, Mohammed H. Almannaa, Shi Qiang Liu, Sebastien Glaser, Andry Rakotonirainy
2019 conf
ITSC
Mahmoud Masoud, Mohammed Elhenawy, Mohammed H. Almannaa, Shi Qiang Liu, Sebastien Glaser, Andry Rakotonirainy
2019 J jnl
CoRR
Mohammed Elhenawy, Mahmoud Masoud, Sebastien Glaser, Andry Rakotonirainy
2019 conf
ITSC
Huthaifa I. Ashqar, Mohammed Elhenawy, Mahmoud Masoud, Andry Rakotonirainy, Hesham A. Rakha
2018 J jnl
Int. J. Prod. Res.
Shi Qiang Liu, Erhan Kozan, Mahmoud Masoud, Yu Zhang, Felix T. S. Chan
2017 J jnl
Optim. Lett.
Mahmoud Masoud, Erhan Kozan, Geoff Kent, Shi Qiang Liu
2016 J jnl
Comput. Ind. Eng.
Mahmoud Masoud, Erhan Kozan, Geoff Kent, Shi Qiang Liu
Dockerfile
← Index Dockerfile dockerfile
FROM python:3.12-slim

# Prevent interactive prompts during package installation
ENV DEBIAN_FRONTEND=noninteractive

# Install system dependencies (build tools will be removed after pip install).
# curl + ca-certificates + gnupg are needed to add the NodeSource repository
# for the JS analysis toolchain (webcrack + @nodesecure/js-x-ray).
RUN apt-get update && apt-get install -y \
    git \
    gcc \
    g++ \
    build-essential \
    libmagic1 \
    file \
    libqt5core5a \
    libqt5gui5 \
    libqt5widgets5 \
    default-jre-headless \
    curl \
    ca-certificates \
    gnupg \
    && rm -rf /var/lib/apt/lists/*

# Install Node.js 22 LTS (needed by webcrack and @nodesecure/js-x-ray). Pinning
# to 22.x because that's the active LTS — bumping to a future major is a
# deliberate Dockerfile change, not a silent upgrade on rebuild.
RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash - && \
    apt-get install -y nodejs && \
    rm -rf /var/lib/apt/lists/*

# webcrack is the deobfuscator (CLI on PATH). Pinned to 2.16.0 — released
# 2026-04-25, last verified working with our subprocess invocation. Bumping
# this is a deliberate change so a future regression in webcrack does not
# show up as a silent JSDeobfuscation behaviour shift on image rebuild.
RUN npm install -g webcrack@2.16.0

# Create application directory
WORKDIR /app

# Copy requirements and install Python dependencies
COPY requirements.txt .
RUN pip3 install --no-cache-dir -r requirements.txt

# Remove build dependencies to reduce image size. curl + gnupg are kept —
# curl is widely useful and gnupg is small. Node.js stays.
RUN apt-get remove -y gcc g++ build-essential git && \
    apt-get autoremove -y && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

# Copy application code (explicit files to help debug .dockerignore issues)
COPY redb/ ./redb/
COPY start.py .
COPY scripts/ ./scripts/

# Install @nodesecure/js-x-ray locally next to its bundled Node bridge so the
# Python wrapper's `node_modules/@nodesecure/js-x-ray` existence check passes
# without any runtime configuration. Version is pinned in the package.json.
# The npm install also triggers the `postinstall: patch-package` hook which
# re-applies the local patch in scripts/patches/ — currently a one-line fix
# for a `from "repl"` → `from "module"` import in [email protected] that breaks
# on Node 22 patches above ~22.10. Drop the patch when js-x-ray ships a fix.
RUN cd /app/redb/extractors/js_extractors/scripts && npm install --omit=dev

# Set up logging path and create logs directory
ENV LOG_FILE_PATH="/app/logs/"
RUN mkdir -p /app/logs

# Environment variables for tools (snapshot-style paths)
ENV CAPA_PATH="/usr/bin/capa"
ENV DIE_PATH="/usr/bin/nfdc"
ENV GORESYM_PATH="/usr/bin/GoReSym"
ENV JADX_PATH="/opt/deploy/jadx/bin/jadx"
ENV APKTOOL_PATH="/usr/local/bin/apktool"
ENV MALCONTENT_PATH="/usr/local/bin/mal"
ENV PATH="/usr/bin:/opt/binaryninja:${PATH}"
ENV PYTHONPATH="/opt/binaryninja/python"

# Tool timeouts
ENV CAPA_TIMEOUT="300"
ENV DIE_TIMEOUT="180"
ENV MALCONTENT_TIMEOUT="300"
ENV JADX_TIMEOUT="600"
ENV BINJA_TIMEOUT="1200"
ENV DECOMPILE_EXTRACTOR_TIMEOUT="2580"

ENV MALCONTENT_FORMATS=pebin,elf,macho,apk,javascript

# JS analysis toolchain. webcrack is on PATH from the global npm install;
# js-x-ray's Python wrapper finds the bundled Node bridge at the default
# location (no env needed). Override these in .env / Nomad if you swap tools.
ENV JS_DEOBFUSCATOR_PATH="webcrack"
ENV JS_DEOBFUSCATE_TIMEOUT="60"
ENV JS_XRAY_TIMEOUT="60"

# Copy the Binary Ninja setup script
COPY scripts/setup-and-run.sh /usr/local/bin/setup-and-run.sh
RUN chmod +x /usr/local/bin/setup-and-run.sh

# Create non-root user for security
RUN useradd -m -u 1000 analyzer
RUN chown -R analyzer:analyzer /app /app/logs
USER analyzer

# Set entrypoint to setup script for Binary Ninja installation (runtime)
ENTRYPOINT ["/usr/local/bin/setup-and-run.sh"]

# Set working directory
WORKDIR /app

# Default command - supports both feature extraction and decompilation
CMD ["python3", "start.py", "--nomad-job"]