Owolabi Legunsen

42 papers A* 11A 8B 1C 1Journal 10Unranked 9
YearRankTypeTitle / Venue / Authors
2025 J jnl
CoRR
Zhuohang Shen, Mohammed Yaseen, Denini Silva, Kevin Guan, Junho Lee, Marcelo d'Amorim, Owolabi Legunsen
2025 J jnl
CoRR
Lingjun Liu, Feiran (Alex) Qin, Owolabi Legunsen, Marcelo d'Amorim
2025 J jnl
Proc. ACM Program. Lang.
Kevin Guan, Marcelo d'Amorim, Owolabi Legunsen
2025 A* conf
ASE
Shinhae Kim, Saikat Dutta, Owolabi Legunsen
2025 A* conf
ICSE
Kevin Guan, Owolabi Legunsen
2025 conf
SIGSOFT FSE Companion
Kevin Guan, Owolabi Legunsen
2024 A conf
ISSTA
Kevin Guan, Owolabi Legunsen
2024 conf
SIGSOFT FSE Companion
Yu Liu, Aditya Thimmaiah, Owolabi Legunsen, Milos Gligoric
2023 A* conf
SOSP
Jiawei Tyler Gu, Xudong Sun, Wentao Zhang, Yuxuan Jiang, Chen Wang, Mandana Vaziri, Owolabi Legunsen, Tianyin Xu
2023 A conf
ISSTA
Yu Liu, Pengyu Nie, Anna Guo, Milos Gligoric, Owolabi Legunsen
2023 A conf
ISSTA
Yu Liu, Jiyang Zhang, Pengyu Nie, Milos Gligoric, Owolabi Legunsen
2023 J jnl
IEEE Trans. Software Eng.
Adriano Torres, Pedro Henrique Teixeira Costa, Luis Henrique Vieira Amaral, Jonata Pastro, Rodrigo Bonifácio, Marcelo d'Amorim, Owolabi Legunsen, Eric Bodden, Edna Dias Canedo
2023 B conf
RV
Ayaka Yorihiro, Pengyue Jiang, Valeria Marqués, Benjamin Carleton, Owolabi Legunsen
2023 conf
ICSE Companion
Yu Liu, Zachary Thurston, Alan Han, Pengyu Nie, Milos Gligoric, Owolabi Legunsen
2023 J jnl
CoRR
Yu Liu, Zachary Thurston, Alan Han, Pengyu Nie, Milos Gligoric, Owolabi Legunsen
2022 C conf
AST
Jiyang Zhang, Yu Liu, Milos Gligoric, Owolabi Legunsen, August Shi
2022 A* conf
ASE
Yu Liu, Pengyu Nie, Owolabi Legunsen, Milos Gligoric
2022 J jnl
CoRR
Yu Liu, Pengyu Nie, Owolabi Legunsen, Milos Gligoric
2022 ed.
SPIN
Owolabi Legunsen, Grigore Rosu
2021 A* conf
ICSE
Yuanliang Zhang, Haochen He, Owolabi Legunsen, Shanshan Li, Wei Dong, Tianyin Xu
2021 conf
ICSE (Companion Volume)
Yuanliang Zhang, Haochen He, Owolabi Legunsen, Shanshan Li, Wei Dong, Tianyin Xu
2021 J jnl
CoRR
Yuanliang Zhang, Haochen He, Owolabi Legunsen, Shanshan Li, Wei Dong, Tianyin Xu
2020 A conf
ICST
Breno Miranda, Igor Lima, Owolabi Legunsen, Marcelo d'Amorim
2020 A* conf
OSDI
Xudong Sun, Runxiang Cheng, Jianyan Chen, Elaine Ang, Owolabi Legunsen, Tianyin Xu
2020 conf
ESEC/SIGSOFT FSE
Qingrong Chen, Teng Wang, Owolabi Legunsen, Shanshan Li, Tianyin Xu
2019 A* conf
ICSE
Chenguang Zhu, Owolabi Legunsen, August Shi, Milos Gligoric
2019
Owolabi Legunsen
2019 J jnl
Autom. Softw. Eng.
Owolabi Legunsen, Nader Al Awar, Xinyue Xu, Wajih Ul Hassan, Grigore Rosu, Darko Marinov
2019 J jnl
Proc. ACM Program. Lang.
August Shi, Milica Hadzi-Tanovic, Lingming Zhang, Darko Marinov, Owolabi Legunsen
2019 A conf
ICST
Owolabi Legunsen, Yi Zhang, Milica Hadzi-Tanovic, Grigore Rosu, Darko Marinov
2018 A conf
ICST
Farah Hariri, August Shi, Owolabi Legunsen, Milos Gligoric, Sarfraz Khurshid, Sasa Misailovic
2018 A* conf
ICSE
Jonathan Bell, Owolabi Legunsen, Michael Hilton, Lamyaa Eloussi, Tifany Yung, Darko Marinov
2018 A conf
ISSRE
Alex Gyori, Owolabi Legunsen, Farah Hariri, Darko Marinov
2018 conf
ESEC/SIGSOFT FSE
Saikat Dutta, Owolabi Legunsen, Zixin Huang, Sasa Misailovic
2017 A* conf
ASE
Owolabi Legunsen, August Shi, Darko Marinov
2016 conf
SIGSOFT FSE
Owolabi Legunsen, Farah Hariri, August Shi, Yafeng Lu, Lingming Zhang, Darko Marinov
2016 A conf
ICST
August Shi, Alex Gyori, Owolabi Legunsen, Darko Marinov
2016 A* conf
ASE
Owolabi Legunsen, Wajih Ul Hassan, Xinyue Xu, Grigore Rosu, Darko Marinov
2016 conf
SIGSOFT FSE
Alex Gyori, Ben Lambeth, August Shi, Owolabi Legunsen, Darko Marinov
2015 conf
ICSE (2)
Owolabi Legunsen, Darko Marinov, Grigore Rosu
2014 A* conf
ASE
Milos Gligoric, Stas Negara, Owolabi Legunsen, Darko Marinov
2013 J jnl
J. Syst. Softw.
Lawrence Chung, Tom Hill, Owolabi Legunsen, Zhenzhou Sun, Adip Dsouza, Sam Supakkul
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"]