Kai Lennert Bober

21 papers A 1B 4C 3Misc 1Journal 3Unranked 9
YearRankTypeTitle / Venue / Authors
2025 C conf
WFCS
Atiyeh Pouralizadeh, Sreelal Maravanchery Mana, Kai Lennert Bober, Volker Jungnickel, Andrea Tonello, Christos Giachoudis, Ali Khalighi
2025 B conf
GLOBECOM
Anselm Ebmeyer, Kai Lennert Bober, Stefan Weide, Volker Jungnickel
2025 Misc conf
SoftCOM
Atiyeh Pouralizadeh, Kai Lennert Bober, Volker Jungnickel, Andrea Tonello
2024 B conf
WCNC
Anselm Ebmeyer, Kai Lennert Bober, Malte Hinrichs, Volker Jungnickel
2024 conf
ICC Workshops
Kai Lennert Bober, Anselm Ebmeyer, Jonathan Andree, Falko Dressler, Volker Jungnickel
2024 A conf
EuroS&P
Eric G. Ackermann, Kai Lennert Bober, Volker Jungnickel, Anja Lehmann
2023 conf
ISPLC
Kai Lennert Bober, Dominic Schulz, Volker Jungnickel, Anil Mengi
2023 B conf
WCNC
Javad Gholipour, Kai Lennert Bober, Malte Hinrichs, Volker Jungnickel
2023 J jnl
IEEE Trans. Mob. Comput.
Anatolij Zubow, Piotr Gawlowicz, Carolin Brunn, Kai Lennert Bober, Volker Jungnickel, Kai Habel, Falko Dressler
2022 J jnl
EURASIP J. Wirel. Commun. Netw.
Jean-Paul M. G. Linnartz, C. R. B. Corrêa, T. E. Bitencourt Cunha, Eduward Tangdiongga, Antonius M. J. Koonen, Xiong Deng, M. Wendt, Anteneh Alemu Abbo, Pieter J. Stobbelaar, P. Polak, Marcel Müller, Daniel Behnke, M. Martínez, Vicent Soler, Taner Metin, Marc Emmelmann, Sepideh Mohammadi Kouhini, Kai Lennert Bober, Christoph Kottke, Volker Jungnickel
2022 B conf
WCNC
Marcel Müller, Marc Emmelmann, Daniel Behnke, Dominic Schulz, Kai Lennert Bober, Christoph Kottke, Volker Jungnickel, Taner Metin
2022 conf
ICC
Jonathan Schostak, Malte Hinrichs, Kai Lennert Bober, Ronald Freund, Volker Jungnickel
2022 C conf
IECON
Kai Lennert Bober, Eric G. Ackermann, Ronald Freund, Volker Jungnickel, Tuncer Baykas, Sang-Kyu Lim
2021 J jnl
IEEE Trans. Green Commun. Netw.
Malte Hinrichs, Pablo Wilke Berenguer, Jonas Hilt, Peter Hellwig, Dominic Schulz, Anagnostis Paraskevopoulos, Kai Lennert Bober, Ronald Freund, Volker Jungnickel
2021 conf
EuCNC/6G Summit
Jean-Paul M. G. Linnartz, C. R. B. Corrêa, T. E. Bitencourt Cunha, Eduward Tangdiongga, Ton Koonen, Xiong Deng, M. Wendt, Anteneh Alemu Abbo, Pieter J. Stobbelaar, Marcel Müller, Daniel Behnke, M. M. Vazquez, S. V. Colonques, M. Bech, Taner Metin, Marc Emmelmann, Sepideh Mohammadi Kouhini, Kai Lennert Bober, Christoph Kottke, Volker Jungnickel
2021 C conf
WOWMOM
Anatolij Zubow, Piotr Gawlowicz, Kai Lennert Bober, Volker Jungnickel, Kai Habel, Falko Dressler
2020 conf
ICTON
Kai Lennert Bober, Volker Jungnickel, Marc Emmelmann, Maximilian Riegel, Eduward Tangdiongga, Antonius M. J. Koonen, Jean-Paul M. G. Linnartz, Daniel Behnke, Marcel Müller, Patrick-Benjamin Bök, S. V. Colonques, M. M. Vazquez
2020 conf
ICTON
Malte Hinrichs, Christian Schmidt, Benjamin Poddig, Jonas Hilt, Peter Hellwig, Dominic Schulz, Kai Lennert Bober, Jonathan Schostak, Ronald Freund, Volker Jungnickel
2020 conf
GLOBECOM (Workshops)
Marcel Müller, Daniel Behnke, Patrick-Benjamin Bök, Christoph Kottke, Kai Lennert Bober, Volker Jungnickel
2020 conf
OFC
Sreelal Maravanchery Mana, Peter Hellwig, Jonas Hilt, Kai Lennert Bober, Volker Jungnickel, Klara Hirmanova, Petr Chvojka, Radek Janca, Stanislav Zvanovec
2020 conf
OFC
Volker Jungnickel, Pablo Wilke Berenguer, Sreelal Maravanchery Mana, Malte Hinrichs, Sepideh Mohammadi Kouhini, Kai Lennert Bober, Christoph Kottke
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"]