Vaishak Belle

192 papers A* 31A 20B 7C 2Misc 1Journal 99Unranked 29
YearRankTypeTitle / Venue / Authors
2026 J jnl
CoRR
Saimun Habib, Vaishak Belle, Fengxiang He
2026 J jnl
CoRR
Maifang Zhang, Hang Yu, Qian Zuo, Cheng Wang, Vaishak Belle, Fengxiang He
2026 A* conf
AAAI
Vaishak Belle, Gary Marcus
2025 C conf
NeSy
Xenia Heilmann, Chiara Manganini, Mattia Cerrato, Vaishak Belle
2025 conf
JELIA (1)
Vaishak Belle, Pablo Barceló
2025 J jnl
J. Symb. Comput.
Vaishak Belle
2025 conf
ICAART (3)
Rose Azad Khan, Vaishak Belle
2025 J jnl
CoRR
Nijesh Upreti, Vaishak Belle
2025 C conf
NeSy
Jessica Ciupa, Vaishak Belle, Ekaterina Komendantskaya
2025 conf
ACL (Findings)
Weizhi Tang, Yixuan Li, Chris Sypherd, Elizabeth Polgreen, Vaishak Belle
2025 J jnl
CoRR
Weizhi Tang, Yixuan Li, Chris Sypherd, Elizabeth Polgreen, Vaishak Belle
2025 J jnl
CoRR
Chris Sypherd, Sergei Petrov, Sonny George, Vaishak Belle
2025 B conf
ICLP
Nijesh Upreti, Vaishak Belle
2025 J jnl
Dagstuhl Reports
Vaishak Belle, Michael Benedikt, Dana Drachsler-Cohen, Daniel Neider, Tom Yuviler
2025 J jnl
CoRR
Weizhi Tang, Kwabena Nuamah, Vaishak Belle
2025 J jnl
CoRR
Nijesh Upreti, Vaishak Belle
2025 J jnl
CoRR
Antonio Valerio Miceli Barone, Vaishak Belle, Ali Payani
2025 B conf
ICLP
Sanderson Molick, Vaishak Belle
2025 J jnl
CoRR
Nijesh Upreti, Vaishak Belle
2025 conf
ICAART (3)
Miguel Ángel Méndez Lucero, Enrique Bojorquez Gallardo, Vaishak Belle
2025 conf
ICAART (1)
Nijesh Upreti, Jessica Ciupa, Vaishak Belle
2025 J jnl
CoRR
Nijesh Upreti, Jessica Ciupa, Vaishak Belle
2025 conf
ICAART (3)
Amit Parag, Vaishak Belle
2025 J jnl
Trans. Mach. Learn. Res.
Dagmara Panas, Ali Payani, Vaishak Belle
2025 A conf
AAMAS
Daxin Liu, Vaishak Belle
2025 J jnl
CoRR
Daxin Liu, Vaishak Belle
2025 J jnl
Frontiers Comput. Sci.
Ioannis Papantonis, Vaishak Belle
2024 conf
IJCLR
Nijesh Upreti, Vaishak Belle
2024 conf
NeSy (2)
Dagmara Panas, Sohan Seth, Vaishak Belle
2024 J jnl
CoRR
Dagmara Panas, Sohan Seth, Vaishak Belle
2024 B conf
ICLP
Vaishak Belle
2024 conf
NeSy (1)
Jessica Ciupa, Vaishak Belle
2024 J jnl
CoRR
Weizhi Tang, Vaishak Belle
2024 conf
IJCLR
Vaishak Belle
2024 J jnl
Mach. Learn.
Andreas C. Bueff, Vaishak Belle
2024 J jnl
CoRR
Jonathan Feldstein, Paulius Dilkas, Vaishak Belle, Efthymia Tsamoura
2024 conf
IJCLR
Xue Li, Vaishak Belle, Björn Ross
2024 J jnl
CoRR
Alec F. Diallo, Vaishak Belle, Paul Patras
2024 J jnl
CoRR
Chris Sypherd, Vaishak Belle
2024 J jnl
Mach. Learn.
Ioannis Papantonis, Vaishak Belle
2024 A conf
AAMAS
Daxin Liu, Vaishak Belle
2024 conf
IJCLR
Vaishak Belle, Daxin Liu
2024 J jnl
CoRR
Miguel Ángel Méndez Lucero, Enrique Bojorquez Gallardo, Vaishak Belle
2024 conf
NeSy (2)
Weizhi Tang, Vaishak Belle
2024 J jnl
CoRR
Weizhi Tang, Vaishak Belle
2024 J jnl
Dagstuhl Reports
Vaishak Belle, Hana Chockler, Shannon Vallor, Kush R. Varshney, Joost Vennekens, Sander Beckers
2024 J jnl
CoRR
Weizhi Tang, Vaishak Belle
2023 A conf
AAMAS
Qihui Feng, Daxin Liu, Vaishak Belle, Gerhard Lakemeyer
2023 A conf
AAMAS
Sandrine Chausson, Ameer Saadat-Yazdi, Xue Li, Jeff Z. Pan, Vaishak Belle, Nadin Kökciyan, Björn Ross
2023 A conf
AAMAS
Till Hofmann, Vaishak Belle
2023 A conf
AAMAS
Vaishak Belle
2023 J jnl
CoRR
Drew Hemment, Matjaz Vidmar, Daga Panas, Dave Murray-Rust, Vaishak Belle, Ruth Aylett
2023 ch.
Compendium of Neurosymbolic Artificial Intelligence
Miguel Ángel Méndez Lucero, Vaishak Belle
2023 conf
TAS
Bénédicte Legastelois, Amy Rafferty, Paul Brennan, Hana Chockler, Ajitha Rajan, Vaishak Belle
2023 A* conf
KR
Daxin Liu, Qihui Feng, Vaishak Belle, Gerhard Lakemeyer
2023 B conf
ICLP
Andreas C. Bueff, Vaishak Belle
2023 J jnl
Artif. Intell.
Vaishak Belle, Thomas Bolander, Andreas Herzig, Bernhard Nebel
2023 B conf
JELIA
Vaishak Belle
2023 J jnl
CoRR
Drew Hemment, Dave Murray-Rust, Vaishak Belle, Ruth Aylett, Matjaz Vidmar, Frank Broz
2023 J jnl
Ethics Inf. Technol.
Vaishak Belle
2023 J jnl
Nat. Lang. Process. J.
Ionela G. Mocanu, Vaishak Belle
2023 A conf
AAMAS
Ionela G. Mocanu, Vaishak Belle, Brendan Juba
2023 J jnl
CoRR
Ionela G. Mocanu, Vaishak Belle, Brendan Juba
2023 J jnl
Theory Pract. Log. Program.
Ionela G. Mocanu, Vaishak Belle, Brendan Juba
2023 conf
ICAART (3)
Andreas C. Bueff, Vaishak Belle
2023 conf
ICAART (3)
Ioannis Papantonis, Vaishak Belle
2023 conf
AAMAS Workshops
Vaishak Belle, Michael Fisher, Alessandra Russo, Ekaterina Komendantskaya, Alistair Nottle
2023 J jnl
CoRR
Vaishak Belle
2023 A* conf
KR
Paulius Dilkas, Vaishak Belle
2023 J jnl
CoRR
Paulius Dilkas, Vaishak Belle
2023 J jnl
CoRR
Vaishak Belle
2023 J jnl
Theory Pract. Log. Program.
Vaishak Belle
2023 A conf
ECAI
Ioannis Papantonis, Vaishak Belle
2023 A conf
ECAI
Daxin Liu, Qinfei Huang, Vaishak Belle, Gerhard Lakemeyer
2023 J jnl
CoRR
Ioannis Papantonis, Vaishak Belle
2022 J jnl
CoRR
Till Hofmann, Vaishak Belle
2022 J jnl
Artif. Intell.
Vaishak Belle
2022 J jnl
Neural Networks
Ionela Georgiana Mocanu, Zhenxu Yang, Vaishak Belle
2022 J jnl
Artif. Intell.
Christian Muise, Vaishak Belle, Paolo Felli, Sheila A. McIlraith, Tim Miller, Adrian R. Pearce, Liz Sonenberg
2022 J jnl
CoRR
Andreas C. Bueff, Ioannis Papantonis, Auste Simkute, Vaishak Belle
2022 J jnl
Frontiers Artif. Intell.
Gary Smith, Vaishak Belle, Ronald P. A. Petrick
2022 conf
ArgMining@COLING
Ameer Saadat-Yazdi, Xue Li, Sandrine Chausson, Vaishak Belle, Björn Ross, Jeff Z. Pan, Nadin Kökciyan
2022 A* conf
AAAI
Nick Hoernle, Rafael-Michael Karampatsis, Vaishak Belle, Kobi Gal
2022 J jnl
CoRR
Ioannis Papantonis, Vaishak Belle
2022 J jnl
Frontiers Artif. Intell.
Miguel Ángel Méndez Lucero, Rafael-Michael Karampatsis, Enrique Bojorquez Gallardo, Vaishak Belle
2022 Misc conf
ICCS
Vaishak Belle
2022 J jnl
CoRR
Till Hofmann, Vaishak Belle
2022 J jnl
CoRR
Xin Du, Bénédicte Legastelois, Bhargavi Ganesh, Ajitha Rajan, Hana Chockler, Vaishak Belle, Stuart Anderson, Subramanian Ramamoorthy
2021 J jnl
Frontiers Artif. Intell.
Ioannis Papantonis, Vaishak Belle
2021 J jnl
CoRR
Christian Muise, Vaishak Belle, Paolo Felli, Sheila A. McIlraith, Tim Miller, Adrian R. Pearce, Liz Sonenberg
2021 J jnl
Knowl. Based Syst.
Michael Varley, Vaishak Belle
2021 conf
PerCom Workshops
Gary Smith, Ron P. A. Petrick, Vaishak Belle
2021 A* conf
IJCAI
Alexander Philipp Rader, Ionela G. Mocanu, Vaishak Belle, Brendan Juba
2021 J jnl
Data Min. Knowl. Discov.
Lewis Hammond, Vaishak Belle
2021 A conf
UAI
Jonathan Feldstein, Vaishak Belle
2021 ch.
Neuro-Symbolic Artificial Intelligence
Vaishak Belle
2021 J jnl
CoRR
Nicholas Hoernle, Rafael-Michael Karampatsis, Vaishak Belle, Kobi Gal
2021 J jnl
CoRR
Sándor Bartha, James Cheney, Vaishak Belle
2021 J jnl
Proc. ACM Program. Lang.
Sándor Bartha, James Cheney, Vaishak Belle
2021 J jnl
Frontiers Big Data
Vaishak Belle, Ioannis Papantonis
2021 J jnl
Data Intell.
Andreas C. Bueff, Stefanie Speichert, Vaishak Belle
2021 A conf
SAT
Paulius Dilkas, Vaishak Belle
2021 A conf
UAI
Paulius Dilkas, Vaishak Belle
2020 J jnl
Int. J. Approx. Reason.
Laszlo Treszkai, Vaishak Belle
2020 J jnl
Knowl. Based Syst.
Vaishak Belle
2020 A conf
CP
Paulius Dilkas, Vaishak Belle
2020 J jnl
CoRR
Paulius Dilkas, Vaishak Belle
2020 J jnl
CoRR
Ioannis Papantonis, Vaishak Belle
2020 conf
AKBC
Amélie Levray, Vaishak Belle
2020 J jnl
CoRR
Alexander Philipp Rader, Ionela G. Mocanu, Vaishak Belle, Brendan Juba
2020 conf
SUM
Vaishak Belle
2020 J jnl
CoRR
Vaishak Belle
2020 A conf
ECAI
Anton Fuxjaeger, Vaishak Belle
2020 J jnl
CoRR
Ioannis Papantonis, Vaishak Belle
2020 A conf
ECAI
Ionela G. Mocanu, Vaishak Belle, Brendan Juba
2020 J jnl
CoRR
Vaishak Belle, Ioannis Papantonis
2020 J jnl
Artif. Intell.
Vaishak Belle, Hector J. Levesque
2020 J jnl
CoRR
Vaishak Belle
2020 conf
ICAART (2)
Anton Fuxjaeger, Vaishak Belle
2020 J jnl
Int. J. Approx. Reason.
Vaishak Belle, Luc De Raedt
2020 conf
SUM
Vaishak Belle
2020 J jnl
CoRR
Vaishak Belle
2019 J jnl
CoRR
Laszlo Treszkai, Vaishak Belle
2019 J jnl
AI Matters
Drew Hemment, Ruth Aylett, Vaishak Belle, Dave Murray-Rust, Ewa Luger, Jane Hillston, Michael Rovatsos, Frank Broz
2019 J jnl
CoRR
Drew Hemment, Ruth Aylett, Vaishak Belle, Dave Murray-Rust, Ewa Luger, Jane Hillston, Michael Rovatsos, Frank Broz
2019 J jnl
CoRR
Michael Varley, Vaishak Belle
2019 J jnl
CoRR
Vaishak Belle, Brendan Juba
2019 A* conf
NeurIPS
Vaishak Belle, Brendan Juba
2019 B conf
ILP
Stefanie Speichert, Vaishak Belle
2019 J jnl
CoRR
Amélie Levray, Vaishak Belle
2019 J jnl
CoRR
Anton Fuxjaeger, Vaishak Belle
2019 J jnl
CoRR
Vaishak Belle
2018 J jnl
CoRR
Vaishak Belle
2018 J jnl
CoRR
Lewis Hammond, Vaishak Belle
2018 A* conf
IJCAI
Samuel Kolb, Martin Mladenov, Scott Sanner, Vaishak Belle, Kristian Kersting
2018 J jnl
CoRR
Stefanie Speichert, Vaishak Belle
2018 A conf
AAMAS
Vaishak Belle
2018 J jnl
CoRR
Vaishak Belle
2018 conf
AAAI Workshops
Vaishak Belle
2018 J jnl
CoRR
Vaishak Belle
2018 J jnl
CoRR
Vaishak Belle, Hector J. Levesque
2018 J jnl
Artif. Intell.
Vaishak Belle, Hector J. Levesque
2018 J jnl
CoRR
Anton Fuxjaeger, Vaishak Belle
2018 J jnl
CoRR
Andreas C. Bueff, Stefanie Speichert, Vaishak Belle
2017 A* conf
IJCAI
Vaishak Belle
2017 A* conf
AAAI
Vaishak Belle
2017 conf
AAAI Workshops
Vaishak Belle
2017 J jnl
Mach. Learn.
Davide Nitti, Vaishak Belle, Tinne De Laet, Luc De Raedt
2017 A* conf
IJCAI
Vaishak Belle, Gerhard Lakemeyer
2017 A* conf
IJCAI
Anton Dries, Angelika Kimmig, Jesse Davis, Vaishak Belle, Luc De Raedt
2017 A* conf
AAAI
Martin Mladenov, Vaishak Belle, Kristian Kersting
2017 A conf
UAI
Vaishak Belle
2016 A* conf
AAAI
Vaishak Belle, Gerhard Lakemeyer, Hector J. Levesque
2016 J jnl
Stud Logica
Vaishak Belle, Hector J. Levesque
2016 A* conf
AAAI
Vaishak Belle, Guy Van den Broeck, Andrea Passerini
2016 A* conf
KR
Vaishak Belle, Hector J. Levesque
2016 A* conf
IJCAI
Vaishak Belle, Guy Van den Broeck, Andrea Passerini
2016 conf
AAAI Workshop: Beyond NP
Vaishak Belle
2016 J jnl
CoRR
Vaishak Belle, Luc De Raedt
2016 J jnl
CoRR
Martin Mladenov, Vaishak Belle, Kristian Kersting
2015 A* conf
IJCAI
Vaishak Belle, Hector J. Levesque
2015 A conf
UAI
Vaishak Belle, Guy Van den Broeck, Andrea Passerini
2015 A* conf
IJCAI
Guillaume Aucher, Vaishak Belle
2015 A* conf
IJCAI
Vaishak Belle, Gerhard Lakemeyer
2015 A* conf
AAAI
Christian J. Muise, Vaishak Belle, Paolo Felli, Sheila A. McIlraith, Tim Miller, Adrian R. Pearce, Liz Sonenberg
2015 conf
ECML/PKDD (2)
Davide Nitti, Vaishak Belle, Luc De Raedt
2015 A* conf
IJCAI
Vaishak Belle, Andrea Passerini, Guy Van den Broeck
2015 J jnl
J. Appl. Log.
Vaishak Belle, Hector J. Levesque
2015 J jnl
Artif. Intell.
Vaishak Belle, Gerhard Lakemeyer
2014 conf
AAAI Spring Symposia
Vaishak Belle, Hector J. Levesque
2014 A conf
AAMAS
Vaishak Belle, Hector J. Levesque
2014 A* conf
AAAI
Christian J. Muise, Vaishak Belle, Sheila A. McIlraith
2014 A* conf
KR
Vaishak Belle, Hector J. Levesque
2014 J jnl
J. Artif. Intell. Res.
Vaishak Belle, Gerhard Lakemeyer
2014 A* conf
ICAPS
Christian J. Muise, Sheila A. McIlraith, Vaishak Belle
2014 A* conf
KR
Vaishak Belle, Gerhard Lakemeyer
2014 J jnl
AI Matters
Vaishak Belle
2014 A* conf
AAAI
Vaishak Belle, Hector J. Levesque
2014 J jnl
SIGACT News
Vaishak Belle
2014 J jnl
CoRR
Vaishak Belle, Hector J. Levesque
2013 A* conf
IJCAI
Vaishak Belle, Hector J. Levesque
2013 A conf
UAI
Vaishak Belle, Hector J. Levesque
2013 J jnl
CoRR
Vaishak Belle, Hector J. Levesque
2012
Vaishak Belle
2011 A* conf
AAAI
Vaishak Belle, Gerhard Lakemeyer
2011 A* conf
IJCAI
Vaishak Belle, Gerhard Lakemeyer
2011 J jnl
SIGACT News
Vaishak Belle
2010 J jnl
CoRR
Vaishak Belle, Gerhard Lakemeyer
2010 conf
AlgoSyn
Vaishak Belle
2010 A* conf
KR
Vaishak Belle, Gerhard Lakemeyer
2010 A* conf
AAAI
Vaishak Belle, Gerhard Lakemeyer
2008 B conf
ICPR
Vaishak Belle, Thomas Deselaers, Stefan Schiffer
Docker-README.md
← Index Docker-README.md markdown
# REDB Docker Setup

This document describes the Docker containerization for the REDB malware analysis framework.

## Overview

REDB has been containerized as a single unified image that supports both feature extraction and decompilation analysis. The container is stateless, processes files from S3 or local mounts, and exports results to ClickHouse database or via API callbacks.

## Architecture

- **Single Unified Container**: One image handles both feature extraction and decompilation
- **Runtime Tool Installation**: Tools (CAPA, DIE, Binary Ninja) installed at runtime from host snapshots
- **Stateless Processing**: No persistent storage required between runs
- **Multiple Invocation Modes**: Supports `--nomad-job`, `--s3`, `--s3-solo`, and `--path` modes
- **External Dependencies**: Connects to external ClickHouse and S3 services

## Files Structure

```
├── Dockerfile                 # Single unified container definition
├── docker-build.sh            # Build script with Docker Desktop bug workaround
├── docker-push.sh             # Push script to registry
├── test-docker.sh             # Container testing script
├── test-nomad.sh              # Nomad job mode testing
├── .dockerignore              # Build context exclusions
└── scripts/
    └── setup-and-run.sh       # Runtime tool setup entrypoint
```

## Tool Installation Strategy

The container uses a **runtime installation** approach:

1. **Base Image**: Contains Python dependencies and REDB code
2. **Runtime Setup**: `scripts/setup-and-run.sh` configures tools at container start
3. **Host Snapshots**: Binary Ninja installed from `/opt/binaryninja` if available
4. **System Tools**: CAPA and DIE expected at `/usr/bin/capa` and `/usr/bin/nfdc`

## Build and Run

### 1. Build Container

```bash
# Build unified image
./docker-build.sh

# Manual build
docker build --platform linux/amd64 -f Dockerfile -t redb:latest .
```

### 2. Run Modes

#### Nomad Job Mode (Primary)
```bash
# Feature extraction
docker run --rm \
  -e JOB_ID="analysis_001" \
  -e S3_KEY="samples/malware.exe" \
  -e S3_BUCKET="malware-bucket" \
  -e WORKER_TYPE="feature_extraction" \
  -e CALLBACK_URL="https://api.example.com/callbacks" \
  -e ANALYSIS_MODULES="BasicPropertiesExtractor,PEFeaturesExtractor" \
  -e CLICKHOUSE_HOST="clickhouse.example.com" \
  -e S3_ENDPOINT="s3.example.com" \
  -e S3_ACCESS_KEY="your-key" \
  -e S3_SECRET_KEY="your-secret" \
  redb:latest python3 start.py --nomad-job

# Decompilation (same container, different flags)
docker run --rm \
  -e JOB_ID="analysis_002" \
  -e S3_KEY="samples/malware.exe" \
  -e S3_BUCKET="malware-bucket" \
  -e WORKER_TYPE="decompilation" \
  -e CALLBACK_URL="https://api.example.com/callbacks" \
  -e ANALYSIS_MODULES="all" \
  -v /opt/binaryninja:/opt/binaryninja:ro \
  redb:latest python3 start.py --nomad-job --decompile
```

#### S3 Solo Mode
```bash
# Process single sample by S3 key (standard sharded path)
docker run --rm \
  -e S3_BUCKET="samples-bucket" \
  -e CLICKHOUSE_HOST="clickhouse.example.com" \
  -e S3_ENDPOINT="s3.example.com" \
  -e INDEX_PREFIX="redb" \
  -e REPO="test-analysis" \
  redb:latest python3 start.py --s3-solo "09/f7/09f7d02a3c2382199458c98a62b045145ee54ab6aba86166aecf3d10c3c1444c.zip"

# Process private sample (with prepath)
docker run --rm \
  -e S3_BUCKET="samples-bucket" \
  -e CLICKHOUSE_HOST="clickhouse.example.com" \
  -e S3_ENDPOINT="s3.example.com" \
  -e INDEX_PREFIX="redb" \
  -e REPO="test-analysis" \
  redb:latest python3 start.py --s3-solo "private/ab/cd/abcd1234567890abcdef1234567890abcdef1234567890abcdef123456.zip"
```

#### Local Files Mode
```bash
# Mount local samples
docker run --rm \
  -v /path/to/samples:/samples:ro \
  -v ./logs:/app/logs \
  -e CLICKHOUSE_HOST="clickhouse.example.com" \
  redb:latest python3 start.py --path /samples --repo local_test --index_prefix redb
```

## Environment Variables

### Required for Nomad Job Mode
- `JOB_ID` - Unique job identifier
- `S3_KEY` - S3 object key for sample
- `S3_BUCKET` - S3 bucket name
- `WORKER_TYPE` - "feature_extraction" or "decompilation"
- `CALLBACK_URL` - API endpoint for results
- `ANALYSIS_MODULES` - Comma-separated extractor list or "all"

### Database Configuration
- `CLICKHOUSE_HOST` - ClickHouse server hostname
- `CLICKHOUSE_PORT` - Port (default: 8123)
- `CLICKHOUSE_USER` - Database user (default: default)
- `CLICKHOUSE_PASSWORD` - Database password
- `CLICKHOUSE_DATABASE` - Database name (default: default)

### S3 Configuration
- `S3_ENDPOINT` - S3 endpoint URL
- `S3_ACCESS_KEY` - S3 access key
- `S3_SECRET_KEY` - S3 secret key
- `S3_SECURE` - "true" or "false" for HTTPS

### Processing Configuration
- `INDEX_PREFIX` - Database table prefix (default: redb)
- `REPO` - Repository identifier for this analysis batch
- `BATCH_SIZE` - Processing batch size (default: 10)
- `REDB_TIMEOUT` - Analysis timeout in seconds (default: 300)

### Tool Timeouts
- `CAPA_TIMEOUT` - CAPA analysis timeout (default: 300)
- `DIE_TIMEOUT` - DIE analysis timeout (default: 180)
- `BINJA_TIMEOUT` - Binary Ninja timeout (default: 1200)
- `DECOMPILE_EXTRACTOR_TIMEOUT` - Decompilation timeout (default: 2580)

## Binary Ninja Setup

For decompilation capabilities, mount Binary Ninja from host:

```bash
# Mount Binary Ninja installation
-v /opt/binaryninja:/opt/binaryninja:ro

# Mount license file
-v /path/to/license.dat:/home/analyzer/.binaryninja/license.dat:ro
```

The container will automatically detect and configure Binary Ninja at runtime.

## Registry Deployment

### Push to Registry
```bash
# Tag and push
./docker-push.sh

# Or manually
docker tag redb:latest your-registry/redb:latest
docker push your-registry/redb:latest
```

### Pull and Run
```bash
docker pull your-registry/redb:latest
docker run your-registry/redb:latest python3 start.py --nomad-job
```

## Testing

### Container Functionality Test
```bash
# Test with S3 key (standard sharded path)
./test-docker.sh "09/f7/09f7d02a3c2382199458c98a62b045145ee54ab6aba86166aecf3d10c3c1444c.zip"

# Test with private sample S3 key
./test-docker.sh "private/ab/cd/abcd1234567890abcdef1234567890abcdef1234567890abcdef123456.zip"
```

### Nomad Job Architecture Test
```bash
# Test Nomad job mode
./test-nomad.sh
```

## Development

### Interactive Container
```bash
# Debug container interactively
docker run -it --entrypoint /bin/bash redb:latest

# Check tool availability
docker run --rm redb:latest which python3
docker run --rm redb:latest ls -la /usr/bin/capa
```

### Build Troubleshooting

The build script includes workarounds for Docker Desktop bugs:

```bash
# If build hangs at "exporting to image", press Ctrl+C
# The image will still be created and tagged automatically
./docker-build.sh
```

### Container Logs
```bash
# View logs from mounted directory
docker run -v ./logs:/app/logs redb:latest python3 start.py --path /samples
tail -f logs/*.txt
```

## Production Notes

### Resource Requirements
- **Memory**: 2-4GB recommended (8GB for decompilation)
- **CPU**: 2+ cores recommended
- **Disk**: Minimal (stateless container)
- **Network**: Access to ClickHouse and S3 services

### Security
- Container runs as non-root user `analyzer` (UID 1000)
- Sample files should be mounted read-only
- No persistent state between container runs
- Isolated processing environment for malware analysis

### Deployment Architecture

This container is designed for:
- **Nomad job dispatch**: Single-use containers processing one sample each
- **Kubernetes jobs**: Batch processing with external orchestration
- **CI/CD pipelines**: Automated analysis in build systems
- **Development**: Local testing and debugging

The unified container approach means the same image handles both feature extraction and decompilation - the difference is only in the command-line flags used when starting the container.