Haisheng Rong

22 papers Journal 4Unranked 18
YearRankTypeTitle / Venue / Authors
2025 conf
ECOC
Xinru Wu, Duanni Huang, Zhe Xuan, Songtao Liu, Junyi Gao, Xiaoxi Wang, Jinyong Kim, Jahnavi Sharma, Cooper Levy, James E. Jaussi, Haisheng Rong
2025 J jnl
CoRR
Neil Na, Chih-Hao Cheng, Shou-Chen Hsu, Che-Fu Liang, Chung-Chih Lin, Nathaniel Y. Na, Andrew I. Shieh, Erik Chen, Haisheng Rong, Richard A. Soref
2025 conf
OFC
Songtao Liu, Ranjeet Kumar, Xinru Wu, Xiaoxi Wang, Duanni Huang, Guan-Lin Su, Junyi Gao, Haisheng Rong
2024 J jnl
IEEE J. Solid State Circuits
Cooper S. Levy, Zhe Xuan, Jahnavi Sharma, Duanni Huang, Ranjeet Kumar, Chaoxuan Ma, Guan-Lin Su, Songtao Liu, Jinyong Kim, Xinru Wu, Tolga Acikalin, Haisheng Rong, Ganesh Balamurugan, James E. Jaussi
2024 conf
OFC
Duanni Huang, Shane Yerkes, Guan-Lin Su, Karan Mehta, Marcus Cramer, William O'Brien, Razi Dehghannasiri, Stan Dobek, Chelsea Mackos, Timothy Ward, Pari Patel, Ranjeet Kumar, Songtao Liu, Xinru Wu, Xiaoxi Wang, Junyi Gao, Mark Isenberger, Harel Frish, Haisheng Rong
2024 conf
OFC
Xinru Wu, Duanni Huang, Ranjeet Kumar, Guan-Lin Su, Junyi Gao, Songtao Liu, Xiaoxi Wang, Haisheng Rong
2023 conf
VLSI Technology and Circuits
Zhe Xuan, Ganesh Balamurugan, Duanni Huang, Ranjeet Kumar, Jahnavi Sharma, Cooper Levy, Jinyong Kim, Chaoxuan Ma, Guan-Lin Su, Songtao Liu, Xinru Wu, Tolga Acikalin, Haisheng Rong, James E. Jaussi
2023 conf
CICC
Cooper Levy, Zhe Xuan, Duanni Huang, Ranjeet Kumar, Jahnavi Sharma, Taehwan Kim, Chaoxuan Ma, Guan-Lin Su, Songtao Liu, Jinyong Kim, Xinru Wu, Ganesh Balamurugan, Haisheng Rong, James E. Jaussi
2023 conf
OFC
Xinru Wu, Duanni Huang, Taehwan Kim, Ranjeet Kumar, Guan-Lin Su, Chaoxuan Ma, Songtao Liu, Ganesh Balamurugan, Haisheng Rong
2022 conf
OFC
Hao Li, Meer Nazmus Sakib, Duanni Huang, Ranjeet Kumar, Haisheng Rong, Ganesh Balamurugan, James E. Jaussi
2022 conf
OFC
Meer Sakib, Ranjeet Kumar, Chaoxuan Ma, Duanni Huang, Xinru Wu, Guan-Lin Su, Haisheng Rong
2022 conf
OFC
Ranjeet Kumar, Duanni Huang, Meer Sakib, Guan-Lin Su, Chaoxuan Ma, Xinru Wu, Haisheng Rong
2022 J jnl
IEEE J. Solid State Circuits
Jahnavi Sharma, Zhe Xuan, Hao Li, Taehwan Kim, Ranjeet Kumar, Meer N. Sakib, Chun-Ming Hsu, Chaoxuan Ma, Haisheng Rong, Ganesh Balamurugan, James E. Jaussi
2021 conf
ECOC
Peicheng Liao, Meer Sakib, Duanni Huang, Ranjeet Kumar, Xinru Wu, Chaoxuan Ma, Guan-Lin Su, Haisheng Rong
2021 J jnl
IEEE J. Solid State Circuits
Hao Li, Ganesh Balamurugan, Taehwan Kim, Meer Sakib, Ranjeet Kumar, Haisheng Rong, James E. Jaussi, Bryan Casper
2021 conf
ECOC
Hao Li, Zhe Xuan, Ranjeet Kumar, Meer Sakib, Jahnavi Sharma, Chun-Ming Hsu, Chaoxuan Ma, Haisheng Rong, Ganesh Balamurugan, James E. Jaussi
2021 conf
VLSI Circuits
Jahnavi Sharma, Hao Li, Zhe Xuan, Ranjeet Kumar, Chun-Ming Hsu, Meer Sakib, Peicheng Liao, Haisheng Rong, James E. Jaussi, Ganesh Balamurugan
2021 conf
ECOC
Hossam Shoman, Nicolas A. F. Jaeger, Connor Mosquera, Hasitha Jayatilleka, Minglei Ma, Haisheng Rong, Sudip Shekhar, Lukas Chrostowski
2020 conf
ISSCC
Hao Li, Ganesh Balamurugan, Meer Sakib, Ranjeet Kumar, Hasitha Jayatilleka, Haisheng Rong, James E. Jaussi, Bryan Casper
2020 conf
OFC
Meer Sakib, Peicheng Liao, Ranjeet Kumar, Duanni Huang, Guan-Lin Su, Chaoxuan Ma, Haisheng Rong
2019 conf
OFC
Hao Li, Ganesh Balamurugan, Meer Sakib, Jie Sun, Jeffery Driscoll, Ranjeet Kumar, Hasitha Jayatilleka, Haisheng Rong, James E. Jaussi, Bryan Casper
2018 conf
OFC
Jie Sun, Meer Sakib, Jeffrey Driscoll, Ranjeet Kumar, Hasitha Jayatilleka, Yoel Chetrit, Haisheng Rong
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"]